diff options
author | Chris Xiong <chirs241097@gmail.com> | 2020-04-30 01:12:38 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2020-04-30 01:12:38 +0800 |
commit | bd165c0254b9095bb9e5ea54def56b6404033ebe (patch) | |
tree | e6e965ff343c0cd4feea0180dd63522e05085567 /visualization/renderer/qmpsettingsro.hpp | |
parent | 8766f3b12e13d40b65eca23a850f687b0043d022 (diff) | |
download | QMidiPlayer-bd165c0254b9095bb9e5ea54def56b6404033ebe.tar.xz |
Add visualization renderer.
Add API for getting raw pitch bend values.
Fix non-compliant RPN handling.
The visualization renderer is still at the "proof-of-concept" stage.
It's not very usable (yet).
Diffstat (limited to 'visualization/renderer/qmpsettingsro.hpp')
-rw-r--r-- | visualization/renderer/qmpsettingsro.hpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/visualization/renderer/qmpsettingsro.hpp b/visualization/renderer/qmpsettingsro.hpp new file mode 100644 index 0000000..30ab9b6 --- /dev/null +++ b/visualization/renderer/qmpsettingsro.hpp @@ -0,0 +1,73 @@ +#ifndef QMPSETTINGSRO_H +#define QMPSETTINGSRO_H + +#include <map> +#include <string> +#include <vector> + +#include <QVariant> +#include <QPointer> + +struct qmpOptionR +{ + enum ParameterType{ + parameter_int=0, + parameter_uint, + parameter_bool, + parameter_double, + parameter_str, + parameter_enum, + parameter_url, + parameter_custom=0x100 + }; + + std::string desc; + ParameterType type; + QVariant defaultval,minv,maxv; + std::vector<std::string> enumlist; + + qmpOptionR(){} + qmpOptionR( + std::string _desc, + ParameterType _t,QVariant _def=QVariant(), + QVariant _min=QVariant(),QVariant _max=QVariant()): + desc(_desc), + type(_t), + defaultval(_def), + minv(_min), + maxv(_max){} +}; + +class qmpSettingsRO +{ +public: + qmpSettingsRO(); + void registerOptionInt(std::string tab,std::string desc,std::string key,int min,int max,int defaultval); + int getOptionInt(std::string key); + void setOptionInt(std::string key,int val); + void registerOptionUint(std::string tab,std::string desc,std::string key,unsigned min,unsigned max,unsigned defaultval); + unsigned getOptionUint(std::string key); + void setOptionUint(std::string key,unsigned val); + void registerOptionBool(std::string tab,std::string desc,std::string key,bool defaultval); + bool getOptionBool(std::string key); + void setOptionBool(std::string key,bool val); + void registerOptionDouble(std::string tab,std::string desc,std::string key,double min,double max,double defaultval); + double getOptionDouble(std::string key); + void setOptionDouble(std::string key,double val); + void registerOptionString(std::string tab,std::string desc,std::string key,std::string defaultval,bool is_url); + std::string getOptionString(std::string key); + void setOptionString(std::string key,std::string val); + void registerOptionEnumInt(std::string tab,std::string desc,std::string key,std::vector<std::string> enumlist,int defaultval); + int getOptionEnumInt(std::string key); + std::string getOptionEnumIntOptName(std::string key); + void setOptionEnumInt(std::string key,int val); + void setOptionEnumIntOptName(std::string key,std::string valname); + + void load(const char* path); +private: + std::map<std::string,qmpOptionR> options; + std::vector<std::string> optionlist; + QVariantMap settings; +}; + +#endif |