Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,222 @@
#ifndef _SNDHARD_H_
#define _SNDHARD_H_
#if (defined(__cplusplus)&& !defined(CPA_ForceCplusplus))
extern "C" {
#endif // __cplusplus
/*
//////////////////////////////////////////////////////
// SNDHARD.H - Librairie SOUNDxd version 2.0 //
//////////////////////////////////////////////////////
// D<>finitions des types et constantes utilis<69>es //
// par tous les modules de SOUNDxD mais orient<6E>s //
// pour chaque machine (seuls les noms sont communs//
//////////////////////////////////////////////////////
*/
#define SNDBANK_FORMAT2 //pour utiliser le format 2 des banques binaires (un moteur
//compil<69> en format 2 ne peut plus lire le format 1 - un moteur compil<69> en format 1
//peut lire les 2 formats
//---type communs <20> d<>finitions variables
//-------------------------------------------------------------------------
//**********************************************************
//*** Sound Bank Management structures ********
//**********************************************************
typedef enum _tdeBankState
{
BANK_NOT_LOADED, //bank isn't in memory, and no need to be
BANK_LOADED, //bank is in memory
BANK_LOADING, //bank is being loaded
BANK_WAITING, //bank wait to know if it will remain in memory
BANK_TO_BE_LOADED, //banl must be load
BANK_FOR_ALIGNEMENT=SND_ENUM_ALIGNEMENT
} tdeBankState;
struct _tdstSndBankHeader
{
long lVersion;
};
typedef struct _tdstSndBankPolyRes tdstSndBankPolyRes;
typedef struct _tdstSndBankPolyEvent tdstSndBankPolyEvent;
struct _tdstSndBankPolyRes
{
SNDLST2_M_StaticParentDeclaration(tduBlockResource*)
};
struct _tdstSndBankPolyEvent
{
SNDLST2_M_StaticParentDeclaration(SND_tdstBlockEvent*)
};
#define SND_BNM_VERSIONCHECK_1 0x24
#define SND_BNM_VERSIONCHECK_2 0x28
#define SND_BNM_GETVERSION(ptdstBankHead) ((long)*((long*)(ptdstBankHead)+1))
struct _tdstSndBankHead
{
tdstSndBankHeader stHeader;
tdstSndBankPolyEvent stEventList;
tdstSndBankPolyRes stResList;
unsigned long ulOffsetMPEG;
unsigned long ulOffsetMidi;
unsigned long ulOffsetSample;
#ifdef SNDBANK_FORMAT2
unsigned long ulOffsetADPCM;
#endif
unsigned long ulTotalSize;
};
struct _tdstSndBankDescriptor
{
char czFilename[13];
unsigned long ulDataSize;
tdeBankState eState;
tdstSndBankHead* pData;
};
//--------------------------------------------------- MIDI
//param<61>tres d'une ressource midi (donn<6E>es sur disk)
struct _tdstTypeMidiDisk {
SndBool bStream; //streamer ou en m<>moire
SndBool bVolable; //peut-on changer le volume
SndBool bLoop; //bouclant ou non
unsigned long ulNbLoops; //nombre de r<>p<EFBFBD>tition de cet <20>l<EFBFBD>ment
unsigned long ulStartLoop; //point de rebouclage
unsigned long ulEndLoop; //longueur de la boucle
char czFileName[13];
} ;
//param<61>tres d'une ressource midi en m<>moire
struct _tdstMidiMemory {
// void* pvPtrFirst ;//adresse du 1<> octet
// int iLoop; //point de bouclage
// int iLast; //indice du dernier evt.
//MCIDEVICEID uiMidiDeviceId;
unsigned long ulLength;
unsigned long ulNbLoops;
} ;
//param<61>tres d'une ressource midi <20> streamer
struct _tdstMidiStreaming {
char fichier[13] ; //nom du fichier
unsigned long Offset ; //Offest des datas dans le fichier
int iLoop; //indice du point de bouclage
int iLast; //indice du dernier evt
} ;
//union des desciption dedata midi
union _tduDataMidi {
tdstMidiMemory stMem;
tdstMidiStreaming stStream;
} ;
//param<61>tres d'une ressource midi (donn<6E>e en m<>moire)
struct _tdstTypeMidiMem {
SndBool bStream; //streamer ou en m<>moire
SndBool bVolable; //peut-on changer le volume
SndBool bLoop; //bouclant ou non
unsigned long ulNbLoops; //nombre de r<>p<EFBFBD>tition de cet <20>l<EFBFBD>ment
unsigned long ulStartLoop; //point de rebouclage
unsigned long ulEndLoop; //longueur de la boucle
tduDataMidi uData ;
} ;
//--------------------------------------------------- CD-AUDIO
//param<61>tre d'une ressource CD (donn<6E>es en mem ou sur disk)
struct _tdstTypeCD {
short wTrackId; //id de la track CD
SndBool bVolable; //peut-on changer son volume
SndBool bLoop; //doit-elle looper
unsigned long ulNbLoops; //nombre de tours
unsigned long ulStartLoop; //point de rebouclage
unsigned long ulEndLoop; //longeur de la boucle
unsigned long ulStartingFrame; // La piste commence
unsigned long ulEndingFrame; // La piste termine
} ;
//--------------------------------------------------- SAMPLE
//param<61>tre d'une ressource sample (donn<6E>e sur disk)
struct _tdstTypeSampleDisk {
SndBool bPitchable; //peut-on changer le pitch du sample
SndBool bVolable; //peut-on changer son volume
SndBool bPanable; //peut le paner
SndBool bSpacable; //peut-on lui appliquer un effet space
SndBool bReverbable; //peut-on (ou doit-on) le reverber
SndBool bStream; //streming ou en m<>moire
SndBool bLoop; //loope-t-il
unsigned long ulStartLoop; //point de rebouclage en octets
unsigned long ulLoopLength; //longueur de la boucle en octets
unsigned long ulFreq; //fr<66>quence par d<>faut
unsigned short uwResolution; //nb de bits (8 ou 16)
unsigned short uwNbChannels; //nb de canaux(mono, st<73>reo ...)
tdeTypeZip eZip;
char czFileName[13]; //nom du fichier associ<63>
} ;
//param<61>tre d'une ressource sample en m<>moire
struct _tdstSampleMemory {
void* pvPtrFirst ; //adresse du 1<> octet
unsigned long ulNbEchLoop; //indice de l'ech du point de bouclage
unsigned long ulNbEch; //indice du dernier ech
} ;
//param<61>tre d'une ressource sample <20> streamer
struct _tdstSampleStreaming {
char szFileName[13] ;//nom du fichier
unsigned long ulOffsetFirst; //Offest des datas dans le fichier
unsigned long ulOffsetLoop; //offset du point de bouclage en octets
unsigned long ulOffsetLast; //offset du dernier octets.
} ;
//union de la description du sample
union _tduDataSample{
tdstSampleMemory stMem ;
tdstSampleStreaming stStream ;
} ;
//param<61>tres d'une ressource sample (donn<6E>es en mem)
struct _tdstTypeSampleMem {
SndBool bPitchable; //peut-on changer le pitch du sample
SndBool bVolable; //peut-on changer son volume
SndBool bPanable; //peut le paner
SndBool bSpacable; //peut-on lui appliquer un effet space
SndBool bReverbable; //peut-on (ou doit-on) le reverber
SndBool bStream; //streming ou en m<>moire
SndBool bLoop; //loope-t-il
tduDataSample uData; //description du sample
unsigned long ulInc0 ; //p<>riode en echantillons
unsigned long ulFreq; //frequence
unsigned short uwResolution; //nb de bits (8 ou 16)
unsigned short uwNbChannels; //nb de canaux(mono, st<73>reo ...)
tdeTypeZip eZip;
} ;
//extern tduRefRes SND_RES_FANTOME;
//---callback pour buffers clients
//typedef void (WINAPI *td_pfn_vRefreshBufferClient)(long id_buffer,unsigned long first,unsigned long nb,void* ptr_first_sample);
//id_buffer=id/voie du biffer client concern<72>
//first=id du 1<> sample <20> rafraichir (pas en octets)
//nb=nb de samples <20> calculer
//ptr_first_sample=adresse cible
#if (defined(__cplusplus)&& !defined(CPA_ForceCplusplus))
}
#endif // __cplusplus
#endif //_SNDHARD_H_

