diff options
author | Chris Xiong <chirs241097@gmail.com> | 2020-05-12 00:58:40 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2020-05-12 00:58:40 +0800 |
commit | a7407edaf81c685d4a389785a405a53a5de4b148 (patch) | |
tree | e6e4f2d85f2172c94ac83a6e8f01e1e90a78ede9 /core/qmpmidiplay.hpp | |
parent | 437b7b16c322a8e53ac55a5f831098494d9a7073 (diff) | |
download | QMidiPlayer-a7407edaf81c685d4a389785a405a53a5de4b148.tar.xz |
Format EVERYTHING.
Hopefully this will make the source code less horrendous and actually
readable.
The command used was:
```
astyle --suffix=none --style=allman --attach-extern-c --attach-closing-while --indent-switches --indent-after-parens --pad-oper --pad-header --unpad-paren --align-pointer=name --recursive './*.cpp,*.hpp'
```
Diffstat (limited to 'core/qmpmidiplay.hpp')
-rw-r--r-- | core/qmpmidiplay.hpp | 301 |
1 files changed, 151 insertions, 150 deletions
diff --git a/core/qmpmidiplay.hpp b/core/qmpmidiplay.hpp index 471c1db..b6a40d9 100644 --- a/core/qmpmidiplay.hpp +++ b/core/qmpmidiplay.hpp @@ -11,169 +11,170 @@ #define QMP_MAIN #include "qmpcorepublic.hpp" class CMidiPlayer; -class CSMFReader:public qmpFileReader +class CSMFReader : public qmpFileReader { - private: - CMidiFile* ret; - CMidiTrack* curTrack; - uint32_t fmt,trk; - FILE *f; - bool eventdiscarded; - uint32_t byteread,curt,curid; +private: + CMidiFile *ret; + CMidiTrack *curTrack; + uint32_t fmt, trk; + FILE *f; + bool eventdiscarded; + uint32_t byteread, curt, curid; - void error(int fatal,const char* format,...); - uint8_t read_u8(); - uint16_t read_u16(); - uint32_t read_u32(); - uint32_t read_varlen(); - int read_event(); - void read_track(); - void read_header(); - uint32_t read_chunk(int is_header); - public: - CSMFReader(); - ~CSMFReader(); - CMidiFile* readFile(const char* fn); - void discardCurrentEvent(); - void commitEventChange(SEvent d); + void error(int fatal, const char *format, ...); + uint8_t read_u8(); + uint16_t read_u16(); + uint32_t read_u32(); + uint32_t read_varlen(); + int read_event(); + void read_track(); + void read_header(); + uint32_t read_chunk(int is_header); +public: + CSMFReader(); + ~CSMFReader(); + CMidiFile *readFile(const char *fn); + void discardCurrentEvent(); + void commitEventChange(SEvent d); }; -class CMidiFileReaderCollection{ - private: - std::vector<std::pair<qmpFileReader*,std::string>> readers; - qmpFileReader* currentReader; - public: - CMidiFileReaderCollection(); - ~CMidiFileReaderCollection(); - void registerReader(qmpFileReader* reader,std::string name); - void unregisterReader(std::string name); - CMidiFile* readFile(const char* fn); - qmpFileReader* getCurrentReader(); +class CMidiFileReaderCollection +{ +private: + std::vector<std::pair<qmpFileReader *, std::string>> readers; + qmpFileReader *currentReader; +public: + CMidiFileReaderCollection(); + ~CMidiFileReaderCollection(); + void registerReader(qmpFileReader *reader, std::string name); + void unregisterReader(std::string name); + CMidiFile *readFile(const char *fn); + qmpFileReader *getCurrentReader(); }; class CMidiPlayer { - friend class CMidiFileReaderCollection; - private: - CMidiFileReaderCollection *midiReaders; - CMidiFile* midiFile; - std::vector<std::pair<size_t,size_t>> eorder; - uint32_t stamps[101],notes,ecnt,maxtk; - uint32_t ccstamps[101][16][135],ccc[16][135]; - //0..127:cc 128:pc 129:cp 130:pb 131:tempo 132:ts 133:ks 134:pbr - int32_t rpnid[16],rpnval[16]; - uint16_t mute,solo; - double ftime; - bool sendSysEx,waitvoice; - uint8_t chstatus[16][130];//0..127: cc 128: pc - uint32_t ctempo,ctsn,ctsd,divs,cks; - double dpt;//time per tick - //raw tempo, timesig num., timesig den., division, keysig - //thread control - uint32_t tceptr,tcpaused,ct; - bool tcstop; - uint32_t finished,resumed; - uint32_t pbr[16],pbv[16]; - //playback correction - uint32_t ttick; - std::chrono::high_resolution_clock::time_point ttime; - std::chrono::system_clock::time_point levtt[16]; - struct SMidiDev - { - std::string name; - qmpMidiOutDevice* dev; - int refcnt; - }; - std::vector<SMidiDev> mididev; - int mappedoutput[16]; - ICallBack* eventHandlerCB[16]; - ICallBack* eventReaderCB[16]; - ICallBack* fileReadFinishCB[16]; - void* eventHandlerCBuserdata[16]; - void* eventReaderCBuserdata[16]; - void* fileReadFinishCBuserdata[16]; - std::unordered_map<int,std::tuple<callback_t,void*,bool>> event_handlers; - std::unordered_map<int,std::pair<callback_t,void*>> event_read_handlers; - std::unordered_map<int,std::pair<callback_t,void*>> file_read_finish_hooks; - int event_handlers_id,event_read_handlers_id,file_read_finish_hooks_id; - static CMidiPlayer* ref; + friend class CMidiFileReaderCollection; +private: + CMidiFileReaderCollection *midiReaders; + CMidiFile *midiFile; + std::vector<std::pair<size_t, size_t>> eorder; + uint32_t stamps[101], notes, ecnt, maxtk; + uint32_t ccstamps[101][16][135], ccc[16][135]; + //0..127:cc 128:pc 129:cp 130:pb 131:tempo 132:ts 133:ks 134:pbr + int32_t rpnid[16], rpnval[16]; + uint16_t mute, solo; + double ftime; + bool sendSysEx, waitvoice; + uint8_t chstatus[16][130];//0..127: cc 128: pc + uint32_t ctempo, ctsn, ctsd, divs, cks; + double dpt;//time per tick + //raw tempo, timesig num., timesig den., division, keysig + //thread control + uint32_t tceptr, tcpaused, ct; + bool tcstop; + uint32_t finished, resumed; + uint32_t pbr[16], pbv[16]; + //playback correction + uint32_t ttick; + std::chrono::high_resolution_clock::time_point ttime; + std::chrono::system_clock::time_point levtt[16]; + struct SMidiDev + { + std::string name; + qmpMidiOutDevice *dev; + int refcnt; + }; + std::vector<SMidiDev> mididev; + int mappedoutput[16]; + ICallBack *eventHandlerCB[16]; + ICallBack *eventReaderCB[16]; + ICallBack *fileReadFinishCB[16]; + void *eventHandlerCBuserdata[16]; + void *eventReaderCBuserdata[16]; + void *fileReadFinishCBuserdata[16]; + std::unordered_map<int, std::tuple<callback_t, void *, bool>> event_handlers; + std::unordered_map<int, std::pair<callback_t, void *>> event_read_handlers; + std::unordered_map<int, std::pair<callback_t, void *>> file_read_finish_hooks; + int event_handlers_id, event_read_handlers_id, file_read_finish_hooks_id; + static CMidiPlayer *ref; - SEvent *getEvent(uint32_t id); - void dumpFile(); - void setBit(uint16_t &n,uint16_t bn,uint16_t b); - bool processEvent(const SEvent *e); - void processEventStub(const SEvent *e); - void prePlayInit(); - void playEvents(); - void fileTimer1Pass(); - void fileTimer2Pass(); - public: - CMidiPlayer(); - ~CMidiPlayer(); - bool playerLoadFile(const char* fn); - void playerInit(); - void playerDeinit(); - void playerThread(); - void playerPanic(bool reset=false); + SEvent *getEvent(uint32_t id); + void dumpFile(); + void setBit(uint16_t &n, uint16_t bn, uint16_t b); + bool processEvent(const SEvent *e); + void processEventStub(const SEvent *e); + void prePlayInit(); + void playEvents(); + void fileTimer1Pass(); + void fileTimer2Pass(); +public: + CMidiPlayer(); + ~CMidiPlayer(); + bool playerLoadFile(const char *fn); + void playerInit(); + void playerDeinit(); + void playerThread(); + void playerPanic(bool reset = false); - //playing control methods - uint32_t getStamp(int id); - uint32_t getTCeptr(); - void setTCeptr(uint32_t ep,uint32_t st); - uint32_t getTCpaused(); - void setTCpaused(uint32_t ps); - uint32_t isFinished(); - bool stopFlag(); - void setResumed(); + //playing control methods + uint32_t getStamp(int id); + uint32_t getTCeptr(); + void setTCeptr(uint32_t ep, uint32_t st); + uint32_t getTCpaused(); + void setTCpaused(uint32_t ps); + uint32_t isFinished(); + bool stopFlag(); + void setResumed(); - double getFtime(); - void getCurrentTimeSignature(int *n,int *d); - int getCurrentKeySignature(); - uint32_t getFileNoteCount(); - uint32_t getFileStandard(); - double getTempo(); - uint32_t getTick(); - uint32_t getRawTempo(); - uint32_t getDivision(); - uint32_t getMaxTick(); - double getPitchBend(int ch); - double getPitchBendRaw(int ch,uint32_t *pb,uint32_t *pbr); - const char* getTitle(); - const char* getCopyright(); + double getFtime(); + void getCurrentTimeSignature(int *n, int *d); + int getCurrentKeySignature(); + uint32_t getFileNoteCount(); + uint32_t getFileStandard(); + double getTempo(); + uint32_t getTick(); + uint32_t getRawTempo(); + uint32_t getDivision(); + uint32_t getMaxTick(); + double getPitchBend(int ch); + double getPitchBendRaw(int ch, uint32_t *pb, uint32_t *pbr); + const char *getTitle(); + const char *getCopyright(); - void sendSysX(bool send); + void sendSysX(bool send); - void setChannelPreset(int ch,int b,int p); - void setMute(int ch,bool m); - void setSolo(int ch,bool s); - bool getChannelMask(int ch); - uint16_t getCC(int ch,int id); - void setCC(int ch,int id,int val); + void setChannelPreset(int ch, int b, int p); + void setMute(int ch, bool m); + void setSolo(int ch, bool s); + bool getChannelMask(int ch); + uint16_t getCC(int ch, int id); + void setCC(int ch, int id, int val); - void registerMidiOutDevice(qmpMidiOutDevice* dev,std::string name); - void unregisterMidiOutDevice(std::string name); - std::vector<std::string> getMidiOutDevices(); - int getChannelOutput(int ch); - qmpMidiOutDevice* getChannelOutputDevice(int ch); - void setChannelOutput(int ch,int outid); - const std::chrono::system_clock::time_point* getLastEventTS(); - int setEventHandlerCB(ICallBack *cb,void *userdata); - void unsetEventHandlerCB(int id); - int setEventReaderCB(ICallBack *cb,void *userdata); - void unsetEventReaderCB(int id); - int setFileReadFinishedCB(ICallBack *cb,void *userdata); - void unsetFileReadFinishedCB(int id); - int registerEventHandler(callback_t cb,void *userdata,bool post); - void unregisterEventHandler(int id); - int registerEventReadHandler(callback_t cb,void *userdata); - void unregisterEventReadHandler(int id); - int registerFileReadFinishHook(callback_t cb,void *userdata); - void unregisterFileReadFinishHook(int id); - void registerReader(qmpFileReader* reader,std::string name); - void unregisterReader(std::string name); - void callEventReaderCB(SEvent d); + void registerMidiOutDevice(qmpMidiOutDevice *dev, std::string name); + void unregisterMidiOutDevice(std::string name); + std::vector<std::string> getMidiOutDevices(); + int getChannelOutput(int ch); + qmpMidiOutDevice *getChannelOutputDevice(int ch); + void setChannelOutput(int ch, int outid); + const std::chrono::system_clock::time_point *getLastEventTS(); + int setEventHandlerCB(ICallBack *cb, void *userdata); + void unsetEventHandlerCB(int id); + int setEventReaderCB(ICallBack *cb, void *userdata); + void unsetEventReaderCB(int id); + int setFileReadFinishedCB(ICallBack *cb, void *userdata); + void unsetFileReadFinishedCB(int id); + int registerEventHandler(callback_t cb, void *userdata, bool post); + void unregisterEventHandler(int id); + int registerEventReadHandler(callback_t cb, void *userdata); + void unregisterEventReadHandler(int id); + int registerFileReadFinishHook(callback_t cb, void *userdata); + void unregisterFileReadFinishHook(int id); + void registerReader(qmpFileReader *reader, std::string name); + void unregisterReader(std::string name); + void callEventReaderCB(SEvent d); - void discardCurrentEvent(); - void commitEventChange(SEvent d); + void discardCurrentEvent(); + void commitEventChange(SEvent d); - static CMidiPlayer* getInstance(); + static CMidiPlayer *getInstance(); }; #endif |