12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #ifndef PADMANAGER_H
- #define PADMANAGER_H
- #include <json/json.h>
- #include <vector>
- #include <iostream>
- #include <string>
- class PadDefinition;
- class PadEntry{
- public:
- PadEntry(int _id){id=_id; instance=NULL;}
- virtual ~PadEntry();
- int id;
- std::string name;
- std::string filename;
- std::string out_port;
- std::string in_port;
- PadDefinition* instance;
- };
- class PadManager
- {
- public:
- PadManager(){_init();}
- virtual ~PadManager(){_clean();}
- static void init(){
- if(!m_instance)
- m_instance=new PadManager();
- }
- static Json::Value read_pad(const std::string& name) {return m_instance->_read_pad(name);}
- static bool has_pad(const std::string& name) {return m_instance->_has_pad(name);}
- static PadDefinition* get_pad(const std::string& name) {return m_instance->_get_pad(name);}
- static PadEntry* get_info_at(int i) {return m_instance->m_list[i];}
- static int count() {return m_instance->m_list.size();}
- static void clean(){return m_instance->clean();};
- protected:
- void _clean();
- PadDefinition* _get_pad(const std::string& name);
- int _get_pad_index(const std::string& name);
- Json::Value _read_pad(const std::string& pad_name) const;
- bool _has_pad(const std::string& pad_name) const;
- PadEntry* _add();
- void _init();
- std::vector<PadEntry*> m_list;
- static PadManager* m_instance;
- friend class Application;
- };
- #endif // PADMANAGER_H
|