<commit_before>// Copyright (c) 2015, <NAME>.
// Distributed under the BSD 2-Clause License (see LICENSE.txt for details)

#pragma once

#include <unordered_map>
#include <string>

#include "TinyXml2\tinyxml2.h"
#include "MeterWnd\Animations\AnimationTypes.h"

class HotkeyInfo;
class LanguageTranslator;
class Skin;

class Settings {
public:
    enum OSDPos {
        Top,
        Left,
        Right,
        Bottom,
        Center,
        TopLeft,
        TopRight,
        BottomLeft,
        BottomRight,
        Custom
    };
    static std::vector<std::wstring> OSDPosNames;

public:
    static Settings *Instance();

    void Load();
    void LoadEmptySettings();
    int Save();

    std::wstring AudioDeviceID();
    int VolumeCurveAdjustment();
    void VolumeCurveAdjustment(int value);
    float VolumeLimiter();
    void VolumeLimiter(float limit);
    bool MuteOnLock();
    void MuteOnLock(bool enable);
    bool SubscribeVolumeEvents();
    void SubscribeVolumeEvents(bool enable);

    AnimationTypes::HideAnimation HideAnim();
    void HideAnim(AnimationTypes::HideAnimation anim);
    int HideDelay();
    void HideDelay(int delay);
    int HideSpeed();
    void HideSpeed(int speed);

    std::wstring LanguageName();
    void LanguageName(std::wstring name);

    std::wstring Monitor();
    void Monitor(std::wstring monitorName);

    bool AlwaysOnTop();
    void AlwaysOnTop(bool enable);
    bool HideFullscreen();
    void HideFullscreen(bool enable);
    bool HideDirectX();
    void HideDirectX(bool enable);
    OSDPos OSDPosition();
    void OSDPosition(OSDPos pos);
    int OSDEdgeOffset();
    void OSDEdgeOffset(int offset);
    int OSDX();
    void OSDX(int x);
    int OSDY();
    void OSDY(int y);

    bool BrightnessOSDEnabled();
    void BrightnessOSDEnabled(bool enable);
    bool EjectOSDEnabled();
    void EjectOSDEnabled(bool enable);
    bool KeyboardOSDEnabled();
    void KeyboardOSDEnabled(bool enable);
    bool VolumeOSDEnabled();
    void VolumeOSDEnabled(bool enable);

    std::wstring CurrentSkin();
    bool CurrentSkin(std::wstring skinName);
    std::wstring SkinXML();
    std::wstring SkinXML(std::wstring skinName);

    bool NotifyIconEnabled();
    void NotifyIconEnabled(bool enable);
    bool SoundEffectsEnabled();
    void SoundEffectsEnabled(bool enable);

    LanguageTranslator *Translator();

    std::unordered_map<int, HotkeyInfo> Hotkeys();
    void Hotkeys(std::vector<HotkeyInfo> hotkeys);

    bool AutomaticUpdates();
    void AutomaticUpdates(bool enabled);
    void LastUpdateCheckNow();
    void LastUpdateCheck(long long time);
    long long LastUpdateCheck();
    std::wstring IgnoreUpdate();<commit_msg>Reorganize settings methods<commit_after>// Copyright (c) 2015, <NAME>.
// Distributed under the BSD 2-Clause License (see LICENSE.txt for details)

#pragma once

#include <unordered_map>
#include <string>

#include "TinyXml2\tinyxml2.h"
#include "MeterWnd\Animations\AnimationTypes.h"

class HotkeyInfo;
class LanguageTranslator;
class Skin;

class Settings {
public:
    enum OSDPos {
        Top,
        Left,
        Right,
        Bottom,
        Center,
        TopLeft,
        TopRight,
        BottomLeft,
        BottomRight,
        Custom
    };
    static std::vector<std::wstring> OSDPosNames;

public:
    static Settings *Instance();

    void Load();
    void LoadEmptySettings();
    int Save();

    /* General Settings */
    bool NotifyIconEnabled();
    void NotifyIconEnabled(bool enable);
    bool SoundEffectsEnabled();
    void SoundEffectsEnabled(bool enable);

    /* Skin */
    std::wstring CurrentSkin();
    bool CurrentSkin(std::wstring skinName);
    std::wstring SkinXML();
    std::wstring SkinXML(std::wstring skinName);

    /* Language */
    LanguageTranslator *Translator();
    std::wstring LanguageName();
    void LanguageName(std::wstring name);

    /* Animation */
    AnimationTypes::HideAnimation HideAnim();
    void HideAnim(AnimationTypes::HideAnimation anim);
    int HideDelay();
    void HideDelay(int delay);
    int HideSpeed();
    void HideSpeed(int speed);

    /* Display */
    bool AlwaysOnTop();
    void AlwaysOnTop(bool enable);
    bool HideFullscreen();
    void HideFullscreen(bool enable);
    bool HideDirectX();
    void HideDirectX(bool enable);
    std::wstring Monitor();
    void Monitor(std::wstring monitorName);
    OSDPos OSDPosition();
    void OSDPosition(OSDPos pos);
    int OSDEdgeOffset();
    void OSDEdgeOffset(int offset);
    int OSDX();
    void OSDX(int x);
    int OSDY();
    void OSDY(int y);

    /* OSDs */
    bool BrightnessOSDEnabled();
    void BrightnessOSDEnabled(bool enable);
    bool EjectOSDEnabled();
    void EjectOSDEnabled(bool enable);
    bool KeyboardOSDEnabled();
    void KeyboardOSDEnabled(bool enable);
    bool VolumeOSDEnabled();
    void VolumeOSDEnabled(bool enable);

    /* Volume */
    std::wstring AudioDeviceID();
    int VolumeCurveAdjustment();
    void VolumeCurveAdjustment(int value);
    float VolumeLimiter();
    void VolumeLimiter(float limit);
    bool MuteOnLock();
    void MuteOnLock(bool enable);
    bool SubscribeVolumeEvents();
    void SubscribeVolumeEvents(bool enable);

    /* Eject */
    bool SubscribeEjectEvents();
    void SubscribeEjectEvents(bool enable);

    /* Hotkeys */
    std::unordered_map<int, HotkeyInfo> Hotkeys();
    void Hotkeys(std::vector<HotkeyInfo> hotkeys);

    bool AutomaticUpdates();
    void AutomaticUpdates(bool enabled);
    void LastUpdateCheckNow();
    void LastUpdateCheck(long long time);
    long long LastUpdateCheck();
    std::wstring IgnoreUpdate();
{'fraction_non_alphanumeric': 0.10797371692416978, 'fraction_numerical': 0.0024862369028591726, 'mean_word_length': 3.4948124501197126, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1822179', 'n_tokens_mistral': 1739, 'n_tokens_neox': 1669, 'n_words': 426}