View File

@@ -0,0 +1,59 @@
#ifndef _SNDLD_BN_H_
#define _SNDLD_BN_H_
//***************************************************************
//* *
//* SNDLD_S.H Version 1.0 *
//* *
//* Private sound data load&reference functions *
//* Binary version *
//* *
//***************************************************************
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
#ifdef M_SET_ALIGNMENT
#pragma pack(push)
#pragma pack(M_SET_ALIGNMENT)
#endif
#ifndef NO_ACP_LDBIN
typedef struct _tdstSndBankDescriptorElement *p_tdstSndBankDescriptorElement;
SNDLST2_M_DynamicUseListOf(p_tdstSndBankDescriptorElement);
struct _tdstSndBankDescriptorElement
{
int iId; //Id of bank
unsigned long iLevel; //level (for StartLoadBank2
char czFileName[13]; //file name of bank
long lBNMCheckVersion; //BNM version (value of CheckVersion)
//signed long ulDataSize; //size of
tdeBankState eState; //current of bank (loading, to be loaded...)
tdstSndBankHead* pData; //pointer to main data (malloc)
void *pDataPrimary; //pointer to primary data (CPA list for Theme, Seq...)
void *pDataMPEG; //pointer to MPEG data
void *pDataMidi; //pointer to Midi data
void *pDataSample; //pointer to Sampel data
void *pDataADPCM; //pointer to Sampel data
SNDLST2_M_DynamicElementDeclaration(p_tdstSndBankDescriptorElement)
} tdstSndBankDescriptorElement;
extern tdstSndBankDescriptorList SND_g_dBankDescriptionList;
p_tdstSndBankDescriptorElement fn_pstGetBankDescriptor(int _iBankNum);
#endif //NO_ACP_LDBIN
#ifdef M_SET_ALIGNMENT
#pragma pack(pop)
#endif
#ifdef __cplusplus
}
#endif // __cplusplus
#endif //_SNDLD_BN_H_

