⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recomposer.h

📁 一个很好的c++ midi解码算法,不依赖于任何平台.
💻 H
字号:
/* *  srgplay - MIDI file player *  Copyright (C) 1998,1999 SAKAI Katsuya * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef __RCM_FORMAT_H_#define __RCM_FORMAT_H_#include "queue.h"#include "stack.h"#define PLAY 0#define MUTE 1#define KEY_OFF  0x80#define EV_NORMAL   0#define EV_NOTE_OFF 1class ComeOn_Header {public:  char Text[33];  char Title[65];  char Memo[361];  u_int  Timebase;  u_int  Tempo;  u_char TimeSignature[2];  u_char Key;  signed char PlayBIAS;  char CM6file[17];  char GSDfile[17];  char GSD2file[17];  u_int NumOfTrack;};class ComeOn_RythmDef {public:  char Name[128][14] ;  u_char Key[128];  u_char GateTime[128];};class ComeOn_UserExclusiveDef {public:  char Memo[8][24];  u_char Data[8][25];};class R36_Track {public:  R36_Track();  virtual ~R36_Track();  virtual int playaEvent();  u_long tick() { return TotalStep; }  void AllNoteOff();  void init(ComeOn_Header *, ComeOn_UserExclusiveDef *, EventQueue *);      u_short DataLength;  u_char  Number;  u_char  RythmFlag;  u_char  Port;  u_char  Channel;  signed char Key_Bias;  signed char ST_Bias;  u_char  Mode;  u_char  Comment[36];  char    Mute;  u_long  Index;  u_char  *Data;  signed char N_ON[128];  u_char Version;  // 0:rcp,r36 1:g18,g36(dos) 2:g18,g36(win)protected:  ComeOn_Header *Header;  ComeOn_UserExclusiveDef *Exclusive;  EventQueue *Noff_Queue;  u_long TotalStep;  u_char SameMeasureFlag;  u_long SameMeasurePtr;  u_char RolandEx[11];  u_char YamahaEx[9];  Stack LoopStack;  virtual void NextRecord();  virtual int Vel();  virtual int Step();  virtual int Gate();    virtual void NoteOn();  void MeasureEnd();  void MidiEvent1(u_char cmd);  void MidiEvent2(u_char cmd);  virtual void TrackExclusive();  void UserExclusive(u_char num);  void BankPGChange(u_char);  void MidiChChange();  virtual void TempoChange();  virtual void CommentProc();  void LoopEnd();  void LoopStart();  virtual void SameMeasure();  //  virtual void EndofTrack();  void YamahaBase();  void YamahaPara();  void YamahaDevice();  //  virtual void YamahaXGPara();  // YamahaParaとどうちがうの々  void RolandBase();  void RolandPara();  void RolandDevice();  void KeyScan();  void KeyChange();  void UnknownEvent();    };class G36_Track : public R36_Track {protected:  virtual void NextRecord();  virtual int Vel();  virtual int Step();  virtual int Gate();  virtual void NoteOn();  virtual void TrackExclusive();  virtual void CommentProc();  virtual void SameMeasure();  virtual void TempoChange();};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -