Files
2026-06-13 00:05:19 +08:00

67 lines
2.5 KiB
C

//---------------------------------------------------------------------------
#ifndef ProjectH
#define ProjectH
//---------------------------------------------------------------------------
#define E_ERROR_BASE 0x80000000
#define E_PROJ_NOERROR 0x00
#define E_PROJ_INVALIDFONT 0x01
#define E_PROJ_INVALSTAGESTYLE 0x02
#define E_PROJ_INVALIDFX 0x04
#define E_PROJ_FATALERROR 0x100
#define E_PROJ_FILENOTEXIST 0x103 //文件不存在
#define E_PROJ_EARLERVERSION 0x104 //早期版本号
#define E_PROJ_LATERVERSION 0x105 //后期版本号
#define E_PROJ_INVALIDVERSION 0x106 //无法识别的版本号
#define E_PROJ_FILECRUPT 0x107 //文件已损坏
#define E_PROJ_CANTLOADAUDIO 0x108 //音频加载失败
#define E_PROJ_INVALIDSTYLE 0x109 //无效的风格
#define E_PROJ_NOAUTHURITY 0x110 //未登录使用本地风格
#define E_PROJ_UNSAVEDTEMPSTYLE 0x200 //未保存的临时风格
#define PROJ_MODE_AUTO 0
#define PROJ_MODE_NORMAL 1
#define PROJ_MODE_UPLOAD 2
extern const DWORD g_dwProjectVersion;
BOOL SaveProject( LPCSTR strProjectName, int iSaveMode=0, HWND hNotifyWnd=NULL );
BOOL LoadProject( LPCSTR strProjectName, HWND hNotifyWnd );
int LoadVersion2( FILE *pFile, DWORD dwVersion, HWND hNotifyWnd, int iLoadMode );
int LoadVersion3( FILE *pFile, DWORD dwVersion, HWND hNotifyWnd );
int LoadVersion4( FILE *pFile, DWORD dwVersion, HWND hNotifyWnd );
int LoadVersion5( FILE *pFile, DWORD dwVersion, HWND hNotifyWnd, int* iContentView );
void ClearSVDVars();
void UpdateSVDVars();
void UpdateRecentProject(wstring wstrProj);//更新最近工程列表
BOOL HasProjectModified( bool bAuto=false );
void ClearAutoProj();
void SaveAutoProj();
int CanSaveProj();
void ClearProjStyleMap();
TPROSTYLE* CheckStyle( int idLoc, int idStyle );
void SaveOpusStages( TOpusStageList& lstStages, LOCSEGLIST& lstLocSeg, FILE* pFile );
int LoadOpusStages( TOpusStageList& lstStages, STYLELIST& aUnsolvedStyles, FILE* pFile, DWORD dwVersion );
extern const char *g_strProjError[11];
extern vector<wstring> g_lstRecentProject; //最近的工程文件
extern HANDLE g_hProjectEvent; //工程文件读写互斥变量
extern wstring g_strLastProjSavePath, // 上次保存工程路径
g_strProjectName, // 工程文件名
g_strAutoProjName; // 自动保存文件名
//g_strFontFile_SVD; // 音色库文件名(已保存)
extern char g_strSoundFont_SVD[]; //全局音色库名(已保存)
extern int g_iMelodyKey_SVD, // 主旋律调号(已保存)
g_nMelodyTempo_SVD; // 主旋律速度(已保存)
extern float g_fRecordVolume_SVD, //录音音量(已保存)
g_fSpeakerVolume_SVD; //播放音量(已保存)
#endif