View File

@@ -0,0 +1,160 @@
#define SUPERVISATER
#ifdef __cplusplus
extern "C" {
#endif
#include "sndlst2.h"
#undef DLL_IMPEXP
#ifdef _DLL_COMPILATION_MODE
#define DLL_IMPEXP __declspec(dllexport)
#else
#define DLL_IMPEXP
#endif
typedef struct dbgMICRO_DESCRIPTION_ *pdbgMICRO_DESCRIPTION;
SNDLST2_M_DynamicUseListOf(pdbgMICRO_DESCRIPTION);
typedef struct dbgMICRO_DESCRIPTION_{
long Id;
long sndId;
MicroParam par;
SNDLST2_M_DynamicElementDeclaration(pdbgMICRO_DESCRIPTION)
}dbgMICRO_DESCRIPTION;
typedef struct dbgLISTE_MICRO_{
SNDLST2_M_DynamicAnchorDeclaration(pdbgMICRO_DESCRIPTION) pList;
}dbgLISTE_MICRO;
//-------stockage des associations
typedef struct dbgSND_tdstEvtStruct_ *pdbgSND_tdstEvtStruct;
SNDLST2_M_DynamicUseListOf(pdbgSND_tdstEvtStruct);
typedef struct dbgSND_tdstEvtStruct_
{
SND_tduRefEvt evt;
long asso;
SNDLST2_M_DynamicElementDeclaration(pdbgSND_tdstEvtStruct)
} dbgSND_tdstEvtStruct;
/* */
typedef struct dbgLISTE_EVT_{
SNDLST2_M_DynamicAnchorDeclaration(pdbgSND_tdstEvtStruct) pList;
} dbgLISTE_EVT;
typedef struct dbgSND_tdstObjectStruct_ *pdbgSND_tdstObjectStruct;
SNDLST2_M_DynamicUseListOf(pdbgSND_tdstObjectStruct);
/* */
typedef struct dbgSND_tdstObjectStruct_
{
//long asso; //id de l'asso SOUND3D
long indice; //id de l'objet
SoundParam par;
dbgLISTE_EVT evts;
SNDLST2_M_DynamicElementDeclaration(pdbgSND_tdstObjectStruct)
} dbgSND_tdstObjectStruct;
typedef struct dbgLISTE_OBJECT_{
SNDLST2_M_DynamicAnchorDeclaration(pdbgSND_tdstObjectStruct) pList;
} dbgLISTE_OBJECT;
/***************** pour diversSND *****************************************/
//resource view-list
typedef struct dbgVOLUMELINE_DESCRIPTION_ *pdbgVOLUMELINE_DESCRIPTION;
SNDLST2_M_DynamicUseListOf(pdbgVOLUMELINE_DESCRIPTION);
typedef struct dbgVOLUMELINE_DESCRIPTION_{
long id;
long vol;
SNDLST2_M_DynamicElementDeclaration(pdbgVOLUMELINE_DESCRIPTION)
}dbgVOLUMELINE_DESCRIPTION;
typedef struct dbgLISTE_VOLUMELINE_{
SNDLST2_M_DynamicAnchorDeclaration(pdbgVOLUMELINE_DESCRIPTION) pList;
}dbgVOLUMELINE_MICRO;
/***************** pour VISUSND *****************************************/
typedef struct dbgVISUSND_ELEMENT_ *pdbgVISUSND_ELEMENT;
SNDLST2_M_DynamicUseListOf(pdbgVISUSND_ELEMENT);
typedef struct dbgVISUSND_ELEMENT_{
long id;
tduRefRes res;
SoundParam par;
SNDLST2_M_DynamicElementDeclaration(pdbgVISUSND_ELEMENT)
}dbgVISUSND_ELEMENT;
typedef struct dbgVISUSND_LISTE_{
SNDLST2_M_DynamicAnchorDeclaration(pdbgVISUSND_ELEMENT) pList;
}dbgVISUSND_LISTE;
#define TAILLE_HISTORIC 256
typedef struct {
// u64 time;
SND_tduRefEvt evt;
long obj;
long asso;
} historic_element;
//variables
extern dbgLISTE_MICRO dbg_micros;//liste des micros (utiliser pas SynchroSonore)
extern dbgLISTE_OBJECT dbg_objects; //description des associations courantes
extern dbgVISUSND_LISTE dbg_visusnd;
extern dbgVOLUMELINE_MICRO dbgVolumeLineSnd;
extern SndBool dbg_micros_init;
extern SndBool dbg_objects_init;
extern historic_element historic[TAILLE_HISTORIC];
extern int next_histo_element;
//fonctions g<>n<EFBFBD>rales
void SND_CALL SND_fn_vSetSupervisaterActive(SndBool active);
void SND_CALL SND_fn_vLaunchSupervisater(SND_tdstInitStruct *pInitStruct);
void SND_CALL SND_fn_vKillSupervisater();
//suivi des objets
void SND_CALL dbgSND_fn_vAddEventToObject(long indice,long type,long asso,SND_tduRefEvt evt);
void SND_CALL SND_CALL dbgSND_fn_vKillEventToObject(long indice,long asso);
void SND_CALL dbgSND_fn_vSetPosObject(long indice,SoundParam* par);
//suivi des micros
void SND_CALL dbgSND_fn_vAddMicro(long indice);
void SND_CALL dbgSND_fn_vKillMicro(long indice);
void SND_CALL dbgSND_fn_vSetPosMicro(long indice,MicroParam* par);
//historique des events
void SND_CALL dbgSND_fn_vAddHistoric(SND_tduRefEvt evt,long indice,long type_obj,long asso,tdstBlockResourceMem* res);
//ligne de volume
void SND_CALL dbgSND_fn_vKillVolumeLine(long line);
void SND_CALL dbgSND_fn_vAddVolumeLine(long line);
void SND_CALL dbgSND_fn_vSetVolumeLine(long line,long vol);
//bank
void SND_CALL dbgSND_LoadBank(int iId);
void SND_CALL dbgSND_UnLoadBank(int iId);
//sndvirt
//DLL_IMPEXP void SND_CALL dbgSND_fn_vRajListesSxdVirtual(virtual_voice_list* VV,audible_voice_list* VA,dead_voice_list* VD);
DLL_IMPEXP void SND_CALL dbgSND_fn_vRajListesSxdVirtual2(SND_tdhVirtualModule p_virtual_module);
DLL_IMPEXP void SND_CALL dbgSND_fn_vInitListesSxdVirtual(long p_virtual_module,char* descrpition);
//snd
DLL_IMPEXP void SND_CALL dbgSND_fn_vAddVoiceSample(long id,tduRefRes res,SampleParam *par);
DLL_IMPEXP void SND_CALL dbgSND_fn_vSetParVoiceSample(long id,SampleParam *par);
DLL_IMPEXP void SND_CALL dbgSND_fn_vDelVoiceSample(long id);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,7 @@
//gestion des options
#include "snd.h"
void SND_fn_vInitOptions(SND_tdstInitStruct *pInitStruct);
void SND_fn_vDesInitOptions(void);

View File

@@ -0,0 +1,20 @@
// module de gestion des ressources samples PCM stream<61>es
// multi plateforme (commun <20> directX, WinMM,...)
long SND_fn_lPlaySxdStream(tduRefRes res,SoundParam *par,long prio,SND_td_pfn_vSoundCallback fn_callback,long par_callback);
void SND_fn_vRemoveCallbackSxdStream(long voice);
SndBool SND_fn_bSetParamSxdStream(long voice,SoundParam *par);
SndBool SND_fn_bTestIsPlayingSxdStream(long voice);
void SND_fn_vStopSxdStream(long voice);
void SND_fn_vPauseSxdStream(long voice);
void SND_fn_vResumeSxdStream(long voice);
int SND_fn_iInitSxdStream(SND_tdstInitStruct *pInitStruct);
SndBool SND_fn_bTestInitSxdStream(void);
void SND_fn_vDesInitSxdStream(void);
SndReal SND_fn_rGetPosSxdStream(long voice);
SndReal SND_fn_rGetLengthSxdStream(long voice);
SndBool SND_fn_bLoadResScriptSxdStream(tdstBlockResourceDisk *disk,tdstBlockResourceMem *mem);
SndBool SND_fn_bLoadResBinarySxdStream(tdstBlockResourceDisk *_pBRDisk,tdstBlockResourceMem *_pBRMem,char *pDataBloc);
void SND_fn_vUnLoadResSxdStream(tdstBlockResourceMem* mem);