1 #ifndef INCLUDED_ECA_IAMODE_PARSER_H 2 #define INCLUDED_ECA_IAMODE_PARSER_H 3 4 #include <map> 5 #include <string> 6 #include <vector> 7 #include <pthread.h> 8 9 #include "eca-error.h" 10 #include "eca-iamode-parser_impl.h" 11 12 /** 13 * Class that handles registering and querying interactive mode commands. 14 * @author Kai Vehmanen 15 */ 16 class ECA_IAMODE_PARSER : protected ECA_IAMODE_PARSER_COMMANDS { 17 18 public: 19 20 static const std::map<std::string,int>& registered_commands(void); 21 static std::vector<std::string> registered_commands_list(void); 22 23 bool action_requires_params(int id); 24 bool action_requires_connected(int id); 25 bool action_requires_selected_not_connected(int id); 26 bool action_requires_selected(int id); 27 bool action_requires_selected_audio_input(int id); 28 bool action_requires_selected_audio_output(int id); 29 30 ECA_IAMODE_PARSER(void); 31 virtual ~ECA_IAMODE_PARSER(void); 32 33 protected: 34 35 static int command_to_action_id(const std::string& cmdstring); 36 37 private: 38 39 static void register_commands_misc(void); 40 static void register_commands_cs(void); 41 static void register_commands_c(void); 42 static void register_commands_aio(void); 43 static void register_commands_ai(void); 44 static void register_commands_ao(void); 45 static void register_commands_cop(void); 46 static void register_commands_copp(void); 47 static void register_commands_ctrl(void); 48 static void register_commands_ctrlp(void); 49 static void register_commands_dump(void); 50 static void register_commands_external(void); 51 52 private: 53 54 static std::map<std::string,int>* cmd_map_repp; 55 static pthread_mutex_t lock_rep; 56 }; 57 58 void show_controller_help(void); 59 void show_controller_help_more(void); 60 61 #endif 62