diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index 0dd13612e..489c0a2ea 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -208,6 +208,7 @@ bool CPlugins::parseCfg(plugin *plugin_data) plugin_data->shellwindow = false; plugin_data->hide = false; plugin_data->type = CPlugins::P_TYPE_DISABLED; + plugin_data->integration = CPlugins::I_TYPE_DISABLED; for (int i = 0; i < linecount; i++) { @@ -242,6 +243,10 @@ bool CPlugins::parseCfg(plugin *plugin_data) { plugin_data->type = getPluginType(atoi(parm)); } + else if (cmd == "integration") + { + plugin_data->integration = getPluginIntegration(atoi(parm)); + } else if (cmd == "needfb") { plugin_data->fb = atoi(parm); @@ -518,3 +523,32 @@ CPlugins::p_type_t CPlugins::getPluginType(int type) return P_TYPE_DISABLED; } } + +CPlugins::i_type_t CPlugins::getPluginIntegration(int integration) +{ + switch (integration) + { + case INTEGRATION_TYPE_DISABLED: + return I_TYPE_DISABLED; + break; + /* + case INTEGRATION_TYPE_MAIN: + return I_TYPE_MAIN; + break; + */ + case INTEGRATION_TYPE_MULTIMEDIA: + return I_TYPE_MULTIMEDIA; + break; + case INTEGRATION_TYPE_SETTING: + return I_TYPE_SETTING; + break; + case INTEGRATION_TYPE_SERVICE: + return I_TYPE_SERVICE; + break; + case INTEGRATION_TYPE_INFORMATION: + return I_TYPE_INFORMATION; + break; + default: + return I_TYPE_DISABLED; + } +} diff --git a/src/gui/plugins.h b/src/gui/plugins.h index df2aa14df..a2cfd6867 100644 --- a/src/gui/plugins.h +++ b/src/gui/plugins.h @@ -56,6 +56,18 @@ class CPlugins } p_type_t; + typedef enum i_type + { + I_TYPE_DISABLED = 0x1, + /* + I_TYPE_MAIN = 0x2, + */ + I_TYPE_MULTIMEDIA = 0x4, + I_TYPE_SETTING = 0x8, + I_TYPE_SERVICE = 0x10, + I_TYPE_INFORMATION = 0x20 + } + i_type_t; private: @@ -73,6 +85,7 @@ class CPlugins std::string description; // UTF-8 encoded std::string depend; CPlugins::p_type_t type; + CPlugins::i_type_t integration; bool fb; bool rc; @@ -100,6 +113,7 @@ class CPlugins bool plugin_exists(const std::string & filename); int find_plugin(const std::string & filename); CPlugins::p_type_t getPluginType(int type); + CPlugins::i_type_t getPluginIntegration(int integration); public: CPlugins(); ~CPlugins(); @@ -119,6 +133,7 @@ class CPlugins inline const char * getFileName (const int number) const { return plugin_list[number].filename.c_str() ; } inline const std::string & getDescription (const int number) const { return plugin_list[number].description ; } inline int getType (const int number) const { return plugin_list[number].type ; } + inline int getIntegration (const int number) const { return plugin_list[number].integration ; } inline bool isHidden (const int number) const { return plugin_list[number].hide ; } inline int getIndex (const int number) const { return plugin_list[number].index ; } inline neutrino_msg_t getKey (const int number) const { return (neutrino_msg_t)plugin_list[number].key; } diff --git a/src/plugin.h b/src/plugin.h index e0394b37a..66ca7f0a0 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -44,4 +44,17 @@ typedef enum plugin_type } plugin_type_t; +typedef enum integration_type +{ + INTEGRATION_TYPE_DISABLED = 0, + /* + INTEGRATION_TYPE_MAIN = 1, + */ + INTEGRATION_TYPE_MULTIMEDIA = 2, + INTEGRATION_TYPE_SETTING = 3, + INTEGRATION_TYPE_SERVICE = 4, + INTEGRATION_TYPE_INFORMATION = 5 +} +integration_type_t; + #endif