325 lines
7.3 KiB
C
325 lines
7.3 KiB
C
#ifndef ServerInnerH
|
|
#define ServerInnerH
|
|
|
|
#pragma once
|
|
|
|
//功能费定义(单位:音符)
|
|
#define PAY_BASIC 1 // 基本费
|
|
#define PAY_MIDICOMPOSE 20 // 伴奏MIDI
|
|
#define PAY_MIDITRANS 50 // 音频转MIDI
|
|
#define PAY_MULTIAUDIO 30 // 多音轨
|
|
#define PAY_MULTIFONT 80 // 多音色库
|
|
|
|
#define MAX_STYLE_NUM 80
|
|
|
|
#pragma pack (2)
|
|
|
|
//////////////////////////////////////////////////
|
|
//风格详细信息结构体 (兼容早期版本)
|
|
typedef struct tagStyleDetail0{
|
|
int size;
|
|
int idAuthor; //作者ID
|
|
|
|
int iTempo; //原速
|
|
short iTimesignature; //节拍 ( 0=4/4, 1=3/4, 2=2/4, 3=6/8 )
|
|
char nSegNum[4]; //伴奏/加花/前奏/尾奏个数
|
|
char aIntroBars[8]; //前奏小节数
|
|
char aEndingBars[8]; //尾奏小节数
|
|
|
|
char strStyleName[40]; //风格名称 UTF8
|
|
char strDescription[120];//风格描述 UTF8
|
|
char strAuthor[40]; //作者名称 UTF8
|
|
char type[6]; //风格分类
|
|
char progVar[4][3]; //伴奏主要乐器
|
|
char progIntro[4][3]; //前奏主要乐器
|
|
char progEnding[4][3]; //尾奏主要乐器
|
|
char chordRecom[8]; //推荐和声进行
|
|
|
|
tagStyleDetail0(){
|
|
size = sizeof(tagStyleDetail0);
|
|
idAuthor = iTempo = iTimesignature = 0;
|
|
memset( nSegNum, 0, sizeof(nSegNum) );
|
|
memset( aIntroBars, 0, sizeof(aIntroBars) );
|
|
memset( aEndingBars, 0, sizeof(aEndingBars) );
|
|
memset( strStyleName, 0, sizeof(strStyleName) );
|
|
memset( strDescription, 0, sizeof(strDescription) );
|
|
memset( strAuthor, 0, sizeof(strAuthor) );
|
|
memset( type, -1, sizeof(type) );
|
|
memset( progVar, -1, sizeof(progVar) );
|
|
memset( progIntro, -1, sizeof(progIntro) );
|
|
memset( progEnding, -1, sizeof(progEnding) );
|
|
memset( chordRecom, -1, sizeof(chordRecom) );
|
|
}
|
|
}TSTYLEDETAIL0, *PTSTYLEDETAIL0;
|
|
|
|
//风格信息结构体
|
|
typedef struct tagStyleInfo0{
|
|
UINT idStyle; //风格ID
|
|
int cost; //价格
|
|
int state; //状态
|
|
TSTYLEDETAIL0 detail; //详细信息
|
|
|
|
tagStyleInfo0(){
|
|
idStyle = 0;
|
|
cost = 0;
|
|
state = 0;
|
|
}
|
|
}TSTYLEINFO0, *PTSTYLEINFO0;
|
|
|
|
//账户信息结构体
|
|
typedef struct tAccountInfo1{
|
|
int size; //数据长度
|
|
UINT ID; //用户ID
|
|
UINT authority; //用户权限
|
|
int balance; //帐户余额(唱作音符)
|
|
int pops; //魅力值
|
|
int fans; //粉丝数
|
|
int songs; //歌曲数
|
|
int ownStyleNum; //已购买风格数
|
|
int arrStyleId[16]; //已购买风格ID数组
|
|
|
|
tAccountInfo1(){
|
|
memset( this, 0, sizeof(tAccountInfo1) );
|
|
size = 32;
|
|
};
|
|
}TACCOUNTINFO1, *PTACCOUNTINFO1;
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////
|
|
//前向兼容网络消息
|
|
typedef struct {
|
|
UINT tLastUpdateDate;
|
|
DWORD dwVersionMS;
|
|
DWORD dwVersionLS;
|
|
} TVersionRequest0;
|
|
|
|
typedef struct {
|
|
UINT nAvailibleNum;
|
|
DWORD dwVersionMS; //最新版本号
|
|
DWORD dwVersionLS;
|
|
UINT tIssueDate;
|
|
UINT nFileSize;
|
|
UINT nDescribLen;
|
|
char strDescrib[MAX_DESCRIB_LENGTH];
|
|
} TVersionResponse0;
|
|
|
|
typedef struct {
|
|
DWORD dwVersionMS;
|
|
DWORD dwVersionLS;
|
|
} TVersionRequest1;
|
|
|
|
typedef struct {
|
|
DWORD dwVersionMS;
|
|
DWORD dwVersionLS;
|
|
char idDevice[6];
|
|
} TVersionRequest2;
|
|
|
|
typedef struct {
|
|
UINT idUser;
|
|
DWORD dwMMParam;
|
|
UINT nStyleNum;
|
|
UINT aIdStyles[MAX_STYLE_NUM];
|
|
} TVerifyRequest;
|
|
|
|
typedef struct {
|
|
DWORD dwMMParam;
|
|
UINT nStyleNum;
|
|
float fUserBalance;
|
|
float aStylePrices[MAX_STYLE_NUM*2];
|
|
} TVerifyResponse;
|
|
|
|
typedef struct {
|
|
UINT idUser;
|
|
WORD iapType; //应用内付费类型:0=个人账户,1=移动IAP
|
|
WORD nStyleNum;
|
|
UINT aIdStyles[MAX_STYLE_NUM];
|
|
} TPurchaseRequest;
|
|
|
|
typedef struct {
|
|
float fUserBalance;
|
|
} TPurchaseResponse;
|
|
|
|
typedef struct {
|
|
UINT iClientType;
|
|
UINT idUser;
|
|
char strQuestion[320];
|
|
} TQnASubmitRequest0;
|
|
|
|
typedef struct {
|
|
UINT idUser;
|
|
WORD wOperation;
|
|
WORD wStyleNum;
|
|
UINT aIdStyles[MAX_STYLE_NUM];
|
|
} TCheckPaymentRequest0;
|
|
|
|
typedef struct {
|
|
int nUserBalance;
|
|
int nPayment;
|
|
} TCheckPaymentResponse0;
|
|
|
|
typedef struct {
|
|
int nUserBalance;
|
|
int nPayment;
|
|
int aStyleCost[MAX_STYLE_NUM];
|
|
} TCheckPaymentResponse1;
|
|
|
|
typedef struct {
|
|
UINT idUser;
|
|
UINT dwMMParam;
|
|
WORD wOperation;
|
|
WORD wStyleNum;
|
|
UINT aIdStyles[MAX_STYLE_NUM];
|
|
} TPayRequest0;
|
|
|
|
typedef struct {
|
|
UINT dwMMParam;
|
|
int nUserBalance;
|
|
} TPayResponse0;
|
|
|
|
typedef struct {
|
|
char strName[32];
|
|
char strPassword[80];
|
|
} TLoginRequest0;
|
|
|
|
typedef struct {
|
|
TACCOUNTINFO1 accountInfo;
|
|
} TLoginResponse0;
|
|
|
|
typedef struct {
|
|
UINT idUser;
|
|
char idDevice[6];
|
|
} TLogoffRequest0;
|
|
|
|
typedef struct {
|
|
UINT param;
|
|
char strName[32];
|
|
char strPassword[80];
|
|
} TLoginRequest1;
|
|
|
|
typedef struct {
|
|
UINT param;
|
|
char strName[32];
|
|
char strPassword[80];
|
|
char idDevice[6];
|
|
} TLoginRequest2;
|
|
|
|
typedef struct {
|
|
UINT param;
|
|
char strNickname[32];
|
|
TACCOUNTINFO1 accountInfo;
|
|
} TLoginResponse1;
|
|
|
|
typedef struct {
|
|
char strName[32];
|
|
char strPassword[80];
|
|
} TRegisterRequest0;
|
|
|
|
typedef struct {
|
|
UINT param;
|
|
char strName[32];
|
|
char strPassword[80];
|
|
} TRegisterRequest1;
|
|
|
|
typedef struct {
|
|
UINT param;
|
|
char strName[32];
|
|
char strPassword[80];
|
|
char strNickname[32]; //昵称
|
|
char idDevice[6]; //设备号
|
|
char strCode[80]; //验证码
|
|
} TRegisterRequest2;
|
|
|
|
typedef struct {
|
|
UINT idUser;
|
|
char strNickname[32];
|
|
} TRegisterResponse0;
|
|
|
|
typedef struct {
|
|
UINT idStyle;
|
|
int verDetail; //信息版本
|
|
int size;
|
|
char detail[1400];
|
|
} TStyleInfoResponse0;
|
|
|
|
typedef struct {
|
|
UINT idUser;
|
|
UINT idStyle;
|
|
short scrUser;
|
|
} TStyleScoreRequest0;
|
|
|
|
typedef struct {
|
|
UINT iClientType;
|
|
UINT idUser;
|
|
UINT tLastUpdateDate;
|
|
} TStyleUpdateRequest0;
|
|
|
|
typedef struct {
|
|
UINT nAvailibleNum;
|
|
UINT tUpdateDate;
|
|
UINT idData;
|
|
UINT nDataSize;
|
|
} TStyleUpdateResponse0;
|
|
|
|
#pragma pack (4)
|
|
|
|
/////////////////////////////////////////////
|
|
//兼容早期版本
|
|
typedef struct tStylePrice{
|
|
UINT idStyle; //风格ID
|
|
float fPrice; //价格
|
|
} TSTYLEPRICE, *PTSTYLEPRICE;
|
|
|
|
typedef struct tStyleUpdate0{
|
|
UINT idStyle; //风格ID
|
|
int price; //购买消费
|
|
int cost; //使用消费
|
|
int score; //评分 (score/100)10分制
|
|
} TSTYLEUPDATE0, *PTSTYLEUPDATE0;
|
|
//
|
|
/////////////////////////////////////////////
|
|
|
|
//账户信息结构体
|
|
typedef struct tAccountInfo0{
|
|
int size; //数据长度
|
|
UINT ID; //用户ID
|
|
int balance; //帐户余额(唱作音符)
|
|
int pops; //魅力值
|
|
int fans; //粉丝数
|
|
int songs; //歌曲数
|
|
int ownStyleNum; //已购买风格数
|
|
|
|
tAccountInfo0(){
|
|
memset( this, 0, sizeof(tAccountInfo0) );
|
|
size = 28;
|
|
};
|
|
}TACCOUNTINFO0, *PTACCOUNTINFO0;
|
|
|
|
//上传歌曲信息结构体
|
|
typedef struct tSongInfo0{
|
|
int size; //结构大小
|
|
char strSongName[64]; //歌曲名
|
|
int iTempo; //速度
|
|
char iTS; //节拍
|
|
char iCreation; //创作类型 (1:原创 3:改编)
|
|
char iSubmit; //提交审核状态(0:不提交,1:自动提交)
|
|
char iSingerType; //演唱人类别 (1:男;2:女;3:组合;4:其他;0:未知)
|
|
char strSinger[32]; //演唱
|
|
char strOriginal[32]; //原唱
|
|
char strLyricist[32]; //作词
|
|
char strComposer[32]; //作曲
|
|
char strArranger[32]; //编曲
|
|
char iMusicStyle[4]; //曲风
|
|
UINT aStyleIDs[32]; //使用的风格ID
|
|
char strDescription[640];//歌曲描述
|
|
|
|
tSongInfo0(){
|
|
memset( this, 0, sizeof(tSongInfo0) );
|
|
memset( iMusicStyle, -1, 4 );
|
|
size = sizeof(tSongInfo0);
|
|
};
|
|
|
|
} TSONGINFO0, *PTSONGINFO0;
|
|
|
|
#pragma pack()
|
|
|
|
#endif //_SERVER_INNER_H_
|