Files
recycled-ni-neutrino/src/gui/plugins.h
Stefan Seyfried 353da08b72 plugins.h: remove unnecessary include
Origin commit data
------------------
Branch: ni/coolstream
Commit: 2f0e93c215
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2014-12-25 (Thu, 25 Dec 2014)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
2015-01-02 21:00:07 +01:00

161 lines
5.2 KiB
C++

/*
Neutrino-GUI - DBoxII-Project
Copyright (C) 2001 Steffen Hehn 'McClean'
Homepage: http://dbox.cyberphoria.org/
Kommentar:
Diese GUI wurde von Grund auf neu programmiert und sollte nun vom
Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert
auf der Client-Server Idee, diese GUI ist also von der direkten DBox-
Steuerung getrennt. Diese wird dann von Daemons uebernommen.
License: GPL
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __plugins__
#define __plugins__
#include <driver/framebuffer.h>
#include <system/localize.h>
#include <plugin.h>
#include <string>
#include <vector>
class CPlugins
{
public:
typedef enum p_type
{
P_TYPE_DISABLED = 0x1,
P_TYPE_GAME = 0x2,
P_TYPE_TOOL = 0x4,
P_TYPE_SCRIPT = 0x8,
P_TYPE_LUA = 0x10
}
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:
CFrameBuffer *frameBuffer;
struct plugin
{
int index;
std::string filename;
neutrino_msg_t key;
std::string cfgfile;
std::string pluginfile;
std::string plugindir;
std::string hinticon;
int version;
std::string name; // UTF-8 encoded
std::string description; // UTF-8 encoded
std::string depend;
CPlugins::p_type_t type;
CPlugins::i_type_t integration;
#if 0
bool fb;
bool rc;
bool lcd;
bool vtxtpid;
int posx, posy, sizex, sizey;
bool showpig;
bool needoffset;
#endif
bool shellwindow;
bool hide;
bool operator< (const plugin& a) const
{
return this->index < a.index ;
}
};
int number_of_plugins;
int sindex;
std::vector<plugin> plugin_list;
std::string plugin_dir;
std::string scriptOutput;
bool parseCfg(plugin *plugin_data);
void scanDir(const char *dir);
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);
neutrino_msg_t getPluginKey(std::string key="auto");
public:
CPlugins();
~CPlugins();
void loadPlugins();
void setPluginDir(const std::string & dir) { plugin_dir = dir; }
#if 0
PluginParam * makeParam(const char * const id, const char * const value, PluginParam * const next);
PluginParam * makeParam(const char * const id, const int value, PluginParam * const next);
#endif
inline int getNumberOfPlugins (void ) const { return plugin_list.size() ; }
inline const char * getName (const int number) const { return plugin_list[number].name.c_str() ; }
inline const char * getPluginFile (const int number) const { return plugin_list[number].pluginfile.c_str(); }
inline const char * getPluginDir (const int number) const { return plugin_list[number].plugindir.c_str() ; }
inline const char * getHintIcon (const int number) const { return plugin_list[number].hinticon.c_str() ; }
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 plugin_list[number].key ; }
void setType (const int number, int t) { plugin_list[number].type = (CPlugins::p_type_t) t ; }
bool overrideType(plugin *plugin_data, std::string &setting, p_type type);
void startPlugin(int number); // start plugins by number
void startPlugin(const char * const filename); // start plugins by filename
void startPlugin_by_name(const std::string & name); // start plugins by "name=" in .cfg
void startScriptPlugin(int number);
void popenScriptPlugin(const char * script);
void startLuaPlugin(int number);
bool hasPlugin(CPlugins::p_type_t type);
const std::string& getScriptOutput() const;
void delScriptOutput();
};
#endif