#ifndef _PROCOMMON_H_ #define _PROCOMMON_H_ #pragma once #include "CommonStruct.h" #pragma pack (2) //Track引用信息 typedef struct tagTrackRef{ UINT idLoc; //位置id UINT idStyle; //风格ID char segNo; //原片段号 char chan; //原通道号 char prog; //当前乐器号 char vol; //当前音量 /* tagTrackRef(){ memset( this, 0, sizeof(tagTrackRef) ); } */ }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 tagMakeStyleInfo{ short price; //购买消费 short cost; //使用消费 TSTYLEDETAIL detail; //详细信息 tagMakeStyleInfo(){ price = 0; cost = 0; } }TMAKESTYLEINFO, *PMAKETSTYLEINFO; #pragma pack() #endif //_COMMONSTRUCT_H_