#ifndef ProCommonH #define ProCommonH #ifdef _WIN32 #pragma once #endif #include "commonstruct.h" #pragma pack (2) //Track引用信息 typedef struct tagTrackRef{ UINT idLoc; //位置id UINT idStyle; //风格ID char segNo; //原片段号 char chan; //原通道号 char prog; //乐器号 char vol; //音量 }TTRACKREF, *PTTRACKREF; //原创风格信息 typedef struct tagStyleOrigin{ WORD cost; //使用消费 WORD score; //评分 (score/100)10分制 int paid; //支付次数 int state; //状态 TSTYLEDETAIL detail; tagStyleOrigin(){ cost = 0; score = 0; paid = 0; state = 0; } }TSTYLEORIGIN, *PTSTYLEORIGIN; //本地风格信息 typedef struct tagStyleLocal{ short iTempo; //原速 short iTimesignature; //节拍 ( 0=4/4, 1=3/4, 2=2/4, 3=6/8 ) char strStyleName[40]; //风格名称 UTF8 char nSegNum[4]; //伴奏/加花/前奏/尾奏个数 char aIEBars[2][8]; //前/尾奏小节数 (0-3大调 4-7小调) char nSegVol[4][8]; //片段音量 TTRACKREF trkRef[4][8][16]; //轨道引用信息 tagStyleLocal(){ memset( this, 0, sizeof(tagStyleLocal) ); } }TSTYLELOCAL, *PTSTYLELOCAL; //分享Track引用信息 typedef struct tagShareTrackRef{ UINT idStyle; //原创风格ID char segNo; //原片段号 char chan; //原通道号 char prog; //乐器号 char vol; //音量 }TSHARETRACKREF, *PTSHARETRACKREF; //分享的重组风格信息 typedef struct tagStyleShare{ int idAuthor; //作者ID WORD score; //评分 (score/100)10分制 short iTempo; //原速 short iTimesignature; //节拍 ( 0=4/4, 1=3/4, 2=2/4, 3=6/8 ) char type[2]; //风格分类 char nSegNum[4]; //伴奏/加花/前奏/尾奏个数 char aIEBars[2][8]; //前/尾奏小节数 (0-3大调 4-7小调) char nSegVol[4][8]; //片段音量 //以下部分可变长度传输和存储 char strAuthor[40]; //作者名称 UTF8 char strStyleName[40]; //风格名称 UTF8 char strDescription[120]; //风格描述 UTF8 TSHARETRACKREF trkRef[4][8][16]; //轨道引用信息 tagStyleShare(){ memset( this, 0, sizeof(tagStyleShare) ); } }TSTYLESHARE, *PTSTYLESHARE; //专业版风格结构体 typedef struct tagProStyle{ UINT idLoc; //位置id UINT idStyle; //风格ID union{ PTSTYLEORIGIN pOrigin; PTSTYLELOCAL pLocal; PTSTYLESHARE pShare; }; tagProStyle(){ memset( this, 0, sizeof(tagProStyle) ); } ~tagProStyle(){ if( idLoc==0 ){ if( pOrigin ) delete pOrigin; } else if( idLoc==1 ){ if( pShare ) delete pShare; } else{ if( pLocal ) delete pLocal; } } }TPROSTYLE, *PTPROSTYLE; //分享风格更新结构体 typedef struct tShareUpdate{ UINT idStyle; //风格ID WORD score; //评分 (score/100)10分制 WORD reserved; //保留,对齐字节 } TSHAREUPDATE, *PTSHAREUPDATE; //待审核风格更新结构体 typedef struct tCheckUpdate{ UINT idStyle; //风格ID short cost; //定价 WORD reserved; //保留,对齐字节 } TCHECKUPDATE, *PTCHECKUPDATE; #pragma pack() #endif //_COMMONSTRUCT_H_