summaryrefslogtreecommitdiff
path: root/plugins/WinterSpeak/src/ConfigDatabase.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/WinterSpeak/src/ConfigDatabase.h')
-rw-r--r--plugins/WinterSpeak/src/ConfigDatabase.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/plugins/WinterSpeak/src/ConfigDatabase.h b/plugins/WinterSpeak/src/ConfigDatabase.h
new file mode 100644
index 0000000000..5682abf0f0
--- /dev/null
+++ b/plugins/WinterSpeak/src/ConfigDatabase.h
@@ -0,0 +1,79 @@
+#pragma once
+
+#include <map>
+#include "voice_desc.h"
+#include "Subject.h"
+
+class ConfigDatabase : public Subject
+{
+public:
+ ConfigDatabase(void);
+ ~ConfigDatabase(void);
+
+ enum ActiveFlag
+ {
+ ActiveFlag_Online = 1,
+ ActiveFlag_Away,
+ ActiveFlag_Dnd,
+ ActiveFlag_Na,
+ ActiveFlag_Occupied,
+ ActiveFlag_FreeForChat,
+ ActiveFlag_Invisible
+ };
+
+ struct act {
+ bool status;
+ bool message;
+ };
+
+ typedef std::map<HANDLE, act> ActiveUsersMap;
+
+ //--------------------------------------------------------------------------
+ // Description : get/set the voice description
+ //--------------------------------------------------------------------------
+ VoiceDesc getVoiceDesc() const { return m_voice_desc; }
+ void setVoiceDesc(const VoiceDesc &desc) { m_voice_desc = desc; }
+
+ //--------------------------------------------------------------------------
+ // Description : get/set the welcome message
+ //--------------------------------------------------------------------------
+ const std::wstring & getWelcomeMessage() const { return m_welcome_msg; }
+ void setWelcomeMessage(const std::wstring &msg) { m_welcome_msg = msg; }
+
+ //--------------------------------------------------------------------------
+ // Description : get/set an status flags
+ //--------------------------------------------------------------------------
+ bool getActiveFlag(ActiveFlag flag) const;
+ void setActiveFlag(ActiveFlag flag, bool state);
+
+ //--------------------------------------------------------------------------
+ // Description : get/set the user active flag
+ //--------------------------------------------------------------------------
+ act getActiveUser(HANDLE user) const;
+ void setActiveUser(HANDLE user, act state);
+ ActiveUsersMap getActiveUsers() const { return m_active_users; }
+
+ //--------------------------------------------------------------------------
+ // Description : load/save the settings from the miranda database
+ //--------------------------------------------------------------------------
+ void load();
+ void save();
+
+ private:
+ //--------------------------------------------------------------------------
+ // Description : For some reason this isn't implemented in miranda yet
+ // Just get a string from the db
+ // Parameters : szModule - the entrys' module
+ // szSetting - the entrys' setting
+ // def - default string if entry doesn't exist
+ //--------------------------------------------------------------------------
+ static std::wstring DBGetContactSettingString(const char *szModule,
+ const char *szSetting, const WCHAR *def);
+
+ VoiceDesc m_voice_desc;
+ unsigned int m_active_flags;
+ std::wstring m_welcome_msg;
+ //std::string m_welcome_msg;
+ ActiveUsersMap m_active_users;
+};
+