136 lines
3.1 KiB
C
136 lines
3.1 KiB
C
#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_
|