88 lines
2.7 KiB
C++
88 lines
2.7 KiB
C++
#ifndef INCLUDED_ECA_CHAINSETUP_PARSER_H
|
|
#define INCLUDED_ECA_CHAINSETUP_PARSER_H
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
class ECA_CHAINSETUP;
|
|
class AUDIO_IO;
|
|
|
|
/**
|
|
* Functionality for parsing chainsetup
|
|
* option syntax.
|
|
*
|
|
* Notes: Code was originally part of the
|
|
* ECA_CHAINSETUP class.
|
|
*
|
|
* @author Kai Vehmanen
|
|
*/
|
|
class ECA_CHAINSETUP_PARSER {
|
|
|
|
public:
|
|
|
|
ECA_CHAINSETUP_PARSER(ECA_CHAINSETUP* csetup);
|
|
|
|
// --
|
|
// functions for std::string->state conversions
|
|
|
|
/**
|
|
* Returns the result of last call to interpret_option(), interpret_global_option()
|
|
* or interpret_object_option().
|
|
*
|
|
* @result true if options interpreted succesfully, otherwise false
|
|
*/
|
|
bool interpret_result(void) const { return(interpret_result_rep); }
|
|
const std::string& interpret_result_verbose(void) const { return(interpret_result_verbose_rep); }
|
|
|
|
void interpret_option(const std::string& arg);
|
|
void interpret_global_option(const std::string& arg);
|
|
void interpret_object_option(const std::string& arg);
|
|
void interpret_options(const std::vector<std::string>& opts);
|
|
|
|
void reset_interpret_status(void);
|
|
void preprocess_options(std::vector<std::string>& opts) const;
|
|
|
|
// --
|
|
// functions for state->string conversions
|
|
|
|
std::string inputs_to_string(void) const;
|
|
std::string outputs_to_string(void) const;
|
|
std::string chains_to_string(void) const;
|
|
std::string midi_to_string(void) const;
|
|
std::string general_options_to_string(void) const;
|
|
|
|
private:
|
|
|
|
// --
|
|
// functions for std::string->state conversions
|
|
|
|
void interpret_entry(void);
|
|
void interpret_exit(const std::string& arg);
|
|
void interpret_set_result(bool result, const std::string& verbose) { interpret_result_rep = result; interpret_result_verbose_rep = verbose; }
|
|
void interpret_general_option (const std::string& arg);
|
|
void interpret_processing_control (const std::string& arg);
|
|
void interpret_audio_format (const std::string& arg);
|
|
void interpret_chains (const std::string& arg);
|
|
void interpret_chain_operator (const std::string& arg);
|
|
void interpret_controller (const std::string& arg);
|
|
void interpret_effect_preset (const std::string& arg);
|
|
void interpret_audioio_device (const std::string& argu);
|
|
void interpret_audioio_manager (const std::string& argu);
|
|
void interpret_midi_device (const std::string& arg);
|
|
bool interpret_match_found(void) const { return(istatus_rep); }
|
|
|
|
// --
|
|
// data members
|
|
|
|
ECA_CHAINSETUP* csetup_repp;
|
|
|
|
std::vector<AUDIO_IO*>* last_audio_add_vector_repp;
|
|
AUDIO_IO* last_audio_object_repp;
|
|
bool istatus_rep; /* whether we have found an option match? */
|
|
bool interpret_result_rep; /* whether we found an option match with correct format? */
|
|
std::string interpret_result_verbose_rep;
|
|
|
|
};
|
|
|
|
#endif
|