cmake windows
This commit is contained in:
parent
f698a38c7e
commit
2ace28d941
387 changed files with 96179 additions and 1 deletions
163
SimpleGame/FMOD/api/studio/examples/3d.cpp
Normal file
163
SimpleGame/FMOD/api/studio/examples/3d.cpp
Normal file
|
@ -0,0 +1,163 @@
|
|||
/*==============================================================================
|
||||
Event 3D Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example demonstrates how to position events in 3D for spatialization.
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
|
||||
const int SCREEN_WIDTH = NUM_COLUMNS;
|
||||
const int SCREEN_HEIGHT = 16;
|
||||
|
||||
int currentScreenPosition = -1;
|
||||
char screenBuffer[(SCREEN_WIDTH + 1) * SCREEN_HEIGHT + 1] = {0};
|
||||
|
||||
void initializeScreenBuffer();
|
||||
void updateScreenPosition(const FMOD_VECTOR& worldPosition);
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = NULL;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
|
||||
// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
|
||||
FMOD::System* coreSystem = NULL;
|
||||
ERRCHECK( system->getCoreSystem(&coreSystem) );
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0) );
|
||||
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
FMOD::Studio::Bank* masterBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank) );
|
||||
|
||||
FMOD::Studio::Bank* stringsBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank) );
|
||||
|
||||
FMOD::Studio::Bank* vehiclesBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Vehicles.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &vehiclesBank) );
|
||||
|
||||
FMOD::Studio::EventDescription* eventDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Vehicles/Ride-on Mower", &eventDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* eventInstance = NULL;
|
||||
ERRCHECK( eventDescription->createInstance(&eventInstance) );
|
||||
|
||||
ERRCHECK( eventInstance->setParameterByName("RPM", 650.0f) );
|
||||
ERRCHECK( eventInstance->start() );
|
||||
|
||||
// Position the listener at the origin
|
||||
FMOD_3D_ATTRIBUTES attributes = { { 0 } };
|
||||
attributes.forward.z = 1.0f;
|
||||
attributes.up.y = 1.0f;
|
||||
ERRCHECK( system->setListenerAttributes(0, &attributes) );
|
||||
|
||||
// Position the event 2 units in front of the listener
|
||||
attributes.position.z = 2.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&attributes) );
|
||||
|
||||
initializeScreenBuffer();
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnDown(BTN_LEFT))
|
||||
{
|
||||
attributes.position.x -= 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnDown(BTN_RIGHT))
|
||||
{
|
||||
attributes.position.x += 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnDown(BTN_UP))
|
||||
{
|
||||
attributes.position.z += 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnDown(BTN_DOWN))
|
||||
{
|
||||
attributes.position.z -= 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
updateScreenPosition(attributes.position);
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Event 3D Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw(screenBuffer);
|
||||
Common_Draw("Use the arrow keys (%s, %s, %s, %s) to control the event position",
|
||||
Common_BtnStr(BTN_LEFT), Common_BtnStr(BTN_RIGHT), Common_BtnStr(BTN_UP), Common_BtnStr(BTN_DOWN));
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void initializeScreenBuffer()
|
||||
{
|
||||
memset(screenBuffer, ' ', sizeof(screenBuffer));
|
||||
|
||||
int idx = SCREEN_WIDTH;
|
||||
for (int i = 0; i < SCREEN_HEIGHT; ++i)
|
||||
{
|
||||
screenBuffer[idx] = '\n';
|
||||
idx += SCREEN_WIDTH + 1;
|
||||
}
|
||||
|
||||
screenBuffer[(SCREEN_WIDTH + 1) * SCREEN_HEIGHT] = '\0';
|
||||
}
|
||||
|
||||
int getCharacterIndex(const FMOD_VECTOR& position)
|
||||
{
|
||||
int row = static_cast<int>(-position.z + (SCREEN_HEIGHT / 2));
|
||||
int col = static_cast<int>(position.x + (SCREEN_WIDTH / 2));
|
||||
|
||||
if (0 < row && row < SCREEN_HEIGHT && 0 < col && col < SCREEN_WIDTH)
|
||||
{
|
||||
return (row * (SCREEN_WIDTH + 1)) + col;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void updateScreenPosition(const FMOD_VECTOR& eventPosition)
|
||||
{
|
||||
if (currentScreenPosition != -1)
|
||||
{
|
||||
screenBuffer[currentScreenPosition] = ' ';
|
||||
currentScreenPosition = -1;
|
||||
}
|
||||
|
||||
FMOD_VECTOR origin = {0};
|
||||
int idx = getCharacterIndex(origin);
|
||||
screenBuffer[idx] = '^';
|
||||
|
||||
idx = getCharacterIndex(eventPosition);
|
||||
if (idx != -1)
|
||||
{
|
||||
screenBuffer[idx] = 'o';
|
||||
currentScreenPosition = idx;
|
||||
}
|
||||
}
|
241
SimpleGame/FMOD/api/studio/examples/3d_multi.cpp
Normal file
241
SimpleGame/FMOD/api/studio/examples/3d_multi.cpp
Normal file
|
@ -0,0 +1,241 @@
|
|||
/*==============================================================================
|
||||
Event 3D Multi-Listener Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example demonstrates how use listener weighting to crossfade listeners
|
||||
in and out.
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
|
||||
const int SCREEN_WIDTH = NUM_COLUMNS;
|
||||
const int SCREEN_HEIGHT = 10;
|
||||
|
||||
char backBuffer[(SCREEN_WIDTH + 1) * SCREEN_HEIGHT + 1] = {0};
|
||||
char screenBuffer[(SCREEN_WIDTH + 1) * SCREEN_HEIGHT + 1] = {0};
|
||||
|
||||
void initializeScreenBuffer();
|
||||
void updateScreenPosition(const FMOD_VECTOR& worldPosition, float listenerDist, float weight1, float weight2);
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = NULL;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
|
||||
// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
|
||||
FMOD::System* coreSystem = NULL;
|
||||
ERRCHECK( system->getCoreSystem(&coreSystem) );
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0) );
|
||||
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
FMOD::Studio::Bank* masterBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank) );
|
||||
|
||||
FMOD::Studio::Bank* stringsBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank) );
|
||||
|
||||
FMOD::Studio::Bank* vehiclesBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Vehicles.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &vehiclesBank) );
|
||||
|
||||
FMOD::Studio::EventDescription* eventDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Vehicles/Ride-on Mower", &eventDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* eventInstance = NULL;
|
||||
ERRCHECK( eventDescription->createInstance(&eventInstance) );
|
||||
|
||||
ERRCHECK( eventInstance->setParameterByName("RPM", 650.0f) );
|
||||
ERRCHECK( eventInstance->start() );
|
||||
|
||||
// Position two listeners
|
||||
ERRCHECK( system->setNumListeners(2) );
|
||||
int activeListener = 0;
|
||||
float listenerDist = 8.0f;
|
||||
float listenerWeight[2] = { 1.0f, 0.0f };
|
||||
FMOD_3D_ATTRIBUTES listenerAttributes[2] = {};
|
||||
listenerAttributes[0].forward.z = 1.0f;
|
||||
listenerAttributes[0].up.y = 1.0f;
|
||||
listenerAttributes[0].position.x = -listenerDist;
|
||||
listenerAttributes[1].forward.z = 1.0f;
|
||||
listenerAttributes[1].up.y = 1.0f;
|
||||
listenerAttributes[1].position.x = listenerDist;
|
||||
|
||||
ERRCHECK( system->setListenerAttributes(0, &listenerAttributes[0]) );
|
||||
ERRCHECK( system->setListenerWeight(0, listenerWeight[0]) );
|
||||
ERRCHECK( system->setListenerAttributes(1, &listenerAttributes[1]) );
|
||||
ERRCHECK( system->setListenerWeight(1, listenerWeight[1]) );
|
||||
|
||||
// Position the event 2 units in front of the listener
|
||||
FMOD_3D_ATTRIBUTES carAttributes = {};
|
||||
carAttributes.forward.z = 1.0f;
|
||||
carAttributes.up.y = 1.0f;
|
||||
carAttributes.position.x = 0.0f;
|
||||
carAttributes.position.z = 2.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&carAttributes) );
|
||||
|
||||
initializeScreenBuffer();
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_LEFT))
|
||||
{
|
||||
carAttributes.position.x -= 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&carAttributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_RIGHT))
|
||||
{
|
||||
carAttributes.position.x += 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&carAttributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_UP))
|
||||
{
|
||||
carAttributes.position.z += 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&carAttributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_DOWN))
|
||||
{
|
||||
carAttributes.position.z -= 1.0f;
|
||||
ERRCHECK( eventInstance->set3DAttributes(&carAttributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION1))
|
||||
{
|
||||
activeListener++;
|
||||
if (activeListener > 2)
|
||||
activeListener = 0;
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION2))
|
||||
{
|
||||
activeListener--;
|
||||
if (activeListener < 0)
|
||||
activeListener = 2;
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION3))
|
||||
{
|
||||
listenerDist -= 1.0f;
|
||||
if (listenerDist < 0.0f)
|
||||
listenerDist = 0.0f;
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION4))
|
||||
{
|
||||
listenerDist += 1.0f;
|
||||
if (listenerDist < 0.0f)
|
||||
listenerDist = 0.0f;
|
||||
}
|
||||
|
||||
for (int i=0; i<2; ++i)
|
||||
{
|
||||
float target = (activeListener == i || activeListener == 2); // 0 = left, 1 = right, 2 = both
|
||||
|
||||
float dist = (target - listenerWeight[i]);
|
||||
float step = 50.0f / 1000.0f; // very rough estimate of 50ms per update, not properly timed
|
||||
|
||||
if (dist >= -step && dist <= step)
|
||||
listenerWeight[i] = target;
|
||||
else if (dist > 0.0f)
|
||||
listenerWeight[i] += step;
|
||||
else
|
||||
listenerWeight[i] += -step;
|
||||
}
|
||||
|
||||
listenerAttributes[0].position.x = -listenerDist;
|
||||
listenerAttributes[1].position.x = listenerDist;
|
||||
ERRCHECK( system->setListenerAttributes(0, &listenerAttributes[0]) );
|
||||
ERRCHECK( system->setListenerAttributes(1, &listenerAttributes[1]) );
|
||||
ERRCHECK( system->setListenerWeight(0, listenerWeight[0]) );
|
||||
ERRCHECK( system->setListenerWeight(1, listenerWeight[1]) );
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
updateScreenPosition(carAttributes.position, listenerDist, listenerWeight[0], listenerWeight[1]);
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Event 3D Multi-Listener Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw(screenBuffer);
|
||||
|
||||
Common_Draw("Left listener: %d%%", (int)(listenerWeight[0] * 100));
|
||||
Common_Draw("Right listener: %d%%", (int)(listenerWeight[1] * 100));
|
||||
Common_Draw("Use the arrow keys (%s, %s, %s, %s) to control the event position",
|
||||
Common_BtnStr(BTN_LEFT), Common_BtnStr(BTN_RIGHT), Common_BtnStr(BTN_UP), Common_BtnStr(BTN_DOWN));
|
||||
Common_Draw("Use %s and %s to toggle left/right/both listeners", Common_BtnStr(BTN_ACTION1), Common_BtnStr(BTN_ACTION2));
|
||||
Common_Draw("Use %s and %s to move listeners closer or further apart", Common_BtnStr(BTN_ACTION3), Common_BtnStr(BTN_ACTION4));
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void initializeScreenBuffer()
|
||||
{
|
||||
memset(backBuffer, ' ', sizeof(backBuffer));
|
||||
|
||||
int idx = SCREEN_WIDTH;
|
||||
for (int i = 0; i < SCREEN_HEIGHT; ++i)
|
||||
{
|
||||
backBuffer[idx] = '\n';
|
||||
idx += SCREEN_WIDTH + 1;
|
||||
}
|
||||
|
||||
backBuffer[(SCREEN_WIDTH + 1) * SCREEN_HEIGHT] = '\0';
|
||||
memcpy(screenBuffer, backBuffer, sizeof(screenBuffer));
|
||||
}
|
||||
|
||||
void setCharacterIndex(const FMOD_VECTOR& position, char ch)
|
||||
{
|
||||
int row = static_cast<int>(-position.z + (SCREEN_HEIGHT / 2));
|
||||
int col = static_cast<int>(position.x + (SCREEN_WIDTH / 2));
|
||||
|
||||
if (0 < row && row < SCREEN_HEIGHT && 0 < col && col < SCREEN_WIDTH)
|
||||
{
|
||||
screenBuffer[row * (SCREEN_WIDTH + 1) + col] = ch;
|
||||
}
|
||||
}
|
||||
|
||||
char symbolForWeight(float weight)
|
||||
{
|
||||
if (weight >= 0.95f)
|
||||
return 'X';
|
||||
else if (weight >= 0.05f)
|
||||
return 'x';
|
||||
else
|
||||
return '.';
|
||||
}
|
||||
|
||||
void updateScreenPosition(const FMOD_VECTOR& worldPosition, float listenerDist, float weight1, float weight2)
|
||||
{
|
||||
memcpy(screenBuffer, backBuffer, sizeof(screenBuffer));
|
||||
|
||||
FMOD_VECTOR pos = {0};
|
||||
setCharacterIndex(pos, '^');
|
||||
|
||||
pos.x = -listenerDist;
|
||||
setCharacterIndex(pos, symbolForWeight(weight1));
|
||||
|
||||
pos.x = listenerDist;
|
||||
setCharacterIndex(pos, symbolForWeight(weight2));
|
||||
|
||||
setCharacterIndex(worldPosition, 'o');
|
||||
}
|
234
SimpleGame/FMOD/api/studio/examples/common.cpp
Normal file
234
SimpleGame/FMOD/api/studio/examples/common.cpp
Normal file
|
@ -0,0 +1,234 @@
|
|||
/*==============================================================================
|
||||
FMOD Example Framework
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
==============================================================================*/
|
||||
#include "common.h"
|
||||
#include "fmod_errors.h"
|
||||
|
||||
/* Cross platform OS Functions internal to the FMOD library, exposed for the example framework. */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct FMOD_OS_FILE FMOD_OS_FILE;
|
||||
typedef struct FMOD_OS_CRITICALSECTION FMOD_OS_CRITICALSECTION;
|
||||
|
||||
FMOD_RESULT F_API FMOD_OS_Time_GetUs(unsigned int *us);
|
||||
FMOD_RESULT F_API FMOD_OS_Debug_Output(const char *format, ...);
|
||||
FMOD_RESULT F_API FMOD_OS_File_Open(const char *name, int mode, unsigned int *filesize, FMOD_OS_FILE **handle);
|
||||
FMOD_RESULT F_API FMOD_OS_File_Close(FMOD_OS_FILE *handle);
|
||||
FMOD_RESULT F_API FMOD_OS_File_Read(FMOD_OS_FILE *handle, void *buf, unsigned int count, unsigned int *read);
|
||||
FMOD_RESULT F_API FMOD_OS_File_Write(FMOD_OS_FILE *handle, const void *buffer, unsigned int bytesToWrite, bool flush);
|
||||
FMOD_RESULT F_API FMOD_OS_File_Seek(FMOD_OS_FILE *handle, unsigned int offset);
|
||||
FMOD_RESULT F_API FMOD_OS_Time_Sleep(unsigned int ms);
|
||||
FMOD_RESULT F_API FMOD_OS_CriticalSection_Create(FMOD_OS_CRITICALSECTION **crit, bool memorycrit);
|
||||
FMOD_RESULT F_API FMOD_OS_CriticalSection_Free(FMOD_OS_CRITICALSECTION *crit, bool memorycrit);
|
||||
FMOD_RESULT F_API FMOD_OS_CriticalSection_Enter(FMOD_OS_CRITICALSECTION *crit);
|
||||
FMOD_RESULT F_API FMOD_OS_CriticalSection_Leave(FMOD_OS_CRITICALSECTION *crit);
|
||||
FMOD_RESULT F_API FMOD_OS_CriticalSection_TryEnter(FMOD_OS_CRITICALSECTION *crit, bool *entered);
|
||||
FMOD_RESULT F_API FMOD_OS_CriticalSection_IsLocked(FMOD_OS_CRITICALSECTION *crit, bool *locked);
|
||||
FMOD_RESULT F_API FMOD_OS_Thread_Create(const char *name, void (*callback)(void *param), void *param, FMOD_THREAD_AFFINITY affinity, FMOD_THREAD_PRIORITY priority, FMOD_THREAD_STACK_SIZE stacksize, void **handle);
|
||||
FMOD_RESULT F_API FMOD_OS_Thread_Destroy(void *handle);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
void (*Common_Private_Error)(FMOD_RESULT, const char *, int);
|
||||
|
||||
void ERRCHECK_fn(FMOD_RESULT result, const char *file, int line)
|
||||
{
|
||||
if (result != FMOD_OK)
|
||||
{
|
||||
if (Common_Private_Error)
|
||||
{
|
||||
Common_Private_Error(result, file, line);
|
||||
}
|
||||
Common_Fatal("%s(%d): FMOD error %d - %s", file, line, result, FMOD_ErrorString(result));
|
||||
}
|
||||
}
|
||||
|
||||
void Common_Format(char *buffer, int bufferSize, const char *formatString...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, formatString);
|
||||
Common_vsnprintf(buffer, bufferSize, formatString, args);
|
||||
va_end(args);
|
||||
buffer[bufferSize-1] = '\0';
|
||||
}
|
||||
|
||||
void Common_Fatal(const char *format, ...)
|
||||
{
|
||||
char error[1024];
|
||||
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
Common_vsnprintf(error, 1024, format, args);
|
||||
va_end(args);
|
||||
error[1023] = '\0';
|
||||
|
||||
do
|
||||
{
|
||||
Common_Draw("A fatal error has occurred...");
|
||||
Common_Draw("");
|
||||
Common_Draw("%s", error);
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Update();
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
Common_Exit(0);
|
||||
}
|
||||
|
||||
void Common_Draw(const char *format, ...)
|
||||
{
|
||||
char string[1024];
|
||||
char *stringPtr = string;
|
||||
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
Common_vsnprintf(string, 1024, format, args);
|
||||
va_end(args);
|
||||
string[1023] = '\0';
|
||||
|
||||
unsigned int length = (unsigned int)strlen(string);
|
||||
|
||||
do
|
||||
{
|
||||
bool consumeNewLine = false;
|
||||
unsigned int copyLength = length;
|
||||
|
||||
// Search for new line characters
|
||||
char *newLinePtr = strchr(stringPtr, '\n');
|
||||
if (newLinePtr)
|
||||
{
|
||||
consumeNewLine = true;
|
||||
copyLength = (unsigned int)(newLinePtr - stringPtr);
|
||||
}
|
||||
|
||||
if (copyLength > NUM_COLUMNS)
|
||||
{
|
||||
// Hard wrap by default
|
||||
copyLength = NUM_COLUMNS;
|
||||
|
||||
// Loop for a soft wrap
|
||||
for (int i = NUM_COLUMNS - 1; i >= 0; i--)
|
||||
{
|
||||
if (stringPtr[i] == ' ')
|
||||
{
|
||||
copyLength = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Null terminate the sub string temporarily by swapping out a char
|
||||
char tempChar = stringPtr[copyLength];
|
||||
stringPtr[copyLength] = 0;
|
||||
Common_DrawText(stringPtr);
|
||||
stringPtr[copyLength] = tempChar;
|
||||
|
||||
copyLength += (consumeNewLine ? 1 : 0);
|
||||
length -= copyLength;
|
||||
stringPtr += copyLength;
|
||||
} while (length > 0);
|
||||
}
|
||||
|
||||
void Common_Time_GetUs(unsigned int *us)
|
||||
{
|
||||
FMOD_OS_Time_GetUs(us);
|
||||
}
|
||||
|
||||
void Common_Log(const char *format, ...)
|
||||
{
|
||||
char string[1024];
|
||||
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
Common_vsnprintf(string, 1024, format, args);
|
||||
va_end(args);
|
||||
string[1023] = '\0';
|
||||
|
||||
FMOD_OS_Debug_Output(string);
|
||||
}
|
||||
|
||||
void Common_LoadFileMemory(const char *name, void **buff, int *length)
|
||||
{
|
||||
FMOD_OS_FILE *file = NULL;
|
||||
unsigned int len, bytesread;
|
||||
|
||||
FMOD_OS_File_Open(name, 0, &len, &file);
|
||||
void *mem = malloc(len);
|
||||
FMOD_OS_File_Read(file, mem, len, &bytesread);
|
||||
FMOD_OS_File_Close(file);
|
||||
|
||||
*buff = mem;
|
||||
*length = bytesread;
|
||||
}
|
||||
|
||||
void Common_UnloadFileMemory(void *buff)
|
||||
{
|
||||
free(buff);
|
||||
}
|
||||
|
||||
void Common_Sleep(unsigned int ms)
|
||||
{
|
||||
FMOD_OS_Time_Sleep(ms);
|
||||
}
|
||||
|
||||
void Common_File_Open(const char *name, int mode, unsigned int *filesize, void **handle)
|
||||
{
|
||||
FMOD_OS_File_Open(name, mode, filesize, (FMOD_OS_FILE **)handle);
|
||||
}
|
||||
|
||||
void Common_File_Close(void *handle)
|
||||
{
|
||||
FMOD_OS_File_Close((FMOD_OS_FILE *)handle);
|
||||
}
|
||||
|
||||
void Common_File_Read(void *handle, void *buf, unsigned int length, unsigned int *read)
|
||||
{
|
||||
FMOD_OS_File_Read((FMOD_OS_FILE *)handle, buf, length, read);
|
||||
}
|
||||
|
||||
void Common_File_Write(void *handle, void *buf, unsigned int length)
|
||||
{
|
||||
FMOD_OS_File_Write((FMOD_OS_FILE *)handle, buf, length, true);
|
||||
}
|
||||
|
||||
void Common_File_Seek(void *handle, unsigned int offset)
|
||||
{
|
||||
FMOD_OS_File_Seek((FMOD_OS_FILE *)handle, offset);
|
||||
}
|
||||
|
||||
void Common_Mutex_Create(Common_Mutex *mutex)
|
||||
{
|
||||
FMOD_OS_CriticalSection_Create((FMOD_OS_CRITICALSECTION **)&mutex->crit, false);
|
||||
}
|
||||
|
||||
void Common_Mutex_Destroy(Common_Mutex *mutex)
|
||||
{
|
||||
FMOD_OS_CriticalSection_Free((FMOD_OS_CRITICALSECTION *)mutex->crit, false);
|
||||
}
|
||||
|
||||
void Common_Mutex_Enter(Common_Mutex *mutex)
|
||||
{
|
||||
FMOD_OS_CriticalSection_Enter((FMOD_OS_CRITICALSECTION *)mutex->crit);
|
||||
}
|
||||
|
||||
void Common_Mutex_Leave(Common_Mutex *mutex)
|
||||
{
|
||||
FMOD_OS_CriticalSection_Leave((FMOD_OS_CRITICALSECTION *)mutex->crit);
|
||||
}
|
||||
|
||||
void Common_Thread_Create(void (*callback)(void *param), void *param, void **handle)
|
||||
{
|
||||
FMOD_OS_Thread_Create("FMOD Example Thread", callback, param, FMOD_THREAD_AFFINITY_GROUP_A, FMOD_THREAD_PRIORITY_MEDIUM, (16 * 1024), handle);
|
||||
}
|
||||
|
||||
void Common_Thread_Destroy(void *handle)
|
||||
{
|
||||
FMOD_OS_Thread_Destroy(handle);
|
||||
}
|
93
SimpleGame/FMOD/api/studio/examples/common.h
Normal file
93
SimpleGame/FMOD/api/studio/examples/common.h
Normal file
|
@ -0,0 +1,93 @@
|
|||
/*==============================================================================
|
||||
FMOD Example Framework
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
==============================================================================*/
|
||||
#ifndef FMOD_EXAMPLES_COMMON_H
|
||||
#define FMOD_EXAMPLES_COMMON_H
|
||||
|
||||
#include "common_platform.h"
|
||||
#include "fmod.h"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
|
||||
#define NUM_COLUMNS 50
|
||||
#define NUM_ROWS 25
|
||||
|
||||
#ifndef Common_Sin
|
||||
#define Common_Sin sin
|
||||
#endif
|
||||
|
||||
#ifndef Common_snprintf
|
||||
#define Common_snprintf snprintf
|
||||
#endif
|
||||
|
||||
#ifndef Common_vsnprintf
|
||||
#define Common_vsnprintf vsnprintf
|
||||
#endif
|
||||
|
||||
enum Common_Button
|
||||
{
|
||||
BTN_ACTION1,
|
||||
BTN_ACTION2,
|
||||
BTN_ACTION3,
|
||||
BTN_ACTION4,
|
||||
BTN_LEFT,
|
||||
BTN_RIGHT,
|
||||
BTN_UP,
|
||||
BTN_DOWN,
|
||||
BTN_MORE,
|
||||
BTN_QUIT
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void *crit;
|
||||
} Common_Mutex;
|
||||
|
||||
/* Cross platform functions (common) */
|
||||
void Common_Format(char *buffer, int bufferSize, const char *formatString...);
|
||||
void Common_Fatal(const char *format, ...);
|
||||
void Common_Draw(const char *format, ...);
|
||||
void Common_Time_GetUs(unsigned int *us);
|
||||
void Common_Log(const char *format, ...);
|
||||
void Common_LoadFileMemory(const char *name, void **buff, int *length);
|
||||
void Common_UnloadFileMemory(void *buff);
|
||||
void Common_Sleep(unsigned int ms);
|
||||
void Common_File_Open(const char *name, int mode, unsigned int *filesize, void **handle); // mode : 0 = read, 1 = write.
|
||||
void Common_File_Close(void *handle);
|
||||
void Common_File_Read(void *handle, void *buf, unsigned int length, unsigned int *read);
|
||||
void Common_File_Write(void *handle, void *buf, unsigned int length);
|
||||
void Common_File_Seek(void *handle, unsigned int offset);
|
||||
void Common_Mutex_Create(Common_Mutex *mutex);
|
||||
void Common_Mutex_Destroy(Common_Mutex *mutex);
|
||||
void Common_Mutex_Enter(Common_Mutex *mutex);
|
||||
void Common_Mutex_Leave(Common_Mutex *mutex);
|
||||
void Common_Thread_Create(void (*callback)(void *param), void *param, void **handle);
|
||||
void Common_Thread_Destroy(void *handle);
|
||||
|
||||
void ERRCHECK_fn(FMOD_RESULT result, const char *file, int line);
|
||||
#define ERRCHECK(_result) ERRCHECK_fn(_result, __FILE__, __LINE__)
|
||||
#define Common_Max(_a, _b) ((_a) > (_b) ? (_a) : (_b))
|
||||
#define Common_Min(_a, _b) ((_a) < (_b) ? (_a) : (_b))
|
||||
#define Common_Clamp(_min, _val, _max) ((_val) < (_min) ? (_min) : ((_val) > (_max) ? (_max) : (_val)))
|
||||
|
||||
/* Functions with platform specific implementation (common_platform) */
|
||||
void Common_Init(void **extraDriverData);
|
||||
void Common_Close();
|
||||
void Common_Update();
|
||||
void Common_Exit(int returnCode);
|
||||
void Common_DrawText(const char *text);
|
||||
bool Common_BtnPress(Common_Button btn);
|
||||
bool Common_BtnDown(Common_Button btn);
|
||||
const char *Common_BtnStr(Common_Button btn);
|
||||
const char *Common_MediaPath(const char *fileName);
|
||||
const char *Common_WritePath(const char *fileName);
|
||||
|
||||
|
||||
#endif
|
306
SimpleGame/FMOD/api/studio/examples/common_platform.cpp
Normal file
306
SimpleGame/FMOD/api/studio/examples/common_platform.cpp
Normal file
|
@ -0,0 +1,306 @@
|
|||
/*==============================================================================
|
||||
FMOD Example Framework
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
==============================================================================*/
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
|
||||
#include "common.h"
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
#include <Windows.h>
|
||||
#include <Objbase.h>
|
||||
#include <vector>
|
||||
|
||||
static HWND gWindow = nullptr;
|
||||
static int gScreenWidth = 0;
|
||||
static int gScreenHeight = 0;
|
||||
static unsigned int gPressedButtons = 0;
|
||||
static unsigned int gDownButtons = 0;
|
||||
static unsigned int gLastDownButtons = 0;
|
||||
static char gWriteBuffer[(NUM_COLUMNS+1) * NUM_ROWS] = {0};
|
||||
static char gDisplayBuffer[(NUM_COLUMNS+1) * NUM_ROWS] = {0};
|
||||
static unsigned int gYPos = 0;
|
||||
static bool gQuit = false;
|
||||
static std::vector<char *> gPathList;
|
||||
|
||||
bool Common_Private_Test;
|
||||
int Common_Private_Argc;
|
||||
char** Common_Private_Argv;
|
||||
void (*Common_Private_Update)(unsigned int*);
|
||||
void (*Common_Private_Print)(const char*);
|
||||
void (*Common_Private_Close)();
|
||||
|
||||
void Common_Init(void** /*extraDriverData*/)
|
||||
{
|
||||
CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
|
||||
}
|
||||
|
||||
void Common_Close()
|
||||
{
|
||||
CoUninitialize();
|
||||
|
||||
for (std::vector<char *>::iterator item = gPathList.begin(); item != gPathList.end(); ++item)
|
||||
{
|
||||
free(*item);
|
||||
}
|
||||
if (Common_Private_Close)
|
||||
{
|
||||
Common_Private_Close();
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned int translateButton(unsigned int button)
|
||||
{
|
||||
switch (button)
|
||||
{
|
||||
case '1': return (1 << BTN_ACTION1);
|
||||
case '2': return (1 << BTN_ACTION2);
|
||||
case '3': return (1 << BTN_ACTION3);
|
||||
case '4': return (1 << BTN_ACTION4);
|
||||
case VK_LEFT: return (1 << BTN_LEFT);
|
||||
case VK_RIGHT: return (1 << BTN_RIGHT);
|
||||
case VK_UP: return (1 << BTN_UP);
|
||||
case VK_DOWN: return (1 << BTN_DOWN);
|
||||
case VK_SPACE: return (1 << BTN_MORE);
|
||||
case VK_ESCAPE: return (1 << BTN_QUIT);
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Common_Update()
|
||||
{
|
||||
MSG msg = { };
|
||||
while (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
gPressedButtons = (gLastDownButtons ^ gDownButtons) & gDownButtons;
|
||||
gPressedButtons |= (gQuit ? (1 << BTN_QUIT) : 0);
|
||||
gLastDownButtons = gDownButtons;
|
||||
|
||||
memcpy(gDisplayBuffer, gWriteBuffer, sizeof(gWriteBuffer));
|
||||
InvalidateRect(gWindow, nullptr, FALSE);
|
||||
|
||||
gYPos = 0;
|
||||
memset(gWriteBuffer, ' ', sizeof(gWriteBuffer));
|
||||
for (int i = 0; i < NUM_ROWS; i++)
|
||||
{
|
||||
gWriteBuffer[(i * (NUM_COLUMNS + 1)) + NUM_COLUMNS] = '\n';
|
||||
}
|
||||
|
||||
if (Common_Private_Update)
|
||||
{
|
||||
Common_Private_Update(&gPressedButtons);
|
||||
}
|
||||
}
|
||||
|
||||
void Common_Exit(int returnCode)
|
||||
{
|
||||
exit(returnCode);
|
||||
}
|
||||
|
||||
void Common_DrawText(const char *text)
|
||||
{
|
||||
if (gYPos < NUM_ROWS)
|
||||
{
|
||||
char tempBuffer[NUM_COLUMNS + 1];
|
||||
Common_Format(tempBuffer, sizeof(tempBuffer), "%s", text);
|
||||
memcpy(&gWriteBuffer[gYPos * (NUM_COLUMNS + 1)], tempBuffer, strlen(tempBuffer));
|
||||
gYPos++;
|
||||
}
|
||||
}
|
||||
|
||||
bool Common_BtnPress(Common_Button btn)
|
||||
{
|
||||
return ((gPressedButtons & (1 << btn)) != 0);
|
||||
}
|
||||
|
||||
bool Common_BtnDown(Common_Button btn)
|
||||
{
|
||||
return ((gDownButtons & (1 << btn)) != 0);
|
||||
}
|
||||
|
||||
const char *Common_BtnStr(Common_Button btn)
|
||||
{
|
||||
switch (btn)
|
||||
{
|
||||
case BTN_ACTION1: return "1";
|
||||
case BTN_ACTION2: return "2";
|
||||
case BTN_ACTION3: return "3";
|
||||
case BTN_ACTION4: return "4";
|
||||
case BTN_LEFT: return "Left";
|
||||
case BTN_RIGHT: return "Right";
|
||||
case BTN_UP: return "Up";
|
||||
case BTN_DOWN: return "Down";
|
||||
case BTN_MORE: return "Space";
|
||||
case BTN_QUIT: return "Escape";
|
||||
default: return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char *Common_MediaPath(const char *fileName)
|
||||
{
|
||||
char *filePath = (char *)calloc(256, sizeof(char));
|
||||
|
||||
static const char* pathPrefix = nullptr;
|
||||
if (!pathPrefix)
|
||||
{
|
||||
const char *emptyPrefix = "";
|
||||
const char *mediaPrefix = "../media/";
|
||||
FILE *file = fopen(fileName, "r");
|
||||
if (file)
|
||||
{
|
||||
fclose(file);
|
||||
pathPrefix = emptyPrefix;
|
||||
}
|
||||
else
|
||||
{
|
||||
pathPrefix = mediaPrefix;
|
||||
}
|
||||
}
|
||||
|
||||
strcat(filePath, pathPrefix);
|
||||
strcat(filePath, fileName);
|
||||
|
||||
gPathList.push_back(filePath);
|
||||
|
||||
return filePath;
|
||||
}
|
||||
|
||||
const char *Common_WritePath(const char *fileName)
|
||||
{
|
||||
return Common_MediaPath(fileName);
|
||||
}
|
||||
|
||||
void Common_TTY(const char *format, ...)
|
||||
{
|
||||
char string[1024] = {0};
|
||||
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
Common_vsnprintf(string, 1023, format, args);
|
||||
va_end(args);
|
||||
|
||||
if (Common_Private_Print)
|
||||
{
|
||||
(*Common_Private_Print)(string);
|
||||
}
|
||||
else
|
||||
{
|
||||
OutputDebugStringA(string);
|
||||
}
|
||||
}
|
||||
|
||||
HFONT CreateDisplayFont()
|
||||
{
|
||||
return CreateFontA(22, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_OUTLINE_PRECIS,
|
||||
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH, 0);
|
||||
}
|
||||
|
||||
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (message == WM_PAINT)
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
HDC hdc = BeginPaint(hWnd, &ps);
|
||||
HDC hdcBack = CreateCompatibleDC(hdc);
|
||||
|
||||
HBITMAP hbmBack = CreateCompatibleBitmap(hdc, gScreenWidth, gScreenHeight);
|
||||
HBITMAP hbmOld = (HBITMAP)SelectObject(hdcBack, hbmBack);
|
||||
|
||||
HFONT hfnt = CreateDisplayFont();
|
||||
HFONT hfntOld = (HFONT)SelectObject(hdcBack, hfnt);
|
||||
|
||||
SetBkColor(hdcBack, RGB(0x0, 0x0, 0x0));
|
||||
SetTextColor(hdcBack, RGB(0xFF, 0xFF, 0xFF));
|
||||
DrawTextA(hdcBack, gDisplayBuffer, -1, &ps.rcPaint, 0);
|
||||
BitBlt(hdc, 0, 0, gScreenWidth, gScreenHeight, hdcBack, 0, 0, SRCCOPY);
|
||||
|
||||
SelectObject(hdcBack, hfntOld);
|
||||
DeleteObject(hfnt);
|
||||
|
||||
SelectObject(hdcBack, hbmOld);
|
||||
DeleteObject(hbmBack);
|
||||
|
||||
DeleteDC(hdcBack);
|
||||
EndPaint(hWnd, &ps);
|
||||
}
|
||||
else if (message == WM_DESTROY)
|
||||
{
|
||||
gQuit = true;
|
||||
}
|
||||
else if (message == WM_GETMINMAXINFO)
|
||||
{
|
||||
if (gScreenWidth == 0)
|
||||
{
|
||||
HDC hdc = GetDC(hWnd);
|
||||
|
||||
HFONT hfnt = CreateDisplayFont();
|
||||
HFONT hfntOld = (HFONT)SelectObject(hdc, hfnt);
|
||||
|
||||
TEXTMETRICA metrics = { };
|
||||
GetTextMetricsA(hdc, &metrics);
|
||||
|
||||
SelectObject(hdc, hfntOld);
|
||||
DeleteObject(hfnt);
|
||||
|
||||
ReleaseDC(hWnd, hdc);
|
||||
|
||||
RECT rec = { };
|
||||
rec.right = metrics.tmAveCharWidth * NUM_COLUMNS;
|
||||
rec.bottom = metrics.tmHeight * NUM_ROWS;
|
||||
|
||||
BOOL success = AdjustWindowRect(&rec, WS_CAPTION | WS_SYSMENU, FALSE);
|
||||
assert(success);
|
||||
|
||||
gScreenWidth = rec.right - rec.left;
|
||||
gScreenHeight = rec.bottom - rec.top;
|
||||
}
|
||||
|
||||
LPMINMAXINFO lpMMI = (LPMINMAXINFO)lParam;
|
||||
lpMMI->ptMinTrackSize.x = gScreenWidth;
|
||||
lpMMI->ptMinTrackSize.y = gScreenHeight;
|
||||
lpMMI->ptMaxTrackSize = lpMMI->ptMinTrackSize;
|
||||
}
|
||||
else if (message == WM_KEYDOWN)
|
||||
{
|
||||
gDownButtons |= translateButton((unsigned int)wParam);
|
||||
}
|
||||
else if (message == WM_KEYUP)
|
||||
{
|
||||
gDownButtons &= ~translateButton((unsigned int)wParam);
|
||||
}
|
||||
else
|
||||
{
|
||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, PSTR /*pCmdLine*/, int nCmdShow)
|
||||
{
|
||||
const char CLASS_NAME[] = "FMOD Example Window Class";
|
||||
|
||||
Common_Private_Argc = __argc;
|
||||
Common_Private_Argv = __argv;
|
||||
|
||||
WNDCLASSA wc = { };
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW;
|
||||
wc.lpfnWndProc = WndProc;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
|
||||
wc.lpszClassName = CLASS_NAME;
|
||||
|
||||
ATOM atom = RegisterClassA(&wc);
|
||||
assert(atom);
|
||||
|
||||
gWindow = CreateWindowA(CLASS_NAME, "FMOD Example", WS_CAPTION | WS_SYSMENU, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, nullptr, nullptr, hInstance, nullptr);
|
||||
assert(gWindow);
|
||||
|
||||
ShowWindow(gWindow, nCmdShow);
|
||||
|
||||
return FMOD_Main();
|
||||
}
|
16
SimpleGame/FMOD/api/studio/examples/common_platform.h
Normal file
16
SimpleGame/FMOD/api/studio/examples/common_platform.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
/*==============================================================================
|
||||
FMOD Example Framework
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
==============================================================================*/
|
||||
#include <windows.h>
|
||||
|
||||
int FMOD_Main();
|
||||
|
||||
#define COMMON_PLATFORM_SUPPORTS_FOPEN
|
||||
|
||||
#define Common_snprintf _snprintf
|
||||
#define Common_vsnprintf _vsnprintf
|
||||
|
||||
void Common_TTY(const char *format, ...);
|
||||
|
||||
|
97
SimpleGame/FMOD/api/studio/examples/event_parameter.cpp
Normal file
97
SimpleGame/FMOD/api/studio/examples/event_parameter.cpp
Normal file
|
@ -0,0 +1,97 @@
|
|||
/*==============================================================================
|
||||
Event Parameter Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example demonstrates how to control event playback using game parameters.
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = NULL;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
FMOD::Studio::Bank* masterBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank) );
|
||||
|
||||
FMOD::Studio::Bank* stringsBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank) );
|
||||
|
||||
FMOD::Studio::Bank* sfxBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("SFX.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &sfxBank) );
|
||||
|
||||
FMOD::Studio::EventDescription* eventDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Character/Player Footsteps", &eventDescription) );
|
||||
|
||||
// Find the parameter once and then set by handle
|
||||
// Or we can just find by name every time but by handle is more efficient if we are setting lots of parameters
|
||||
FMOD_STUDIO_PARAMETER_DESCRIPTION paramDesc;
|
||||
ERRCHECK( eventDescription->getParameterDescriptionByName("Surface", ¶mDesc) );
|
||||
FMOD_STUDIO_PARAMETER_ID surfaceID = paramDesc.id;
|
||||
|
||||
FMOD::Studio::EventInstance* eventInstance = NULL;
|
||||
ERRCHECK( eventDescription->createInstance(&eventInstance) );
|
||||
|
||||
// Make the event audible to start with
|
||||
float surfaceParameterValue = 1.0f;
|
||||
ERRCHECK( eventInstance->setParameterByID(surfaceID, surfaceParameterValue) );
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_MORE))
|
||||
{
|
||||
ERRCHECK( eventInstance->start() );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION1))
|
||||
{
|
||||
surfaceParameterValue = Common_Max(paramDesc.minimum, surfaceParameterValue - 1.0f);
|
||||
ERRCHECK( eventInstance->setParameterByID(surfaceID, surfaceParameterValue) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION2))
|
||||
{
|
||||
surfaceParameterValue = Common_Min(surfaceParameterValue + 1.0f, paramDesc.maximum);
|
||||
ERRCHECK( eventInstance->setParameterByID(surfaceID, surfaceParameterValue) );
|
||||
}
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
float userValue = 0.0f;
|
||||
float finalValue = 0.0f;
|
||||
ERRCHECK( eventInstance->getParameterByID(surfaceID, &userValue, &finalValue) );
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Event Parameter Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Surface Parameter = (user: %1.1f, final: %1.1f)", userValue, finalValue);
|
||||
Common_Draw("");
|
||||
Common_Draw("Surface Parameter:");
|
||||
Common_Draw("Press %s to play event", Common_BtnStr(BTN_MORE));
|
||||
Common_Draw("Press %s to decrease value", Common_BtnStr(BTN_ACTION1));
|
||||
Common_Draw("Press %s to increase value", Common_BtnStr(BTN_ACTION2));
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
427
SimpleGame/FMOD/api/studio/examples/load_banks.cpp
Normal file
427
SimpleGame/FMOD/api/studio/examples/load_banks.cpp
Normal file
|
@ -0,0 +1,427 @@
|
|||
/*==============================================================================
|
||||
Load Banks Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example demonstrates loading banks via file, memory, and user callbacks.
|
||||
|
||||
The banks that are loaded are:
|
||||
|
||||
* SFX.bank (file)
|
||||
* Music.bank (memory)
|
||||
* Vehicles.bank (memory-point)
|
||||
* VO.bank (custom)
|
||||
|
||||
The loading and unloading is asynchronous, and we displays the current
|
||||
state of each bank as loading is occuring.
|
||||
|
||||
### See Also ###
|
||||
* Studio::System::loadBankFile
|
||||
* Studio::System::loadBankMemory
|
||||
* Studio::System::loadBankCustom
|
||||
* Studio::Bank::loadSampleData
|
||||
* Studio::Bank::getLoadingState
|
||||
* Studio::Bank::getSampleLoadingState
|
||||
* Studio::Bank::getUserData
|
||||
* Studio::Bank::setUserData
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
#include <stdio.h>
|
||||
|
||||
//
|
||||
// Some platforms don't support cross platform fopen. Or you can disable this
|
||||
// to see how the sample deals with bank load failures.
|
||||
//
|
||||
#ifdef COMMON_PLATFORM_SUPPORTS_FOPEN
|
||||
#define ENABLE_FILE_OPEN
|
||||
#endif
|
||||
|
||||
//
|
||||
// Load method as enum for our sample code
|
||||
//
|
||||
enum LoadBankMethod
|
||||
{
|
||||
LoadBank_File,
|
||||
LoadBank_Memory,
|
||||
LoadBank_MemoryPoint,
|
||||
LoadBank_Custom
|
||||
};
|
||||
static const char* BANK_LOAD_METHOD_NAMES[] =
|
||||
{
|
||||
"File",
|
||||
"Memory",
|
||||
"Memory-Point",
|
||||
"Custom"
|
||||
};
|
||||
|
||||
//
|
||||
// Sanity check for loading files
|
||||
//
|
||||
#ifdef ENABLE_FILE_OPEN
|
||||
static const size_t MAX_FILE_LENGTH = 2*1024*1024*1024ULL;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Custom callbacks that just wrap fopen
|
||||
//
|
||||
FMOD_RESULT F_CALL customFileOpen(const char *name, unsigned int *filesize, void **handle, void *userdata)
|
||||
{
|
||||
#ifdef ENABLE_FILE_OPEN
|
||||
// We pass the filename into our callbacks via userdata in the custom info struct
|
||||
const char* filename = (const char*)userdata;
|
||||
FILE* file = fopen(filename, "rb");
|
||||
if (!file)
|
||||
{
|
||||
return FMOD_ERR_FILE_NOTFOUND;
|
||||
}
|
||||
fseek(file, 0, SEEK_END);
|
||||
size_t length = ftell(file);
|
||||
fseek(file, 0, SEEK_SET);
|
||||
if (length >= MAX_FILE_LENGTH)
|
||||
{
|
||||
fclose(file);
|
||||
return FMOD_ERR_FILE_BAD;
|
||||
}
|
||||
*filesize = (unsigned int)length;
|
||||
*handle = file;
|
||||
return FMOD_OK;
|
||||
#else
|
||||
return FMOD_ERR_FILE_NOTFOUND;
|
||||
#endif
|
||||
}
|
||||
|
||||
FMOD_RESULT F_CALL customFileClose(void *handle, void *userdata)
|
||||
{
|
||||
#ifdef ENABLE_FILE_OPEN
|
||||
FILE* file = (FILE*)handle;
|
||||
fclose(file);
|
||||
#endif
|
||||
return FMOD_OK;
|
||||
}
|
||||
|
||||
FMOD_RESULT F_CALL customFileRead(void *handle, void *buffer, unsigned int sizebytes, unsigned int *bytesread, void *userdata)
|
||||
{
|
||||
*bytesread = 0;
|
||||
#ifdef ENABLE_FILE_OPEN
|
||||
FILE* file = (FILE*)handle;
|
||||
size_t read = fread(buffer, 1, sizebytes, file);
|
||||
*bytesread = (unsigned int)read;
|
||||
// If the request is larger than the bytes left in the file, then we must return EOF
|
||||
if (read < sizebytes)
|
||||
{
|
||||
return FMOD_ERR_FILE_EOF;
|
||||
}
|
||||
#endif
|
||||
return FMOD_OK;
|
||||
}
|
||||
|
||||
FMOD_RESULT F_CALL customFileSeek(void *handle, unsigned int pos, void *userdata)
|
||||
{
|
||||
#ifdef ENABLE_FILE_OPEN
|
||||
FILE* file = (FILE*)handle;
|
||||
fseek(file, pos, SEEK_SET);
|
||||
#endif
|
||||
return FMOD_OK;
|
||||
}
|
||||
|
||||
//
|
||||
// Helper function that loads a file into aligned memory buffer
|
||||
//
|
||||
FMOD_RESULT loadFile(const char* filename, char** memoryBase, char** memoryPtr, int* memoryLength)
|
||||
{
|
||||
// If we don't support fopen then just return a single invalid byte for our file
|
||||
size_t length = 1;
|
||||
|
||||
#ifdef ENABLE_FILE_OPEN
|
||||
FILE* file = fopen(filename, "rb");
|
||||
if (!file)
|
||||
{
|
||||
return FMOD_ERR_FILE_NOTFOUND;
|
||||
}
|
||||
fseek(file, 0, SEEK_END);
|
||||
length = ftell(file);
|
||||
fseek(file, 0, SEEK_SET);
|
||||
if (length >= MAX_FILE_LENGTH)
|
||||
{
|
||||
fclose(file);
|
||||
return FMOD_ERR_FILE_BAD;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Load into a pointer aligned to FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT
|
||||
char* membase = reinterpret_cast<char*>(malloc(length + FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT));
|
||||
char* memptr = (char*)(((size_t)membase + (FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT-1)) & ~(FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT-1));
|
||||
|
||||
#ifdef ENABLE_FILE_OPEN
|
||||
size_t bytesRead = fread(memptr, 1, length, file);
|
||||
fclose(file);
|
||||
if (bytesRead != length)
|
||||
{
|
||||
free(membase);
|
||||
return FMOD_ERR_FILE_BAD;
|
||||
}
|
||||
#endif
|
||||
|
||||
*memoryBase = membase;
|
||||
*memoryPtr = memptr;
|
||||
*memoryLength = (int)length;
|
||||
return FMOD_OK;
|
||||
}
|
||||
|
||||
//
|
||||
// Helper function that loads a bank in using the given method
|
||||
//
|
||||
FMOD_RESULT loadBank(FMOD::Studio::System* system, LoadBankMethod method, const char* filename, FMOD::Studio::Bank** bank)
|
||||
{
|
||||
if (method == LoadBank_File)
|
||||
{
|
||||
return system->loadBankFile(filename, FMOD_STUDIO_LOAD_BANK_NONBLOCKING, bank);
|
||||
}
|
||||
else if (method == LoadBank_Memory || method == LoadBank_MemoryPoint)
|
||||
{
|
||||
char* memoryBase;
|
||||
char* memoryPtr;
|
||||
int memoryLength;
|
||||
FMOD_RESULT result = loadFile(filename, &memoryBase, &memoryPtr, &memoryLength);
|
||||
if (result != FMOD_OK)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
FMOD_STUDIO_LOAD_MEMORY_MODE memoryMode = (method == LoadBank_MemoryPoint ? FMOD_STUDIO_LOAD_MEMORY_POINT : FMOD_STUDIO_LOAD_MEMORY);
|
||||
result = system->loadBankMemory(memoryPtr, memoryLength, memoryMode, FMOD_STUDIO_LOAD_BANK_NONBLOCKING, bank);
|
||||
if (result != FMOD_OK)
|
||||
{
|
||||
free(memoryBase);
|
||||
return result;
|
||||
}
|
||||
|
||||
if (method == LoadBank_MemoryPoint)
|
||||
{
|
||||
// Keep memory around until bank unload completes
|
||||
result = (*bank)->setUserData(memoryBase);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Don't need memory any more
|
||||
free(memoryBase);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set up custom callback
|
||||
FMOD_STUDIO_BANK_INFO info;
|
||||
memset(&info, 0, sizeof(info));
|
||||
info.size = sizeof(info);
|
||||
info.opencallback = customFileOpen;
|
||||
info.closecallback = customFileClose;
|
||||
info.readcallback = customFileRead;
|
||||
info.seekcallback = customFileSeek;
|
||||
info.userdata = (void*)filename;
|
||||
|
||||
return system->loadBankCustom(&info, FMOD_STUDIO_LOAD_BANK_NONBLOCKING, bank);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Helper function to return state as a string
|
||||
//
|
||||
const char* getLoadingStateString(FMOD_STUDIO_LOADING_STATE state, FMOD_RESULT loadResult)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case FMOD_STUDIO_LOADING_STATE_UNLOADING:
|
||||
return "unloading ";
|
||||
case FMOD_STUDIO_LOADING_STATE_UNLOADED:
|
||||
return "unloaded ";
|
||||
case FMOD_STUDIO_LOADING_STATE_LOADING:
|
||||
return "loading ";
|
||||
case FMOD_STUDIO_LOADING_STATE_LOADED:
|
||||
return "loaded ";
|
||||
case FMOD_STUDIO_LOADING_STATE_ERROR:
|
||||
// Show some common errors
|
||||
if (loadResult == FMOD_ERR_NOTREADY)
|
||||
{
|
||||
return "error (rdy)";
|
||||
}
|
||||
else if (loadResult == FMOD_ERR_FILE_BAD)
|
||||
{
|
||||
return "error (bad)";
|
||||
}
|
||||
else if (loadResult == FMOD_ERR_FILE_NOTFOUND)
|
||||
{
|
||||
return "error (mis)";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "error ";
|
||||
}
|
||||
default:
|
||||
return "???";
|
||||
};
|
||||
}
|
||||
|
||||
//
|
||||
// Helper function to return handle validity as a string.
|
||||
// Just because the bank handle is valid doesn't mean the bank load
|
||||
// has completed successfully!
|
||||
//
|
||||
const char* getHandleStateString(FMOD::Studio::Bank* bank)
|
||||
{
|
||||
if (bank == NULL)
|
||||
{
|
||||
return "null ";
|
||||
}
|
||||
else if (!bank->isValid())
|
||||
{
|
||||
return "invalid";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "valid ";
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Callback to free memory-point allocation when it is safe to do so
|
||||
//
|
||||
FMOD_RESULT F_CALL studioCallback(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_SYSTEM_CALLBACK_TYPE type, void *commanddata, void *userdata)
|
||||
{
|
||||
if (type == FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD)
|
||||
{
|
||||
// For memory-point, it is now safe to free our memory
|
||||
FMOD::Studio::Bank* bank = (FMOD::Studio::Bank*)commanddata;
|
||||
void* memory;
|
||||
ERRCHECK(bank->getUserData(&memory));
|
||||
if (memory)
|
||||
{
|
||||
free(memory);
|
||||
}
|
||||
}
|
||||
return FMOD_OK;
|
||||
}
|
||||
|
||||
//
|
||||
// Main example code
|
||||
//
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = 0;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
ERRCHECK( system->setCallback(studioCallback, FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD) );
|
||||
|
||||
static const int BANK_COUNT = 4;
|
||||
static const char* BANK_NAMES[] =
|
||||
{
|
||||
"SFX.bank",
|
||||
"Music.bank",
|
||||
"Vehicles.bank",
|
||||
"VO.bank",
|
||||
};
|
||||
|
||||
FMOD::Studio::Bank* banks[BANK_COUNT] = {0};
|
||||
bool wantBankLoaded[BANK_COUNT] = {0};
|
||||
bool wantSampleLoad = true;
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
for (int i=0; i<BANK_COUNT; ++i)
|
||||
{
|
||||
if (Common_BtnPress((Common_Button)(BTN_ACTION1 + i)))
|
||||
{
|
||||
// Toggle bank load, or bank unload
|
||||
if (!wantBankLoaded[i])
|
||||
{
|
||||
ERRCHECK(loadBank(system, (LoadBankMethod)i, Common_MediaPath(BANK_NAMES[i]), &banks[i]));
|
||||
wantBankLoaded[i] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ERRCHECK(banks[i]->unload());
|
||||
wantBankLoaded[i] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Common_BtnPress(BTN_MORE))
|
||||
{
|
||||
wantSampleLoad = !wantSampleLoad;
|
||||
}
|
||||
|
||||
// Load bank sample data automatically if that mode is enabled
|
||||
// Also query current status for text display
|
||||
FMOD_RESULT loadStateResult[BANK_COUNT] = { FMOD_OK, FMOD_OK, FMOD_OK, FMOD_OK, };
|
||||
FMOD_RESULT sampleStateResult[BANK_COUNT] = { FMOD_OK, FMOD_OK, FMOD_OK, FMOD_OK, };
|
||||
FMOD_STUDIO_LOADING_STATE bankLoadState[BANK_COUNT] = { FMOD_STUDIO_LOADING_STATE_UNLOADED, FMOD_STUDIO_LOADING_STATE_UNLOADED, FMOD_STUDIO_LOADING_STATE_UNLOADED, FMOD_STUDIO_LOADING_STATE_UNLOADED };
|
||||
FMOD_STUDIO_LOADING_STATE sampleLoadState[BANK_COUNT] = { FMOD_STUDIO_LOADING_STATE_UNLOADED, FMOD_STUDIO_LOADING_STATE_UNLOADED, FMOD_STUDIO_LOADING_STATE_UNLOADED, FMOD_STUDIO_LOADING_STATE_UNLOADED };
|
||||
for (int i=0; i<BANK_COUNT; ++i)
|
||||
{
|
||||
if (banks[i] && banks[i]->isValid())
|
||||
{
|
||||
loadStateResult[i] = banks[i]->getLoadingState(&bankLoadState[i]);
|
||||
}
|
||||
if (bankLoadState[i] == FMOD_STUDIO_LOADING_STATE_LOADED)
|
||||
{
|
||||
sampleStateResult[i] = banks[i]->getSampleLoadingState(&sampleLoadState[i]);
|
||||
if (wantSampleLoad && sampleLoadState[i] == FMOD_STUDIO_LOADING_STATE_UNLOADED)
|
||||
{
|
||||
ERRCHECK(banks[i]->loadSampleData());
|
||||
}
|
||||
else if (!wantSampleLoad && (sampleLoadState[i] == FMOD_STUDIO_LOADING_STATE_LOADING || sampleLoadState[i] == FMOD_STUDIO_LOADING_STATE_LOADED))
|
||||
{
|
||||
ERRCHECK(banks[i]->unloadSampleData());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Bank Load Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Name Handle Bank-State Sample-State");
|
||||
|
||||
for (int i=0; i<BANK_COUNT; ++i)
|
||||
{
|
||||
char namePad[64] = {0};
|
||||
int bankNameLen = strlen(BANK_NAMES[i]);
|
||||
memset(namePad, ' ', 15);
|
||||
strncpy(namePad, BANK_NAMES[i], bankNameLen);
|
||||
|
||||
Common_Draw("%s %s %s %s",
|
||||
namePad,
|
||||
getHandleStateString(banks[i]),
|
||||
getLoadingStateString(bankLoadState[i], loadStateResult[i]),
|
||||
getLoadingStateString(sampleLoadState[i], sampleStateResult[i]));
|
||||
}
|
||||
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to load bank 1 via %s",Common_BtnStr(BTN_ACTION1), BANK_LOAD_METHOD_NAMES[0]);
|
||||
Common_Draw("Press %s to load bank 2 via %s",Common_BtnStr(BTN_ACTION2), BANK_LOAD_METHOD_NAMES[1]);
|
||||
Common_Draw("Press %s to load bank 3 via %s",Common_BtnStr(BTN_ACTION3), BANK_LOAD_METHOD_NAMES[2]);
|
||||
Common_Draw("Press %s to load bank 4 via %s",Common_BtnStr(BTN_ACTION4), BANK_LOAD_METHOD_NAMES[3]);
|
||||
Common_Draw("Press %s to toggle sample data", Common_BtnStr(BTN_MORE));
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( system->unloadAll() );
|
||||
ERRCHECK( system->flushCommands() );
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
Binary file not shown.
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/640166main_MECO.ogg
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/640166main_MECO.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/Dialogue_CN.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/Dialogue_CN.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/Dialogue_EN.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/Dialogue_EN.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/Dialogue_JP.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/Dialogue_JP.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/Master.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/Master.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/Master.strings.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/Master.strings.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/Music.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/Music.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/SFX.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/SFX.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/VO.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/VO.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/Vehicles.bank
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/Vehicles.bank
Normal file
Binary file not shown.
BIN
SimpleGame/FMOD/api/studio/examples/media/programmer_sound.fsb
Normal file
BIN
SimpleGame/FMOD/api/studio/examples/media/programmer_sound.fsb
Normal file
Binary file not shown.
175
SimpleGame/FMOD/api/studio/examples/music_callbacks.cpp
Normal file
175
SimpleGame/FMOD/api/studio/examples/music_callbacks.cpp
Normal file
|
@ -0,0 +1,175 @@
|
|||
/*==============================================================================
|
||||
Music Callback Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example demonstrates beat and named marker callbacks when playing music.
|
||||
|
||||
### See Also ###
|
||||
* Studio::EventInstance::setCallback
|
||||
* FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER
|
||||
* FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
static const int MAX_ENTRIES = 6;
|
||||
|
||||
struct CallbackInfo
|
||||
{
|
||||
Common_Mutex mMutex;
|
||||
std::vector<std::string> mEntries;
|
||||
};
|
||||
|
||||
FMOD_RESULT F_CALL markerCallback(FMOD_STUDIO_EVENT_CALLBACK_TYPE type, FMOD_STUDIO_EVENTINSTANCE* event, void *parameters);
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = NULL;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
|
||||
// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
|
||||
FMOD::System* coreSystem = NULL;
|
||||
ERRCHECK( system->getCoreSystem(&coreSystem) );
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0) );
|
||||
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
FMOD::Studio::Bank* masterBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank) );
|
||||
|
||||
FMOD::Studio::Bank* stringsBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank) );
|
||||
|
||||
FMOD::Studio::Bank* musicBank = NULL;
|
||||
FMOD_RESULT result = system->loadBankFile(Common_MediaPath("Music.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &musicBank);
|
||||
if (result != FMOD_OK)
|
||||
{
|
||||
// Music bank is not exported by default, you will have to export from the tool first
|
||||
Common_Fatal("Please export music.bank from the Studio tool to run this example");
|
||||
}
|
||||
|
||||
FMOD::Studio::EventDescription* eventDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Music/Level 01", &eventDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* eventInstance = NULL;
|
||||
ERRCHECK( eventDescription->createInstance(&eventInstance) );
|
||||
|
||||
CallbackInfo info;
|
||||
Common_Mutex_Create(&info.mMutex);
|
||||
|
||||
ERRCHECK( eventInstance->setUserData(&info) );
|
||||
ERRCHECK( eventInstance->setCallback(markerCallback,
|
||||
FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER | FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT |
|
||||
FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED | FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED) );
|
||||
ERRCHECK( eventInstance->start() );
|
||||
|
||||
FMOD_STUDIO_PARAMETER_DESCRIPTION parameterDescription;
|
||||
ERRCHECK( eventDescription->getParameterDescriptionByName("Progression", ¶meterDescription) );
|
||||
|
||||
FMOD_STUDIO_PARAMETER_ID progressionID = parameterDescription.id;
|
||||
|
||||
float progression = 0.0f;
|
||||
ERRCHECK(eventInstance->setParameterByID(progressionID, progression));
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_MORE))
|
||||
{
|
||||
progression = (progression == 0.0f ? 1.0f : 0.0f);
|
||||
ERRCHECK(eventInstance->setParameterByID(progressionID, progression));
|
||||
}
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
int position;
|
||||
ERRCHECK( eventInstance->getTimelinePosition(&position) );
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Music Callback Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Timeline = %d", position);
|
||||
Common_Draw("");
|
||||
// Obtain lock and look at our strings
|
||||
Common_Mutex_Enter(&info.mMutex);
|
||||
for (size_t i=0; i<info.mEntries.size(); ++i)
|
||||
{
|
||||
Common_Draw(" %s\n", info.mEntries[i].c_str());
|
||||
}
|
||||
Common_Mutex_Leave(&info.mMutex);
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to toggle progression (currently %g)", Common_BtnStr(BTN_MORE), progression);
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Mutex_Destroy(&info.mMutex);
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Obtain a lock and add a string entry to our list
|
||||
void markerAddString(CallbackInfo* info, const char* format, ...)
|
||||
{
|
||||
char buf[256];
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
Common_vsnprintf(buf, 256, format, args);
|
||||
va_end(args);
|
||||
buf[255] = '\0';
|
||||
Common_Mutex_Enter(&info->mMutex);
|
||||
if (info->mEntries.size() >= MAX_ENTRIES)
|
||||
{
|
||||
info->mEntries.erase(info->mEntries.begin());
|
||||
}
|
||||
info->mEntries.push_back(std::string(buf));
|
||||
Common_Mutex_Leave(&info->mMutex);
|
||||
}
|
||||
|
||||
// Callback from Studio - Remember these callbacks will occur in the Studio update thread, NOT the game thread.
|
||||
FMOD_RESULT F_CALL markerCallback(FMOD_STUDIO_EVENT_CALLBACK_TYPE type, FMOD_STUDIO_EVENTINSTANCE* event, void *parameters)
|
||||
{
|
||||
CallbackInfo* callbackInfo;
|
||||
ERRCHECK(((FMOD::Studio::EventInstance*)event)->getUserData((void**)&callbackInfo));
|
||||
|
||||
if (type == FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER)
|
||||
{
|
||||
FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES* props = (FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES*)parameters;
|
||||
markerAddString(callbackInfo, "Named marker '%s'", props->name);
|
||||
}
|
||||
else if (type == FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT)
|
||||
{
|
||||
FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES* props = (FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES*)parameters;
|
||||
markerAddString(callbackInfo, "beat %d, bar %d (tempo %.1f %d:%d)", props->beat, props->bar, props->tempo, props->timesignatureupper, props->timesignaturelower);
|
||||
}
|
||||
if (type == FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED || type == FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED)
|
||||
{
|
||||
FMOD::Sound* sound = (FMOD::Sound*)parameters;
|
||||
char name[256];
|
||||
ERRCHECK(sound->getName(name, 256));
|
||||
unsigned int len;
|
||||
ERRCHECK(sound->getLength(&len, FMOD_TIMEUNIT_MS));
|
||||
|
||||
markerAddString(callbackInfo, "Sound '%s' (length %.3f) %s",
|
||||
name, (float)len/1000.0f,
|
||||
type == FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED ? "Started" : "Stopped");
|
||||
}
|
||||
|
||||
return FMOD_OK;
|
||||
}
|
189
SimpleGame/FMOD/api/studio/examples/objectpan.cpp
Normal file
189
SimpleGame/FMOD/api/studio/examples/objectpan.cpp
Normal file
|
@ -0,0 +1,189 @@
|
|||
/*==============================================================================
|
||||
Object Panning Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2015-2025.
|
||||
|
||||
This example demonstrates the FMOD object panner. The usage is completely
|
||||
transparent to the API, the only difference is how the event is authored in the
|
||||
FMOD Studio tool.
|
||||
|
||||
To hear the difference between object panning and normal panning this example
|
||||
has two events (one configured with the normal panner, and one with the object
|
||||
panner). As they move around the listener you may toggle between panning method
|
||||
and two different sounds.
|
||||
|
||||
Object panning requires compatible hardware such as a Dolby Atmos amplifier or
|
||||
a Playstation VR headset. For cases when the necessary hardware is not available
|
||||
FMOD will fallback to standard 3D panning.
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
#include <math.h>
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
bool isOnGround = false;
|
||||
bool useListenerAttenuationPosition = false;
|
||||
|
||||
void *extraDriverData = NULL;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System *system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
|
||||
// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
|
||||
FMOD::System* coreSystem = NULL;
|
||||
ERRCHECK( system->getCoreSystem(&coreSystem) );
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0) );
|
||||
|
||||
// Attempt to initialize with a compatible object panning output
|
||||
FMOD_RESULT result = coreSystem->setOutput(FMOD_OUTPUTTYPE_AUDIO3D);
|
||||
if (result != FMOD_OK)
|
||||
{
|
||||
result = coreSystem->setOutput(FMOD_OUTPUTTYPE_WINSONIC);
|
||||
if (result == FMOD_OK)
|
||||
{
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_7POINT1POINT4, 0) );
|
||||
}
|
||||
else
|
||||
{
|
||||
result = coreSystem->setOutput(FMOD_OUTPUTTYPE_PHASE);
|
||||
if (result == FMOD_OK)
|
||||
{
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_7POINT1POINT4, 0) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int numDrivers = 0;
|
||||
ERRCHECK( coreSystem->getNumDrivers(&numDrivers) );
|
||||
|
||||
if (numDrivers == 0)
|
||||
{
|
||||
ERRCHECK( coreSystem->setDSPBufferSize(512, 4) );
|
||||
ERRCHECK( coreSystem->setOutput(FMOD_OUTPUTTYPE_AUTODETECT) );
|
||||
}
|
||||
|
||||
// Due to a bug in WinSonic on Windows, FMOD initialization may fail on some machines.
|
||||
// If you get the error "FMOD error 51 - Error initializing output device", try using
|
||||
// a different output type such as FMOD_OUTPUTTYPE_AUTODETECT
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
// Load everything needed for playback
|
||||
FMOD::Studio::Bank *masterBank = NULL;
|
||||
FMOD::Studio::Bank *musicBank = NULL;
|
||||
FMOD::Studio::Bank *stringsBank = NULL;
|
||||
FMOD::Studio::EventDescription *spatializerDescription = NULL;
|
||||
FMOD::Studio::EventInstance *spatializerInstance = NULL;
|
||||
float spatializer;
|
||||
float radioFrequency;
|
||||
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank) );
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Music.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &musicBank) );
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank) );
|
||||
ERRCHECK( system->getEvent("event:/Music/Radio Station", &spatializerDescription) );
|
||||
ERRCHECK( spatializerDescription->createInstance(&spatializerInstance) );
|
||||
ERRCHECK( spatializerInstance->start() );
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
ERRCHECK(spatializerInstance->getParameterByName("Freq", NULL, &radioFrequency));
|
||||
ERRCHECK(spatializerInstance->getParameterByName("Spatializer", NULL, &spatializer));
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION1))
|
||||
{
|
||||
if (radioFrequency == 3.00f)
|
||||
{
|
||||
ERRCHECK(spatializerInstance->setParameterByName("Freq", 0.00f));
|
||||
}
|
||||
else
|
||||
{
|
||||
ERRCHECK(spatializerInstance->setParameterByName("Freq", (radioFrequency + 1.50f)));
|
||||
}
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION2))
|
||||
{
|
||||
if (spatializer == 1.00)
|
||||
{
|
||||
ERRCHECK(spatializerInstance->setParameterByName("Spatializer", 0.00f));
|
||||
}
|
||||
else
|
||||
{
|
||||
ERRCHECK(spatializerInstance->setParameterByName("Spatializer", 1.00f));
|
||||
}
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION3))
|
||||
{
|
||||
isOnGround = !isOnGround;
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION4))
|
||||
{
|
||||
useListenerAttenuationPosition = !useListenerAttenuationPosition;
|
||||
}
|
||||
|
||||
FMOD_3D_ATTRIBUTES vec = { };
|
||||
vec.forward.z = 1.0f;
|
||||
vec.up.y = 1.0f;
|
||||
static float t = 0;
|
||||
vec.position.x = sinf(t) * 3.0f; /* Rotate sound in a circle */
|
||||
vec.position.z = cosf(t) * 3.0f; /* Rotate sound in a circle */
|
||||
t += 0.03f;
|
||||
|
||||
if (isOnGround)
|
||||
{
|
||||
vec.position.y = 0; /* At ground level */
|
||||
}
|
||||
else
|
||||
{
|
||||
vec.position.y = 5.0f; /* Up high */
|
||||
}
|
||||
|
||||
ERRCHECK( spatializerInstance->set3DAttributes(&vec) );
|
||||
|
||||
FMOD_3D_ATTRIBUTES listener_vec = { };
|
||||
listener_vec.forward.z = 1.0f;
|
||||
listener_vec.up.y = 1.0f;
|
||||
|
||||
FMOD_VECTOR listener_attenuationPos = vec.position;
|
||||
listener_attenuationPos.z -= -10.0f;
|
||||
|
||||
ERRCHECK( system->setListenerAttributes(0, &listener_vec, useListenerAttenuationPosition ? &listener_attenuationPos : nullptr) );
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
const char *radioString = (radioFrequency == 0.00f) ? "Rock" : (radioFrequency == 1.50f) ? "Lo-fi" : "Hip hop";
|
||||
const char *spatialString = (spatializer == 0.00f) ? "Standard 3D Spatializer" : "Object Spatializer";
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Object Panning Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2015-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Playing %s with the %s.", radioString, spatialString);
|
||||
Common_Draw("Radio is %s.", isOnGround ? "on the ground" : "up in the air");
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to switch stations.", Common_BtnStr(BTN_ACTION1));
|
||||
Common_Draw("Press %s to switch spatializer.", Common_BtnStr(BTN_ACTION2));
|
||||
Common_Draw("Press %s to elevate the event instance.", Common_BtnStr(BTN_ACTION3));
|
||||
Common_Draw("Press %s to %s use of attenuation position.", Common_BtnStr(BTN_ACTION4), useListenerAttenuationPosition ? "disable" : "enable");
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( stringsBank->unload() );
|
||||
ERRCHECK( musicBank->unload() );
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
177
SimpleGame/FMOD/api/studio/examples/programmer_sound.cpp
Normal file
177
SimpleGame/FMOD/api/studio/examples/programmer_sound.cpp
Normal file
|
@ -0,0 +1,177 @@
|
|||
/*==============================================================================
|
||||
Programmer Sound Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example demonstrates how to implement the programmer sound callback to
|
||||
play an event that has a programmer specified sound.
|
||||
|
||||
### See Also ###
|
||||
Studio::EventInstance::setCallback
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
|
||||
struct ProgrammerSoundContext
|
||||
{
|
||||
const char* dialogueString;
|
||||
};
|
||||
|
||||
FMOD_RESULT F_CALL programmerSoundCallback(FMOD_STUDIO_EVENT_CALLBACK_TYPE type, FMOD_STUDIO_EVENTINSTANCE* event, void *parameters);
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = NULL;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
|
||||
// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
|
||||
FMOD::System* coreSystem = NULL;
|
||||
ERRCHECK( system->getCoreSystem(&coreSystem) );
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0) );
|
||||
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
FMOD::Studio::Bank* masterBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank) );
|
||||
|
||||
FMOD::Studio::Bank* stringsBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank) );
|
||||
|
||||
FMOD::Studio::Bank* sfxBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("SFX.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &sfxBank) );
|
||||
|
||||
// Available banks
|
||||
unsigned int bankIndex = 0;
|
||||
static const char* const banks[] = { "Dialogue_EN.bank", "Dialogue_JP.bank", "Dialogue_CN.bank" };
|
||||
|
||||
FMOD::Studio::Bank* localizedBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath(banks[bankIndex]), FMOD_STUDIO_LOAD_BANK_NORMAL, &localizedBank) );
|
||||
|
||||
FMOD::Studio::EventDescription* eventDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Character/Dialogue", &eventDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* eventInstance = NULL;
|
||||
ERRCHECK( eventDescription->createInstance(&eventInstance) );
|
||||
|
||||
// Dialogue keys available
|
||||
// These keys are shared amongst all audio tables
|
||||
unsigned int dialogueIndex = 0;
|
||||
static const char* const dialogue[] = {"welcome", "main menu", "goodbye"};
|
||||
|
||||
ProgrammerSoundContext programmerSoundContext;
|
||||
programmerSoundContext.dialogueString = dialogue[dialogueIndex];
|
||||
|
||||
ERRCHECK( eventInstance->setUserData(&programmerSoundContext) );
|
||||
ERRCHECK( eventInstance->setCallback(programmerSoundCallback, FMOD_STUDIO_EVENT_CALLBACK_CREATE_PROGRAMMER_SOUND | FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND) );
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION1))
|
||||
{
|
||||
ERRCHECK( localizedBank->unload() );
|
||||
|
||||
bankIndex = (bankIndex < 2) ? bankIndex + 1 : 0;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath(banks[bankIndex]), FMOD_STUDIO_LOAD_BANK_NORMAL, &localizedBank) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION2))
|
||||
{
|
||||
dialogueIndex = (dialogueIndex < 2) ? dialogueIndex + 1 : 0;
|
||||
programmerSoundContext.dialogueString = dialogue[dialogueIndex];
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_MORE))
|
||||
{
|
||||
ERRCHECK( eventInstance->start() );
|
||||
}
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Programmer Sound Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to change language", Common_BtnStr(BTN_ACTION1));
|
||||
Common_Draw("Press %s to change dialogue", Common_BtnStr(BTN_ACTION2));
|
||||
Common_Draw("Press %s to play the event", Common_BtnStr(BTN_MORE));
|
||||
Common_Draw("");
|
||||
Common_Draw("Language:");
|
||||
Common_Draw(" %s English", bankIndex == 0 ? ">" : " ");
|
||||
Common_Draw(" %s Japanese", bankIndex == 1 ? ">" : " ");
|
||||
Common_Draw(" %s Chinese", bankIndex == 2 ? ">" : " ");
|
||||
Common_Draw("");
|
||||
Common_Draw("Dialogue:");
|
||||
Common_Draw(" %s Welcome to the FMOD Studio tutorial", dialogueIndex == 0 ? ">" : " ");
|
||||
Common_Draw(" %s This is the main menu", dialogueIndex == 1 ? ">" : " ");
|
||||
Common_Draw(" %s Goodbye", dialogueIndex == 2 ? ">" : " ");
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define CHECK_RESULT(op) \
|
||||
{ \
|
||||
FMOD_RESULT res = (op); \
|
||||
if (res != FMOD_OK) \
|
||||
{ \
|
||||
return res; \
|
||||
} \
|
||||
}
|
||||
|
||||
FMOD_RESULT F_CALL programmerSoundCallback(FMOD_STUDIO_EVENT_CALLBACK_TYPE type, FMOD_STUDIO_EVENTINSTANCE* event, void *parameters)
|
||||
{
|
||||
FMOD::Studio::EventInstance* eventInstance = (FMOD::Studio::EventInstance*)event;
|
||||
|
||||
if (type == FMOD_STUDIO_EVENT_CALLBACK_CREATE_PROGRAMMER_SOUND)
|
||||
{
|
||||
FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES* props = (FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES*)parameters;
|
||||
|
||||
// Get our context from the event instance user data
|
||||
ProgrammerSoundContext* context = NULL;
|
||||
CHECK_RESULT( eventInstance->getUserData((void**)&context) );
|
||||
|
||||
FMOD::Studio::System* studioSystem = NULL;
|
||||
CHECK_RESULT( eventInstance->getSystem(&studioSystem) );
|
||||
// Find the audio file in the audio table with the key
|
||||
FMOD_STUDIO_SOUND_INFO info;
|
||||
CHECK_RESULT( studioSystem->getSoundInfo(context->dialogueString, &info) );
|
||||
|
||||
FMOD::System* coreSystem = NULL;
|
||||
CHECK_RESULT( studioSystem->getCoreSystem(&coreSystem) );
|
||||
FMOD::Sound* sound = NULL;
|
||||
CHECK_RESULT( coreSystem->createSound(info.name_or_data, FMOD_LOOP_NORMAL | FMOD_CREATECOMPRESSEDSAMPLE | FMOD_NONBLOCKING | info.mode, &info.exinfo, &sound) );
|
||||
|
||||
// Pass the sound to FMOD
|
||||
props->sound = (FMOD_SOUND*)sound;
|
||||
props->subsoundIndex = info.subsoundindex;
|
||||
}
|
||||
else if (type == FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND)
|
||||
{
|
||||
FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES* props = (FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES*)parameters;
|
||||
|
||||
// Obtain the sound
|
||||
FMOD::Sound* sound = (FMOD::Sound*)props->sound;
|
||||
|
||||
// Release the sound
|
||||
CHECK_RESULT( sound->release() );
|
||||
}
|
||||
|
||||
return FMOD_OK;
|
||||
}
|
373
SimpleGame/FMOD/api/studio/examples/recording_playback.cpp
Normal file
373
SimpleGame/FMOD/api/studio/examples/recording_playback.cpp
Normal file
|
@ -0,0 +1,373 @@
|
|||
/*==============================================================================
|
||||
API Recording Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example shows recording and playback functionality, allowing the user to
|
||||
trigger some sounds and then play back what they have recorded. The provided
|
||||
functionality is intended to assist in debugging.
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
|
||||
const int SCREEN_WIDTH = NUM_COLUMNS;
|
||||
const int SCREEN_HEIGHT = 10;
|
||||
|
||||
int currentScreenPosition = -1;
|
||||
char screenBuffer[(SCREEN_WIDTH + 1) * SCREEN_HEIGHT + 1] = {0};
|
||||
|
||||
void initializeScreenBuffer();
|
||||
void updateScreenPosition(const FMOD_VECTOR& worldPosition);
|
||||
|
||||
static const char* RECORD_FILENAME = "playback.cmd.txt";
|
||||
|
||||
enum State
|
||||
{
|
||||
State_Selection,
|
||||
State_Record,
|
||||
State_Playback,
|
||||
State_Quit
|
||||
};
|
||||
|
||||
State executeSelection(FMOD::Studio::System* system);
|
||||
State executeRecord(FMOD::Studio::System* system);
|
||||
State executePlayback(FMOD::Studio::System* system);
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = 0;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
|
||||
// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
|
||||
FMOD::System* coreSystem = NULL;
|
||||
ERRCHECK( system->getCoreSystem(&coreSystem) );
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0) );
|
||||
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
State state = State_Selection;
|
||||
while (state != State_Quit)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case State_Selection:
|
||||
state = executeSelection(system);
|
||||
break;
|
||||
case State_Record:
|
||||
state = executeRecord(system);
|
||||
break;
|
||||
case State_Playback:
|
||||
state = executePlayback(system);
|
||||
break;
|
||||
case State_Quit:
|
||||
break;
|
||||
};
|
||||
};
|
||||
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Show the main selection menu
|
||||
State executeSelection(FMOD::Studio::System* system)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION1))
|
||||
{
|
||||
return State_Record;
|
||||
}
|
||||
if (Common_BtnPress(BTN_ACTION2))
|
||||
{
|
||||
return State_Playback;
|
||||
}
|
||||
if (Common_BtnPress(BTN_QUIT))
|
||||
{
|
||||
return State_Quit;
|
||||
}
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Recording and playback example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Waiting to start recording");
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to start recording", Common_BtnStr(BTN_ACTION1));
|
||||
Common_Draw("Press %s to play back recording", Common_BtnStr(BTN_ACTION2));
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
Common_Draw("");
|
||||
Common_Sleep(50);
|
||||
}
|
||||
}
|
||||
|
||||
// Start recording, load banks and then let the user trigger some sounds
|
||||
State executeRecord(FMOD::Studio::System* system)
|
||||
{
|
||||
FMOD::Studio::Bank* masterBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NONBLOCKING, &masterBank) );
|
||||
|
||||
FMOD::Studio::Bank* stringsBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NONBLOCKING, &stringsBank) );
|
||||
|
||||
FMOD::Studio::Bank* vehiclesBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Vehicles.bank"), FMOD_STUDIO_LOAD_BANK_NONBLOCKING, &vehiclesBank) );
|
||||
|
||||
FMOD::Studio::Bank* sfxBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("SFX.bank"), FMOD_STUDIO_LOAD_BANK_NONBLOCKING, &sfxBank) );
|
||||
|
||||
// Wait for banks to load
|
||||
ERRCHECK( system->flushCommands() );
|
||||
|
||||
// Start recording commands - it will also record which banks we have already loaded by now
|
||||
ERRCHECK( system->startCommandCapture(Common_WritePath(RECORD_FILENAME), FMOD_STUDIO_COMMANDCAPTURE_NORMAL) );
|
||||
|
||||
FMOD_GUID explosionID = {0};
|
||||
ERRCHECK( system->lookupID("event:/Weapons/Explosion", &explosionID) );
|
||||
|
||||
FMOD::Studio::EventDescription* engineDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Vehicles/Ride-on Mower", &engineDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* engineInstance = NULL;
|
||||
ERRCHECK( engineDescription->createInstance(&engineInstance) );
|
||||
|
||||
ERRCHECK( engineInstance->setParameterByName("RPM", 650.0f) );
|
||||
ERRCHECK( engineInstance->start() );
|
||||
|
||||
// Position the listener at the origin
|
||||
FMOD_3D_ATTRIBUTES attributes = { { 0 } };
|
||||
attributes.forward.z = 1.0f;
|
||||
attributes.up.y = 1.0f;
|
||||
ERRCHECK( system->setListenerAttributes(0, &attributes) );
|
||||
|
||||
// Position the event 2 units in front of the listener
|
||||
attributes.position.z = 2.0f;
|
||||
ERRCHECK( engineInstance->set3DAttributes(&attributes) );
|
||||
|
||||
initializeScreenBuffer();
|
||||
|
||||
bool wantQuit = false;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_MORE))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_QUIT))
|
||||
{
|
||||
wantQuit = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION1))
|
||||
{
|
||||
// One-shot event
|
||||
FMOD::Studio::EventDescription* eventDescription = NULL;
|
||||
ERRCHECK( system->getEventByID(&explosionID, &eventDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* eventInstance = NULL;
|
||||
ERRCHECK( eventDescription->createInstance(&eventInstance) );
|
||||
for (int i=0; i<10; ++i)
|
||||
{
|
||||
ERRCHECK( eventInstance->setVolume(i / 10.0f) );
|
||||
}
|
||||
|
||||
ERRCHECK( eventInstance->start() );
|
||||
|
||||
// Release will clean up the instance when it completes
|
||||
ERRCHECK( eventInstance->release() );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_LEFT))
|
||||
{
|
||||
attributes.position.x -= 1.0f;
|
||||
ERRCHECK( engineInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_RIGHT))
|
||||
{
|
||||
attributes.position.x += 1.0f;
|
||||
ERRCHECK( engineInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_UP))
|
||||
{
|
||||
attributes.position.z += 1.0f;
|
||||
ERRCHECK( engineInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_DOWN))
|
||||
{
|
||||
attributes.position.z -= 1.0f;
|
||||
ERRCHECK( engineInstance->set3DAttributes(&attributes) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_MORE))
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (Common_BtnPress(BTN_QUIT))
|
||||
{
|
||||
wantQuit = true;
|
||||
break;
|
||||
}
|
||||
|
||||
ERRCHECK(system->update());
|
||||
|
||||
updateScreenPosition(attributes.position);
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Recording and playback example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Recording!");
|
||||
Common_Draw("");
|
||||
Common_Draw(screenBuffer);
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to finish recording", Common_BtnStr(BTN_MORE));
|
||||
Common_Draw("Press %s to play a one-shot", Common_BtnStr(BTN_ACTION1));
|
||||
Common_Draw("Use the arrow keys (%s, %s, %s, %s) to control the engine position",
|
||||
Common_BtnStr(BTN_LEFT), Common_BtnStr(BTN_RIGHT), Common_BtnStr(BTN_UP), Common_BtnStr(BTN_DOWN));
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
}
|
||||
|
||||
// Unload all the banks
|
||||
ERRCHECK( masterBank->unload() );
|
||||
ERRCHECK( stringsBank->unload() );
|
||||
ERRCHECK( vehiclesBank->unload() );
|
||||
ERRCHECK( sfxBank->unload() );
|
||||
|
||||
// Finish recording
|
||||
ERRCHECK( system->flushCommands() );
|
||||
ERRCHECK( system->stopCommandCapture() );
|
||||
|
||||
return (wantQuit ? State_Quit : State_Selection);
|
||||
}
|
||||
|
||||
// Play back a previously recorded file
|
||||
State executePlayback(FMOD::Studio::System* system)
|
||||
{
|
||||
FMOD::Studio::CommandReplay* replay;
|
||||
ERRCHECK( system->loadCommandReplay(Common_WritePath(RECORD_FILENAME), FMOD_STUDIO_COMMANDREPLAY_NORMAL, &replay));
|
||||
int commandCount;
|
||||
ERRCHECK(replay->getCommandCount(&commandCount));
|
||||
float totalTime;
|
||||
ERRCHECK(replay->getLength(&totalTime));
|
||||
ERRCHECK(replay->start());
|
||||
ERRCHECK(system->update());
|
||||
|
||||
for (;;)
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_QUIT))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_MORE))
|
||||
{
|
||||
bool paused;
|
||||
ERRCHECK(replay->getPaused(&paused));
|
||||
ERRCHECK(replay->setPaused(!paused));
|
||||
}
|
||||
|
||||
FMOD_STUDIO_PLAYBACK_STATE state;
|
||||
ERRCHECK(replay->getPlaybackState(&state));
|
||||
if (state == FMOD_STUDIO_PLAYBACK_STOPPED)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
int currentIndex;
|
||||
float currentTime;
|
||||
ERRCHECK(replay->getCurrentCommand(¤tIndex, ¤tTime));
|
||||
|
||||
ERRCHECK(system->update());
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Recording and playback example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Playing back commands:");
|
||||
Common_Draw("Command = %d / %d\n", currentIndex, commandCount);
|
||||
Common_Draw("Time = %.3f / %.3f\n", currentTime, totalTime);
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to pause/unpause recording", Common_BtnStr(BTN_MORE));
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
}
|
||||
|
||||
|
||||
ERRCHECK( replay->release() );
|
||||
ERRCHECK( system->unloadAll() );
|
||||
return State_Selection;
|
||||
}
|
||||
|
||||
void initializeScreenBuffer()
|
||||
{
|
||||
memset(screenBuffer, ' ', sizeof(screenBuffer));
|
||||
|
||||
int idx = SCREEN_WIDTH;
|
||||
for (int i = 0; i < SCREEN_HEIGHT; ++i)
|
||||
{
|
||||
screenBuffer[idx] = '\n';
|
||||
idx += SCREEN_WIDTH + 1;
|
||||
}
|
||||
|
||||
screenBuffer[(SCREEN_WIDTH + 1) * SCREEN_HEIGHT] = '\0';
|
||||
}
|
||||
|
||||
int getCharacterIndex(const FMOD_VECTOR& position)
|
||||
{
|
||||
int row = static_cast<int>(-position.z + (SCREEN_HEIGHT / 2));
|
||||
int col = static_cast<int>(position.x + (SCREEN_WIDTH / 2));
|
||||
|
||||
if (0 < row && row < SCREEN_HEIGHT && 0 < col && col < SCREEN_WIDTH)
|
||||
{
|
||||
return (row * (SCREEN_WIDTH + 1)) + col;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void updateScreenPosition(const FMOD_VECTOR& eventPosition)
|
||||
{
|
||||
if (currentScreenPosition != -1)
|
||||
{
|
||||
screenBuffer[currentScreenPosition] = ' ';
|
||||
currentScreenPosition = -1;
|
||||
}
|
||||
|
||||
FMOD_VECTOR origin = {0};
|
||||
int idx = getCharacterIndex(origin);
|
||||
screenBuffer[idx] = '^';
|
||||
|
||||
idx = getCharacterIndex(eventPosition);
|
||||
if (idx != -1)
|
||||
{
|
||||
screenBuffer[idx] = 'o';
|
||||
currentScreenPosition = idx;
|
||||
}
|
||||
}
|
126
SimpleGame/FMOD/api/studio/examples/simple_event.cpp
Normal file
126
SimpleGame/FMOD/api/studio/examples/simple_event.cpp
Normal file
|
@ -0,0 +1,126 @@
|
|||
/*==============================================================================
|
||||
Simple Event Example
|
||||
Copyright (c), Firelight Technologies Pty, Ltd 2012-2025.
|
||||
|
||||
This example demonstrates the various ways of playing an event.
|
||||
|
||||
#### Explosion Event ####
|
||||
This event is played as a one-shot and released immediately after it has been
|
||||
created.
|
||||
|
||||
#### Looping Ambience Event ####
|
||||
A single instance is started or stopped based on user input.
|
||||
|
||||
#### Cancel Event ####
|
||||
This instance is started and if already playing, restarted.
|
||||
|
||||
For information on using FMOD example code in your own programs, visit
|
||||
https://www.fmod.com/legal
|
||||
==============================================================================*/
|
||||
#include "fmod_studio.hpp"
|
||||
#include "fmod.hpp"
|
||||
#include "common.h"
|
||||
|
||||
int FMOD_Main()
|
||||
{
|
||||
void *extraDriverData = NULL;
|
||||
Common_Init(&extraDriverData);
|
||||
|
||||
FMOD::Studio::System* system = NULL;
|
||||
ERRCHECK( FMOD::Studio::System::create(&system) );
|
||||
|
||||
// The example Studio project is authored for 5.1 sound, so set up the system output mode to match
|
||||
FMOD::System* coreSystem = NULL;
|
||||
ERRCHECK( system->getCoreSystem(&coreSystem) );
|
||||
ERRCHECK( coreSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0) );
|
||||
|
||||
ERRCHECK( system->initialize(1024, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL, extraDriverData) );
|
||||
|
||||
FMOD::Studio::Bank* masterBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &masterBank) );
|
||||
|
||||
FMOD::Studio::Bank* stringsBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("Master.strings.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &stringsBank) );
|
||||
|
||||
FMOD::Studio::Bank* sfxBank = NULL;
|
||||
ERRCHECK( system->loadBankFile(Common_MediaPath("SFX.bank"), FMOD_STUDIO_LOAD_BANK_NORMAL, &sfxBank) );
|
||||
|
||||
// Get the Looping Ambience event
|
||||
FMOD::Studio::EventDescription* loopingAmbienceDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Ambience/Country", &loopingAmbienceDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* loopingAmbienceInstance = NULL;
|
||||
ERRCHECK( loopingAmbienceDescription->createInstance(&loopingAmbienceInstance) );
|
||||
|
||||
// Get the 4 Second Surge event
|
||||
FMOD::Studio::EventDescription* cancelDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/UI/Cancel", &cancelDescription) );
|
||||
|
||||
FMOD::Studio::EventInstance* cancelInstance = NULL;
|
||||
ERRCHECK( cancelDescription->createInstance(&cancelInstance) );
|
||||
|
||||
// Get the Single Explosion event
|
||||
FMOD::Studio::EventDescription* explosionDescription = NULL;
|
||||
ERRCHECK( system->getEvent("event:/Weapons/Explosion", &explosionDescription) );
|
||||
|
||||
// Start loading explosion sample data and keep it in memory
|
||||
ERRCHECK( explosionDescription->loadSampleData() );
|
||||
|
||||
do
|
||||
{
|
||||
Common_Update();
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION1))
|
||||
{
|
||||
// One-shot event
|
||||
FMOD::Studio::EventInstance* eventInstance = NULL;
|
||||
ERRCHECK( explosionDescription->createInstance(&eventInstance) );
|
||||
|
||||
ERRCHECK( eventInstance->start() );
|
||||
|
||||
// Release will clean up the instance when it completes
|
||||
ERRCHECK( eventInstance->release() );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION2))
|
||||
{
|
||||
ERRCHECK( loopingAmbienceInstance->start() );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION3))
|
||||
{
|
||||
ERRCHECK( loopingAmbienceInstance->stop(FMOD_STUDIO_STOP_IMMEDIATE) );
|
||||
}
|
||||
|
||||
if (Common_BtnPress(BTN_ACTION4))
|
||||
{
|
||||
// Calling start on an instance will cause it to restart if it's already playing
|
||||
ERRCHECK( cancelInstance->start() );
|
||||
}
|
||||
|
||||
ERRCHECK( system->update() );
|
||||
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("Simple Event Example.");
|
||||
Common_Draw("Copyright (c) Firelight Technologies 2012-2025.");
|
||||
Common_Draw("==================================================");
|
||||
Common_Draw("");
|
||||
Common_Draw("Press %s to fire and forget the explosion", Common_BtnStr(BTN_ACTION1));
|
||||
Common_Draw("Press %s to start the looping ambience", Common_BtnStr(BTN_ACTION2));
|
||||
Common_Draw("Press %s to stop the looping ambience", Common_BtnStr(BTN_ACTION3));
|
||||
Common_Draw("Press %s to start/restart the cancel sound", Common_BtnStr(BTN_ACTION4));
|
||||
Common_Draw("Press %s to quit", Common_BtnStr(BTN_QUIT));
|
||||
|
||||
Common_Sleep(50);
|
||||
} while (!Common_BtnPress(BTN_QUIT));
|
||||
|
||||
ERRCHECK( sfxBank->unload() );
|
||||
ERRCHECK( stringsBank->unload() );
|
||||
ERRCHECK( masterBank->unload() );
|
||||
|
||||
ERRCHECK( system->release() );
|
||||
|
||||
Common_Close();
|
||||
|
||||
return 0;
|
||||
}
|
85
SimpleGame/FMOD/api/studio/examples/vs2017/3d.vcxproj
Normal file
85
SimpleGame/FMOD/api/studio/examples/vs2017/3d.vcxproj
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{73693ACD-D6D7-4784-A76D-DA990895F0FF}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\3d.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
85
SimpleGame/FMOD/api/studio/examples/vs2017/3d_multi.vcxproj
Normal file
85
SimpleGame/FMOD/api/studio/examples/vs2017/3d_multi.vcxproj
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\3d_multi.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\event_parameter.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
198
SimpleGame/FMOD/api/studio/examples/vs2017/examples.sln
Normal file
198
SimpleGame/FMOD/api/studio/examples/vs2017/examples.sln
Normal file
|
@ -0,0 +1,198 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 15
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3d", "3d.vcxproj", "{73693ACD-D6D7-4784-A76D-DA990895F0FF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3d_multi", "3d_multi.vcxproj", "{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event_parameter", "event_parameter.vcxproj", "{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "load_banks", "load_banks.vcxproj", "{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "music_callbacks", "music_callbacks.vcxproj", "{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "objectpan", "objectpan.vcxproj", "{45CC7BC5-F619-4460-931E-7CCDB0FFF609}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "programmer_sound", "programmer_sound.vcxproj", "{E59D3927-5537-471A-AEE6-4D13D3057E67}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "recording_playback", "recording_playback.vcxproj", "{B7D13C73-23F1-41F9-ADA9-626994A99F3E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_event", "simple_event.vcxproj", "{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
Release|ARM64 = Release|ARM64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|x64.Build.0 = Debug|x64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|Win32.Build.0 = Release|Win32
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|x64.ActiveCfg = Release|x64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|x64.Build.0 = Release|x64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|x64.Deploy.0 = Release|x64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{73693ACD-D6D7-4784-A76D-DA990895F0FF}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|x64.Build.0 = Debug|x64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|Win32.Build.0 = Release|Win32
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|x64.ActiveCfg = Release|x64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|x64.Build.0 = Release|x64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|x64.Deploy.0 = Release|x64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{9E00A588-7ADB-4C29-90D6-DF44E3D6D711}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|x64.Build.0 = Debug|x64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|Win32.Build.0 = Release|Win32
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|x64.ActiveCfg = Release|x64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|x64.Build.0 = Release|x64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|x64.Deploy.0 = Release|x64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{C98B1BB0-A6B0-4CD8-BFE5-B7E34D79FB48}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|x64.Build.0 = Debug|x64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|Win32.Build.0 = Release|Win32
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|x64.ActiveCfg = Release|x64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|x64.Build.0 = Release|x64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|x64.Deploy.0 = Release|x64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|x64.Build.0 = Debug|x64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|Win32.Build.0 = Release|Win32
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|x64.ActiveCfg = Release|x64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|x64.Build.0 = Release|x64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|x64.Deploy.0 = Release|x64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|x64.Build.0 = Debug|x64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|Win32.Build.0 = Release|Win32
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|x64.ActiveCfg = Release|x64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|x64.Build.0 = Release|x64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|x64.Deploy.0 = Release|x64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{45CC7BC5-F619-4460-931E-7CCDB0FFF609}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|x64.Build.0 = Debug|x64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|Win32.Build.0 = Release|Win32
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|x64.ActiveCfg = Release|x64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|x64.Build.0 = Release|x64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|x64.Deploy.0 = Release|x64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{E59D3927-5537-471A-AEE6-4D13D3057E67}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|x64.Build.0 = Debug|x64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|Win32.Build.0 = Release|Win32
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|x64.ActiveCfg = Release|x64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|x64.Build.0 = Release|x64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|x64.Deploy.0 = Release|x64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{B7D13C73-23F1-41F9-ADA9-626994A99F3E}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|x64.Build.0 = Debug|x64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|Win32.Build.0 = Release|Win32
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|x64.ActiveCfg = Release|x64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|x64.Build.0 = Release|x64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|x64.Deploy.0 = Release|x64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{A478832E-3ABF-468B-B7A8-8A59B2C67FD0}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\load_banks.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{645E3EB4-0891-40BB-ABFD-A9CD6A6F5C79}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\music_callbacks.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
85
SimpleGame/FMOD/api/studio/examples/vs2017/objectpan.vcxproj
Normal file
85
SimpleGame/FMOD/api/studio/examples/vs2017/objectpan.vcxproj
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{45CC7BC5-F619-4460-931E-7CCDB0FFF609}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\objectpan.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{E59D3927-5537-471A-AEE6-4D13D3057E67}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\programmer_sound.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B7D13C73-23F1-41F9-ADA9-626994A99F3E}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\recording_playback.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{30D2465D-18DD-465B-B49E-7EBFA21E4A6A}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\simple_event.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
85
SimpleGame/FMOD/api/studio/examples/vs2019/3d.vcxproj
Normal file
85
SimpleGame/FMOD/api/studio/examples/vs2019/3d.vcxproj
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\3d.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
85
SimpleGame/FMOD/api/studio/examples/vs2019/3d_multi.vcxproj
Normal file
85
SimpleGame/FMOD/api/studio/examples/vs2019/3d_multi.vcxproj
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{7DF05649-1998-4E76-8C22-9CCE1A5D6353}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\3d_multi.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{632C755A-6FB4-47A7-A755-AF75940D83AE}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\event_parameter.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
198
SimpleGame/FMOD/api/studio/examples/vs2019/examples.sln
Normal file
198
SimpleGame/FMOD/api/studio/examples/vs2019/examples.sln
Normal file
|
@ -0,0 +1,198 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio Version 16
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3d", "3d.vcxproj", "{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3d_multi", "3d_multi.vcxproj", "{7DF05649-1998-4E76-8C22-9CCE1A5D6353}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event_parameter", "event_parameter.vcxproj", "{632C755A-6FB4-47A7-A755-AF75940D83AE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "load_banks", "load_banks.vcxproj", "{3328A7D5-F136-4678-993F-9F243D27FBEA}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "music_callbacks", "music_callbacks.vcxproj", "{2C1EA18D-07AA-43E3-B4FB-600F556D9840}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "objectpan", "objectpan.vcxproj", "{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "programmer_sound", "programmer_sound.vcxproj", "{3807BE27-3975-4BD7-9D53-F96202BDAC3B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "recording_playback", "recording_playback.vcxproj", "{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_event", "simple_event.vcxproj", "{49C1282C-9CE5-4980-9590-8678615DB435}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
Release|ARM64 = Release|ARM64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|x64.Build.0 = Debug|x64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|Win32.Build.0 = Release|Win32
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|x64.ActiveCfg = Release|x64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|x64.Build.0 = Release|x64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|x64.Deploy.0 = Release|x64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{B1A8FDAD-3AEE-4D74-AC3E-9B0B366A9D8A}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|x64.Build.0 = Debug|x64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|Win32.Build.0 = Release|Win32
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|x64.ActiveCfg = Release|x64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|x64.Build.0 = Release|x64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|x64.Deploy.0 = Release|x64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{7DF05649-1998-4E76-8C22-9CCE1A5D6353}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|x64.Build.0 = Debug|x64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|Win32.Build.0 = Release|Win32
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|x64.ActiveCfg = Release|x64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|x64.Build.0 = Release|x64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|x64.Deploy.0 = Release|x64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{632C755A-6FB4-47A7-A755-AF75940D83AE}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|x64.Build.0 = Debug|x64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|Win32.Build.0 = Release|Win32
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|x64.ActiveCfg = Release|x64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|x64.Build.0 = Release|x64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|x64.Deploy.0 = Release|x64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{3328A7D5-F136-4678-993F-9F243D27FBEA}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|x64.Build.0 = Debug|x64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|Win32.Build.0 = Release|Win32
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|x64.ActiveCfg = Release|x64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|x64.Build.0 = Release|x64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|x64.Deploy.0 = Release|x64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{2C1EA18D-07AA-43E3-B4FB-600F556D9840}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|x64.Build.0 = Debug|x64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|Win32.Build.0 = Release|Win32
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|x64.ActiveCfg = Release|x64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|x64.Build.0 = Release|x64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|x64.Deploy.0 = Release|x64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|x64.Build.0 = Debug|x64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|Win32.Build.0 = Release|Win32
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|x64.ActiveCfg = Release|x64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|x64.Build.0 = Release|x64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|x64.Deploy.0 = Release|x64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{3807BE27-3975-4BD7-9D53-F96202BDAC3B}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|x64.Build.0 = Debug|x64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|Win32.Build.0 = Release|Win32
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|x64.ActiveCfg = Release|x64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|x64.Build.0 = Release|x64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|x64.Deploy.0 = Release|x64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|x64.Build.0 = Debug|x64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|Win32.Build.0 = Release|Win32
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|Win32.Deploy.0 = Release|Win32
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|x64.ActiveCfg = Release|x64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|x64.Build.0 = Release|x64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|x64.Deploy.0 = Release|x64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{49C1282C-9CE5-4980-9590-8678615DB435}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{3328A7D5-F136-4678-993F-9F243D27FBEA}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\load_banks.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{2C1EA18D-07AA-43E3-B4FB-600F556D9840}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\music_callbacks.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
85
SimpleGame/FMOD/api/studio/examples/vs2019/objectpan.vcxproj
Normal file
85
SimpleGame/FMOD/api/studio/examples/vs2019/objectpan.vcxproj
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B9638A3B-7FEB-4135-B9E3-F8307A2DDA3A}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\objectpan.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{3807BE27-3975-4BD7-9D53-F96202BDAC3B}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\programmer_sound.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{F22CECE3-5792-4AD7-BE01-46BF9CD4E195}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\recording_playback.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<Arch>x86</Arch>
|
||||
<Arch Condition="'$(Platform)'=='x64'">x64</Arch>
|
||||
<Arch Condition="'$(Platform)'=='ARM64'">ARM64</Arch>
|
||||
<Suffix Condition="'$(Configuration)'=='Debug'">L</Suffix>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{49C1282C-9CE5-4980-9590-8678615DB435}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<PropertyGroup>
|
||||
<OutDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\</OutDir>
|
||||
<IntDir>$(SolutionDir)_builds\$(ProjectName)\$(Configuration)\$(Platform)\Intermediate\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<TargetName>$(ProjectName)$(Suffix)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>..\..\..\core\inc;..\..\..\studio\inc</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<PreprocessorDefinitions>_WIN32_WINNT=0x601;WINVER=0x601;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>..\..\..\core\lib\$(Arch);..\..\..\studio\lib\$(Arch)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>fmod$(Suffix)_vc.lib;fmodstudio$(Suffix)_vc.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>if not exist ..\bin mkdir ..\bin
|
||||
copy /Y "$(TargetPath)" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" ..\bin
|
||||
copy /Y "..\..\..\core\lib\$(Arch)\fmod$(Suffix).dll" "$(OutDir)"
|
||||
copy /Y "..\..\..\studio\lib\$(Arch)\fmodstudio$(Suffix).dll" "$(OutDir)"
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common.h" />
|
||||
<ClCompile Include="..\common.cpp" />
|
||||
<ClInclude Include="..\common_platform.h" />
|
||||
<ClCompile Include="..\common_platform.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\simple_event.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\common_platform.cpp">
|
||||
<Filter>common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="common">
|
||||
<UniqueIdentifier>{937abb1b-0123-4875-9828-07ed9f9813e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\common_platform.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\common.h">
|
||||
<Filter>common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
2256
SimpleGame/FMOD/api/studio/inc/fmod_studio.cs
Normal file
2256
SimpleGame/FMOD/api/studio/inc/fmod_studio.cs
Normal file
File diff suppressed because it is too large
Load diff
249
SimpleGame/FMOD/api/studio/inc/fmod_studio.h
Normal file
249
SimpleGame/FMOD/api/studio/inc/fmod_studio.h
Normal file
|
@ -0,0 +1,249 @@
|
|||
/* ======================================================================================== */
|
||||
/* FMOD Studio API - C header file. */
|
||||
/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2025. */
|
||||
/* */
|
||||
/* Use this header in conjunction with fmod_studio_common.h (which contains all the */
|
||||
/* constants / callbacks) to develop using the C language. */
|
||||
/* */
|
||||
/* For more detail visit: */
|
||||
/* https://fmod.com/docs/2.03/api/studio-api.html */
|
||||
/* ======================================================================================== */
|
||||
#ifndef FMOD_STUDIO_H
|
||||
#define FMOD_STUDIO_H
|
||||
|
||||
#include "fmod_studio_common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/*
|
||||
Global
|
||||
*/
|
||||
FMOD_RESULT F_API FMOD_Studio_ParseID(const char *idstring, FMOD_GUID *id);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_Create(FMOD_STUDIO_SYSTEM **system, unsigned int headerversion);
|
||||
|
||||
/*
|
||||
System
|
||||
*/
|
||||
FMOD_BOOL F_API FMOD_Studio_System_IsValid(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetAdvancedSettings(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_ADVANCEDSETTINGS *settings);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetAdvancedSettings(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_ADVANCEDSETTINGS *settings);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_Initialize(FMOD_STUDIO_SYSTEM *system, int maxchannels, FMOD_STUDIO_INITFLAGS studioflags, FMOD_INITFLAGS flags, void *extradriverdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_Release(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_Update(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetCoreSystem(FMOD_STUDIO_SYSTEM *system, FMOD_SYSTEM **coresystem);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetEvent(FMOD_STUDIO_SYSTEM *system, const char *pathOrID, FMOD_STUDIO_EVENTDESCRIPTION **event);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetBus(FMOD_STUDIO_SYSTEM *system, const char *pathOrID, FMOD_STUDIO_BUS **bus);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetVCA(FMOD_STUDIO_SYSTEM *system, const char *pathOrID, FMOD_STUDIO_VCA **vca);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetBank(FMOD_STUDIO_SYSTEM *system, const char *pathOrID, FMOD_STUDIO_BANK **bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetEventByID(FMOD_STUDIO_SYSTEM *system, const FMOD_GUID *id, FMOD_STUDIO_EVENTDESCRIPTION **event);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetBusByID(FMOD_STUDIO_SYSTEM *system, const FMOD_GUID *id, FMOD_STUDIO_BUS **bus);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetVCAByID(FMOD_STUDIO_SYSTEM *system, const FMOD_GUID *id, FMOD_STUDIO_VCA **vca);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetBankByID(FMOD_STUDIO_SYSTEM *system, const FMOD_GUID *id, FMOD_STUDIO_BANK **bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetSoundInfo(FMOD_STUDIO_SYSTEM *system, const char *key, FMOD_STUDIO_SOUND_INFO *info);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterDescriptionByName(FMOD_STUDIO_SYSTEM *system, const char *name, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterDescriptionByID(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_PARAMETER_ID id, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterLabelByName(FMOD_STUDIO_SYSTEM *system, const char *name, int labelindex, char *label, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterLabelByID(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_PARAMETER_ID id, int labelindex, char *label, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterByID(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_PARAMETER_ID id, float *value, float *finalvalue);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetParameterByID(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_PARAMETER_ID id, float value, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetParameterByIDWithLabel(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_PARAMETER_ID id, const char *label, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetParametersByIDs(FMOD_STUDIO_SYSTEM *system, const FMOD_STUDIO_PARAMETER_ID *ids, float *values, int count, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterByName(FMOD_STUDIO_SYSTEM *system, const char *name, float *value, float *finalvalue);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetParameterByName(FMOD_STUDIO_SYSTEM *system, const char *name, float value, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetParameterByNameWithLabel(FMOD_STUDIO_SYSTEM *system, const char *name, const char *label, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_LookupID(FMOD_STUDIO_SYSTEM *system, const char *path, FMOD_GUID *id);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_LookupPath(FMOD_STUDIO_SYSTEM *system, const FMOD_GUID *id, char *path, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetNumListeners(FMOD_STUDIO_SYSTEM *system, int *numlisteners);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetNumListeners(FMOD_STUDIO_SYSTEM *system, int numlisteners);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetListenerAttributes(FMOD_STUDIO_SYSTEM *system, int index, FMOD_3D_ATTRIBUTES *attributes, FMOD_VECTOR *attenuationposition);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetListenerAttributes(FMOD_STUDIO_SYSTEM *system, int index, const FMOD_3D_ATTRIBUTES *attributes, const FMOD_VECTOR *attenuationposition);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetListenerWeight(FMOD_STUDIO_SYSTEM *system, int index, float *weight);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetListenerWeight(FMOD_STUDIO_SYSTEM *system, int index, float weight);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_LoadBankFile(FMOD_STUDIO_SYSTEM *system, const char *filename, FMOD_STUDIO_LOAD_BANK_FLAGS flags, FMOD_STUDIO_BANK **bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_LoadBankMemory(FMOD_STUDIO_SYSTEM *system, const char *buffer, int length, FMOD_STUDIO_LOAD_MEMORY_MODE mode, FMOD_STUDIO_LOAD_BANK_FLAGS flags, FMOD_STUDIO_BANK **bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_LoadBankCustom(FMOD_STUDIO_SYSTEM *system, const FMOD_STUDIO_BANK_INFO *info, FMOD_STUDIO_LOAD_BANK_FLAGS flags, FMOD_STUDIO_BANK **bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_RegisterPlugin(FMOD_STUDIO_SYSTEM *system, const FMOD_DSP_DESCRIPTION *description);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_UnregisterPlugin(FMOD_STUDIO_SYSTEM *system, const char *name);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_UnloadAll(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_FlushCommands(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_FlushSampleLoading(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_StartCommandCapture(FMOD_STUDIO_SYSTEM *system, const char *filename, FMOD_STUDIO_COMMANDCAPTURE_FLAGS flags);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_StopCommandCapture(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_LoadCommandReplay(FMOD_STUDIO_SYSTEM *system, const char *filename, FMOD_STUDIO_COMMANDREPLAY_FLAGS flags, FMOD_STUDIO_COMMANDREPLAY **replay);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetBankCount(FMOD_STUDIO_SYSTEM *system, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetBankList(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_BANK **array, int capacity, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterDescriptionCount(FMOD_STUDIO_SYSTEM *system, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetParameterDescriptionList(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_PARAMETER_DESCRIPTION *array, int capacity, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetCPUUsage(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_CPU_USAGE *usage, FMOD_CPU_USAGE *usage_core);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetBufferUsage(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_BUFFER_USAGE *usage);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_ResetBufferUsage(FMOD_STUDIO_SYSTEM *system);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetCallback(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_SYSTEM_CALLBACK callback, FMOD_STUDIO_SYSTEM_CALLBACK_TYPE callbackmask);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_SetUserData(FMOD_STUDIO_SYSTEM *system, void *userdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetUserData(FMOD_STUDIO_SYSTEM *system, void **userdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_System_GetMemoryUsage(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_MEMORY_USAGE *memoryusage);
|
||||
|
||||
/*
|
||||
EventDescription
|
||||
*/
|
||||
FMOD_BOOL F_API FMOD_Studio_EventDescription_IsValid(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetID(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_GUID *id);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetPath(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, char *path, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetParameterDescriptionCount(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetParameterDescriptionByIndex(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, int index, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetParameterDescriptionByName(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, const char *name, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetParameterDescriptionByID(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_PARAMETER_ID id, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetParameterLabelByIndex(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, int index, int labelindex, char *label, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetParameterLabelByName(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, const char *name, int labelindex, char *label, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetParameterLabelByID(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_PARAMETER_ID id, int labelindex, char *label, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetUserPropertyCount(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetUserPropertyByIndex(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, int index, FMOD_STUDIO_USER_PROPERTY *property);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetUserProperty(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, const char *name, FMOD_STUDIO_USER_PROPERTY *property);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetLength(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, int *length);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetMinMaxDistance(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, float *min, float *max);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetSoundSize(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, float *size);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_IsSnapshot(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_BOOL *snapshot);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_IsOneshot(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_BOOL *oneshot);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_IsStream(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_BOOL *isStream);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_Is3D(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_BOOL *is3D);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_IsDopplerEnabled(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_BOOL *doppler);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_HasSustainPoint(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_BOOL *sustainPoint);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_CreateInstance(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_EVENTINSTANCE **instance);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetInstanceCount(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetInstanceList(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_EVENTINSTANCE **array, int capacity, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_LoadSampleData(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_UnloadSampleData(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetSampleLoadingState(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_LOADING_STATE *state);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_ReleaseAllInstances(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_SetCallback(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_EVENT_CALLBACK callback, FMOD_STUDIO_EVENT_CALLBACK_TYPE callbackmask);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_GetUserData(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, void **userdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventDescription_SetUserData(FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, void *userdata);
|
||||
|
||||
/*
|
||||
EventInstance
|
||||
*/
|
||||
FMOD_BOOL F_API FMOD_Studio_EventInstance_IsValid(FMOD_STUDIO_EVENTINSTANCE *eventinstance);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetDescription(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_EVENTDESCRIPTION **description);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetSystem(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_SYSTEM **system);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetVolume(FMOD_STUDIO_EVENTINSTANCE *eventinstance, float *volume, float *finalvolume);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetVolume(FMOD_STUDIO_EVENTINSTANCE *eventinstance, float volume);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetPitch(FMOD_STUDIO_EVENTINSTANCE *eventinstance, float *pitch, float *finalpitch);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetPitch(FMOD_STUDIO_EVENTINSTANCE *eventinstance, float pitch);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_Get3DAttributes(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_3D_ATTRIBUTES *attributes);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_Set3DAttributes(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_3D_ATTRIBUTES *attributes);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetListenerMask(FMOD_STUDIO_EVENTINSTANCE *eventinstance, unsigned int *mask);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetListenerMask(FMOD_STUDIO_EVENTINSTANCE *eventinstance, unsigned int mask);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetProperty(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_EVENT_PROPERTY index, float *value);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetProperty(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_EVENT_PROPERTY index, float value);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetReverbLevel(FMOD_STUDIO_EVENTINSTANCE *eventinstance, int index, float *level);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetReverbLevel(FMOD_STUDIO_EVENTINSTANCE *eventinstance, int index, float level);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetPaused(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_BOOL *paused);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetPaused(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_BOOL paused);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_Start(FMOD_STUDIO_EVENTINSTANCE *eventinstance);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_Stop(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_STOP_MODE mode);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetTimelinePosition(FMOD_STUDIO_EVENTINSTANCE *eventinstance, int *position);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetTimelinePosition(FMOD_STUDIO_EVENTINSTANCE *eventinstance, int position);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetPlaybackState(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_PLAYBACK_STATE *state);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetChannelGroup(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_CHANNELGROUP **group);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetMinMaxDistance(FMOD_STUDIO_EVENTINSTANCE *eventinstance, float *min, float *max);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_Release(FMOD_STUDIO_EVENTINSTANCE *eventinstance);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_IsVirtual(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_BOOL *virtualstate);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetParameterByName(FMOD_STUDIO_EVENTINSTANCE *eventinstance, const char *name, float *value, float *finalvalue);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetParameterByName(FMOD_STUDIO_EVENTINSTANCE *eventinstance, const char *name, float value, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetParameterByNameWithLabel(FMOD_STUDIO_EVENTINSTANCE *eventinstance, const char *name, const char *label, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetParameterByID(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_PARAMETER_ID id, float *value, float *finalvalue);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetParameterByID(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_PARAMETER_ID id, float value, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetParameterByIDWithLabel(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_PARAMETER_ID id, const char *label, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetParametersByIDs(FMOD_STUDIO_EVENTINSTANCE *eventinstance, const FMOD_STUDIO_PARAMETER_ID *ids, float *values, int count, FMOD_BOOL ignoreseekspeed);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_KeyOff(FMOD_STUDIO_EVENTINSTANCE *eventinstance);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetCallback(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_EVENT_CALLBACK callback, FMOD_STUDIO_EVENT_CALLBACK_TYPE callbackmask);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetUserData(FMOD_STUDIO_EVENTINSTANCE *eventinstance, void **userdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_SetUserData(FMOD_STUDIO_EVENTINSTANCE *eventinstance, void *userdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetCPUUsage(FMOD_STUDIO_EVENTINSTANCE *eventinstance, unsigned int *exclusive, unsigned int *inclusive);
|
||||
FMOD_RESULT F_API FMOD_Studio_EventInstance_GetMemoryUsage(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_MEMORY_USAGE *memoryusage);
|
||||
|
||||
/*
|
||||
Bus
|
||||
*/
|
||||
FMOD_BOOL F_API FMOD_Studio_Bus_IsValid(FMOD_STUDIO_BUS *bus);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetID(FMOD_STUDIO_BUS *bus, FMOD_GUID *id);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetPath(FMOD_STUDIO_BUS *bus, char *path, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetVolume(FMOD_STUDIO_BUS *bus, float *volume, float *finalvolume);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_SetVolume(FMOD_STUDIO_BUS *bus, float volume);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetPaused(FMOD_STUDIO_BUS *bus, FMOD_BOOL *paused);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_SetPaused(FMOD_STUDIO_BUS *bus, FMOD_BOOL paused);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetMute(FMOD_STUDIO_BUS *bus, FMOD_BOOL *mute);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_SetMute(FMOD_STUDIO_BUS *bus, FMOD_BOOL mute);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_StopAllEvents(FMOD_STUDIO_BUS *bus, FMOD_STUDIO_STOP_MODE mode);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetPortIndex(FMOD_STUDIO_BUS *bus, FMOD_PORT_INDEX *index);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_SetPortIndex(FMOD_STUDIO_BUS *bus, FMOD_PORT_INDEX index);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_LockChannelGroup(FMOD_STUDIO_BUS *bus);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_UnlockChannelGroup(FMOD_STUDIO_BUS *bus);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetChannelGroup(FMOD_STUDIO_BUS *bus, FMOD_CHANNELGROUP **group);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetCPUUsage(FMOD_STUDIO_BUS *bus, unsigned int *exclusive, unsigned int *inclusive);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bus_GetMemoryUsage(FMOD_STUDIO_BUS *bus, FMOD_STUDIO_MEMORY_USAGE *memoryusage);
|
||||
|
||||
/*
|
||||
VCA
|
||||
*/
|
||||
FMOD_BOOL F_API FMOD_Studio_VCA_IsValid(FMOD_STUDIO_VCA *vca);
|
||||
FMOD_RESULT F_API FMOD_Studio_VCA_GetID(FMOD_STUDIO_VCA *vca, FMOD_GUID *id);
|
||||
FMOD_RESULT F_API FMOD_Studio_VCA_GetPath(FMOD_STUDIO_VCA *vca, char *path, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_VCA_GetVolume(FMOD_STUDIO_VCA *vca, float *volume, float *finalvolume);
|
||||
FMOD_RESULT F_API FMOD_Studio_VCA_SetVolume(FMOD_STUDIO_VCA *vca, float volume);
|
||||
|
||||
/*
|
||||
Bank
|
||||
*/
|
||||
FMOD_BOOL F_API FMOD_Studio_Bank_IsValid(FMOD_STUDIO_BANK *bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetID(FMOD_STUDIO_BANK *bank, FMOD_GUID *id);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetPath(FMOD_STUDIO_BANK *bank, char *path, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_Unload(FMOD_STUDIO_BANK *bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_LoadSampleData(FMOD_STUDIO_BANK *bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_UnloadSampleData(FMOD_STUDIO_BANK *bank);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetLoadingState(FMOD_STUDIO_BANK *bank, FMOD_STUDIO_LOADING_STATE *state);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetSampleLoadingState(FMOD_STUDIO_BANK *bank, FMOD_STUDIO_LOADING_STATE *state);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetStringCount(FMOD_STUDIO_BANK *bank, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetStringInfo(FMOD_STUDIO_BANK *bank, int index, FMOD_GUID *id, char *path, int size, int *retrieved);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetEventCount(FMOD_STUDIO_BANK *bank, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetEventList(FMOD_STUDIO_BANK *bank, FMOD_STUDIO_EVENTDESCRIPTION **array, int capacity, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetBusCount(FMOD_STUDIO_BANK *bank, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetBusList(FMOD_STUDIO_BANK *bank, FMOD_STUDIO_BUS **array, int capacity, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetVCACount(FMOD_STUDIO_BANK *bank, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetVCAList(FMOD_STUDIO_BANK *bank, FMOD_STUDIO_VCA **array, int capacity, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_GetUserData(FMOD_STUDIO_BANK *bank, void **userdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_Bank_SetUserData(FMOD_STUDIO_BANK *bank, void *userdata);
|
||||
|
||||
/*
|
||||
Command playback information
|
||||
*/
|
||||
FMOD_BOOL F_API FMOD_Studio_CommandReplay_IsValid(FMOD_STUDIO_COMMANDREPLAY *replay);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetSystem(FMOD_STUDIO_COMMANDREPLAY *replay, FMOD_STUDIO_SYSTEM **system);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetLength(FMOD_STUDIO_COMMANDREPLAY *replay, float *length);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetCommandCount(FMOD_STUDIO_COMMANDREPLAY *replay, int *count);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetCommandInfo(FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, FMOD_STUDIO_COMMAND_INFO *info);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetCommandString(FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, char *buffer, int length);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetCommandAtTime(FMOD_STUDIO_COMMANDREPLAY *replay, float time, int *commandindex);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SetBankPath(FMOD_STUDIO_COMMANDREPLAY *replay, const char *bankPath);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_Start(FMOD_STUDIO_COMMANDREPLAY *replay);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_Stop(FMOD_STUDIO_COMMANDREPLAY *replay);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SeekToTime(FMOD_STUDIO_COMMANDREPLAY *replay, float time);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SeekToCommand(FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetPaused(FMOD_STUDIO_COMMANDREPLAY *replay, FMOD_BOOL *paused);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SetPaused(FMOD_STUDIO_COMMANDREPLAY *replay, FMOD_BOOL paused);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetPlaybackState(FMOD_STUDIO_COMMANDREPLAY *replay, FMOD_STUDIO_PLAYBACK_STATE *state);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetCurrentCommand(FMOD_STUDIO_COMMANDREPLAY *replay, int *commandindex, float *currenttime);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_Release(FMOD_STUDIO_COMMANDREPLAY *replay);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SetFrameCallback(FMOD_STUDIO_COMMANDREPLAY *replay, FMOD_STUDIO_COMMANDREPLAY_FRAME_CALLBACK callback);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SetLoadBankCallback(FMOD_STUDIO_COMMANDREPLAY *replay, FMOD_STUDIO_COMMANDREPLAY_LOAD_BANK_CALLBACK callback);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SetCreateInstanceCallback(FMOD_STUDIO_COMMANDREPLAY *replay, FMOD_STUDIO_COMMANDREPLAY_CREATE_INSTANCE_CALLBACK callback);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_GetUserData(FMOD_STUDIO_COMMANDREPLAY *replay, void **userdata);
|
||||
FMOD_RESULT F_API FMOD_Studio_CommandReplay_SetUserData(FMOD_STUDIO_COMMANDREPLAY *replay, void *userdata);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* FMOD_STUDIO_H */
|
403
SimpleGame/FMOD/api/studio/inc/fmod_studio.hpp
Normal file
403
SimpleGame/FMOD/api/studio/inc/fmod_studio.hpp
Normal file
|
@ -0,0 +1,403 @@
|
|||
/* ======================================================================================== */
|
||||
/* FMOD Studio API - C++ header file. */
|
||||
/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2025. */
|
||||
/* */
|
||||
/* Use this header in conjunction with fmod_studio_common.h (which contains all the */
|
||||
/* constants / callbacks) to develop using the C++ language. */
|
||||
/* */
|
||||
/* For more detail visit: */
|
||||
/* https://fmod.com/docs/2.03/api/studio-api.html */
|
||||
/* ======================================================================================== */
|
||||
#ifndef FMOD_STUDIO_HPP
|
||||
#define FMOD_STUDIO_HPP
|
||||
|
||||
#include "fmod_studio_common.h"
|
||||
#include "fmod_studio.h"
|
||||
|
||||
#include "fmod.hpp"
|
||||
|
||||
namespace FMOD
|
||||
{
|
||||
|
||||
namespace Studio
|
||||
{
|
||||
typedef FMOD_GUID ID; // Deprecated. Please use FMOD_GUID type.
|
||||
|
||||
class System;
|
||||
class EventDescription;
|
||||
class EventInstance;
|
||||
class Bus;
|
||||
class VCA;
|
||||
class Bank;
|
||||
class CommandReplay;
|
||||
|
||||
inline FMOD_RESULT parseID(const char *idstring, FMOD_GUID *id) { return FMOD_Studio_ParseID(idstring, id); }
|
||||
|
||||
class System
|
||||
{
|
||||
private:
|
||||
// Constructor made private so user cannot statically instance a System class. System::create must be used.
|
||||
System();
|
||||
System(const System &);
|
||||
|
||||
public:
|
||||
static FMOD_RESULT F_API create(System **system, unsigned int headerversion = FMOD_VERSION);
|
||||
FMOD_RESULT F_API setAdvancedSettings(FMOD_STUDIO_ADVANCEDSETTINGS *settings);
|
||||
FMOD_RESULT F_API getAdvancedSettings(FMOD_STUDIO_ADVANCEDSETTINGS *settings);
|
||||
FMOD_RESULT F_API initialize(int maxchannels, FMOD_STUDIO_INITFLAGS studioflags, FMOD_INITFLAGS flags, void *extradriverdata);
|
||||
FMOD_RESULT F_API release();
|
||||
|
||||
// Handle validity
|
||||
bool F_API isValid() const;
|
||||
|
||||
// Update processing
|
||||
FMOD_RESULT F_API update();
|
||||
FMOD_RESULT F_API flushCommands();
|
||||
FMOD_RESULT F_API flushSampleLoading();
|
||||
|
||||
// Low-level API access
|
||||
FMOD_RESULT F_API getCoreSystem(FMOD::System **system) const;
|
||||
|
||||
// Asset retrieval
|
||||
FMOD_RESULT F_API getEvent(const char *path, EventDescription **event) const;
|
||||
FMOD_RESULT F_API getBus(const char *path, Bus **bus) const;
|
||||
FMOD_RESULT F_API getVCA(const char *path, VCA **vca) const;
|
||||
FMOD_RESULT F_API getBank(const char *path, Bank **bank) const;
|
||||
FMOD_RESULT F_API getEventByID(const FMOD_GUID *id, EventDescription **event) const;
|
||||
FMOD_RESULT F_API getBusByID(const FMOD_GUID *id, Bus **bus) const;
|
||||
FMOD_RESULT F_API getVCAByID(const FMOD_GUID *id, VCA **vca) const;
|
||||
FMOD_RESULT F_API getBankByID(const FMOD_GUID *id, Bank **bank) const;
|
||||
FMOD_RESULT F_API getSoundInfo(const char *key, FMOD_STUDIO_SOUND_INFO *info) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionByName(const char *name, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionByID(FMOD_STUDIO_PARAMETER_ID id, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter) const;
|
||||
FMOD_RESULT F_API getParameterLabelByName(const char *name, int labelindex, char *label, int size, int *retrieved) const;
|
||||
FMOD_RESULT F_API getParameterLabelByID(FMOD_STUDIO_PARAMETER_ID id, int labelindex, char *label, int size, int *retrieved) const;
|
||||
|
||||
// Global parameter control
|
||||
FMOD_RESULT F_API getParameterByID(FMOD_STUDIO_PARAMETER_ID id, float *value, float *finalvalue = 0) const;
|
||||
FMOD_RESULT F_API setParameterByID(FMOD_STUDIO_PARAMETER_ID id, float value, bool ignoreseekspeed = false);
|
||||
FMOD_RESULT F_API setParameterByIDWithLabel(FMOD_STUDIO_PARAMETER_ID id, const char *label, bool ignoreseekspeed = false);
|
||||
FMOD_RESULT F_API setParametersByIDs(const FMOD_STUDIO_PARAMETER_ID *ids, float *values, int count, bool ignoreseekspeed = false);
|
||||
FMOD_RESULT F_API getParameterByName(const char *name, float *value, float *finalvalue = 0) const;
|
||||
FMOD_RESULT F_API setParameterByName(const char *name, float value, bool ignoreseekspeed = false);
|
||||
FMOD_RESULT F_API setParameterByNameWithLabel(const char *name, const char *label, bool ignoreseekspeed = false);
|
||||
|
||||
// Path lookup
|
||||
FMOD_RESULT F_API lookupID(const char *path, FMOD_GUID *id) const;
|
||||
FMOD_RESULT F_API lookupPath(const FMOD_GUID *id, char *path, int size, int *retrieved) const;
|
||||
|
||||
// Listener control
|
||||
FMOD_RESULT F_API getNumListeners(int *numlisteners);
|
||||
FMOD_RESULT F_API setNumListeners(int numlisteners);
|
||||
FMOD_RESULT F_API getListenerAttributes(int listener, FMOD_3D_ATTRIBUTES *attributes, FMOD_VECTOR *attenuationposition = 0) const;
|
||||
FMOD_RESULT F_API setListenerAttributes(int listener, const FMOD_3D_ATTRIBUTES *attributes, const FMOD_VECTOR *attenuationposition = 0);
|
||||
FMOD_RESULT F_API getListenerWeight(int listener, float *weight);
|
||||
FMOD_RESULT F_API setListenerWeight(int listener, float weight);
|
||||
|
||||
// Bank control
|
||||
FMOD_RESULT F_API loadBankFile(const char *filename, FMOD_STUDIO_LOAD_BANK_FLAGS flags, Bank **bank);
|
||||
FMOD_RESULT F_API loadBankMemory(const char *buffer, int length, FMOD_STUDIO_LOAD_MEMORY_MODE mode, FMOD_STUDIO_LOAD_BANK_FLAGS flags, Bank **bank);
|
||||
FMOD_RESULT F_API loadBankCustom(const FMOD_STUDIO_BANK_INFO *info, FMOD_STUDIO_LOAD_BANK_FLAGS flags, Bank **bank);
|
||||
FMOD_RESULT F_API unloadAll();
|
||||
|
||||
// General functionality
|
||||
FMOD_RESULT F_API getBufferUsage(FMOD_STUDIO_BUFFER_USAGE *usage) const;
|
||||
FMOD_RESULT F_API resetBufferUsage();
|
||||
FMOD_RESULT F_API registerPlugin(const FMOD_DSP_DESCRIPTION *description);
|
||||
FMOD_RESULT F_API unregisterPlugin(const char *name);
|
||||
|
||||
// Enumeration
|
||||
FMOD_RESULT F_API getBankCount(int *count) const;
|
||||
FMOD_RESULT F_API getBankList(Bank **array, int capacity, int *count) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionCount(int *count) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionList(FMOD_STUDIO_PARAMETER_DESCRIPTION *array, int capacity, int *count) const;
|
||||
|
||||
// Command capture and replay
|
||||
FMOD_RESULT F_API startCommandCapture(const char *filename, FMOD_STUDIO_COMMANDCAPTURE_FLAGS flags);
|
||||
FMOD_RESULT F_API stopCommandCapture();
|
||||
FMOD_RESULT F_API loadCommandReplay(const char *filename, FMOD_STUDIO_COMMANDREPLAY_FLAGS flags, CommandReplay **replay);
|
||||
|
||||
// Callbacks
|
||||
FMOD_RESULT F_API setCallback(FMOD_STUDIO_SYSTEM_CALLBACK callback, FMOD_STUDIO_SYSTEM_CALLBACK_TYPE callbackmask = FMOD_STUDIO_SYSTEM_CALLBACK_ALL);
|
||||
FMOD_RESULT F_API getUserData(void **userdata) const;
|
||||
FMOD_RESULT F_API setUserData(void *userdata);
|
||||
|
||||
// Monitoring
|
||||
FMOD_RESULT F_API getCPUUsage(FMOD_STUDIO_CPU_USAGE *usage, FMOD_CPU_USAGE *usage_core) const;
|
||||
FMOD_RESULT F_API getMemoryUsage(FMOD_STUDIO_MEMORY_USAGE *memoryusage) const;
|
||||
};
|
||||
|
||||
class EventDescription
|
||||
{
|
||||
private:
|
||||
// Constructor made private so user cannot statically instance the class.
|
||||
EventDescription();
|
||||
EventDescription(const EventDescription &);
|
||||
|
||||
public:
|
||||
// Handle validity
|
||||
bool F_API isValid() const;
|
||||
|
||||
// Property access
|
||||
FMOD_RESULT F_API getID(FMOD_GUID *id) const;
|
||||
FMOD_RESULT F_API getPath(char *path, int size, int *retrieved) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionCount(int *count) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionByIndex(int index, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionByName(const char *name, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter) const;
|
||||
FMOD_RESULT F_API getParameterDescriptionByID(FMOD_STUDIO_PARAMETER_ID id, FMOD_STUDIO_PARAMETER_DESCRIPTION *parameter) const;
|
||||
FMOD_RESULT F_API getParameterLabelByIndex(int index, int labelindex, char *label, int size, int *retrieved) const;
|
||||
FMOD_RESULT F_API getParameterLabelByName(const char *name, int labelindex, char *label, int size, int *retrieved) const;
|
||||
FMOD_RESULT F_API getParameterLabelByID(FMOD_STUDIO_PARAMETER_ID id, int labelindex, char *label, int size, int *retrieved) const;
|
||||
FMOD_RESULT F_API getUserPropertyCount(int *count) const;
|
||||
FMOD_RESULT F_API getUserPropertyByIndex(int index, FMOD_STUDIO_USER_PROPERTY *property) const;
|
||||
FMOD_RESULT F_API getUserProperty(const char *name, FMOD_STUDIO_USER_PROPERTY *property) const;
|
||||
FMOD_RESULT F_API getLength(int *length) const;
|
||||
FMOD_RESULT F_API getMinMaxDistance(float *min, float *max) const;
|
||||
FMOD_RESULT F_API getSoundSize(float *size) const;
|
||||
|
||||
FMOD_RESULT F_API isSnapshot(bool *snapshot) const;
|
||||
FMOD_RESULT F_API isOneshot(bool *oneshot) const;
|
||||
FMOD_RESULT F_API isStream(bool *isStream) const;
|
||||
FMOD_RESULT F_API is3D(bool *is3d) const;
|
||||
FMOD_RESULT F_API isDopplerEnabled(bool *doppler) const;
|
||||
FMOD_RESULT F_API hasSustainPoint(bool *sustainPoint) const;
|
||||
|
||||
// Playback control
|
||||
FMOD_RESULT F_API createInstance(EventInstance **instance) const;
|
||||
FMOD_RESULT F_API getInstanceCount(int *count) const;
|
||||
FMOD_RESULT F_API getInstanceList(EventInstance **array, int capacity, int *count) const;
|
||||
|
||||
// Sample data loading control
|
||||
FMOD_RESULT F_API loadSampleData();
|
||||
FMOD_RESULT F_API unloadSampleData();
|
||||
FMOD_RESULT F_API getSampleLoadingState(FMOD_STUDIO_LOADING_STATE *state) const;
|
||||
|
||||
// Convenience functions
|
||||
FMOD_RESULT F_API releaseAllInstances();
|
||||
|
||||
// Callbacks
|
||||
FMOD_RESULT F_API setCallback(FMOD_STUDIO_EVENT_CALLBACK callback, FMOD_STUDIO_EVENT_CALLBACK_TYPE callbackmask = FMOD_STUDIO_EVENT_CALLBACK_ALL);
|
||||
FMOD_RESULT F_API getUserData(void **userdata) const;
|
||||
FMOD_RESULT F_API setUserData(void *userdata);
|
||||
};
|
||||
|
||||
class EventInstance
|
||||
{
|
||||
private:
|
||||
// Constructor made private so user cannot statically instance the class.
|
||||
EventInstance();
|
||||
EventInstance(const EventInstance &);
|
||||
|
||||
public:
|
||||
// Handle validity
|
||||
bool F_API isValid() const;
|
||||
|
||||
// Property access
|
||||
FMOD_RESULT F_API getDescription(EventDescription **description) const;
|
||||
FMOD_RESULT F_API getSystem(System **system) const;
|
||||
|
||||
// Playback control
|
||||
FMOD_RESULT F_API getVolume(float *volume, float *finalvolume = 0) const;
|
||||
FMOD_RESULT F_API setVolume(float volume);
|
||||
|
||||
FMOD_RESULT F_API getPitch(float *pitch, float *finalpitch = 0) const;
|
||||
FMOD_RESULT F_API setPitch(float pitch);
|
||||
|
||||
FMOD_RESULT F_API get3DAttributes(FMOD_3D_ATTRIBUTES *attributes) const;
|
||||
FMOD_RESULT F_API set3DAttributes(const FMOD_3D_ATTRIBUTES *attributes);
|
||||
|
||||
FMOD_RESULT F_API getListenerMask(unsigned int *mask) const;
|
||||
FMOD_RESULT F_API setListenerMask(unsigned int mask);
|
||||
|
||||
FMOD_RESULT F_API getProperty(FMOD_STUDIO_EVENT_PROPERTY index, float *value) const;
|
||||
FMOD_RESULT F_API setProperty(FMOD_STUDIO_EVENT_PROPERTY index, float value);
|
||||
|
||||
FMOD_RESULT F_API getReverbLevel(int index, float *level) const;
|
||||
FMOD_RESULT F_API setReverbLevel(int index, float level);
|
||||
|
||||
FMOD_RESULT F_API getPaused(bool *paused) const;
|
||||
FMOD_RESULT F_API setPaused(bool paused);
|
||||
|
||||
FMOD_RESULT F_API start();
|
||||
FMOD_RESULT F_API stop(FMOD_STUDIO_STOP_MODE mode);
|
||||
|
||||
FMOD_RESULT F_API getTimelinePosition(int *position) const;
|
||||
FMOD_RESULT F_API setTimelinePosition(int position);
|
||||
|
||||
FMOD_RESULT F_API getPlaybackState(FMOD_STUDIO_PLAYBACK_STATE *state) const;
|
||||
|
||||
FMOD_RESULT F_API getChannelGroup(ChannelGroup **group) const;
|
||||
|
||||
FMOD_RESULT F_API getMinMaxDistance(float *min, float *max) const;
|
||||
|
||||
FMOD_RESULT F_API release();
|
||||
|
||||
FMOD_RESULT F_API isVirtual(bool *virtualstate) const;
|
||||
|
||||
FMOD_RESULT F_API getParameterByID(FMOD_STUDIO_PARAMETER_ID id, float *value, float *finalvalue = 0) const;
|
||||
FMOD_RESULT F_API setParameterByID(FMOD_STUDIO_PARAMETER_ID id, float value, bool ignoreseekspeed = false);
|
||||
FMOD_RESULT F_API setParameterByIDWithLabel(FMOD_STUDIO_PARAMETER_ID id, const char* label, bool ignoreseekspeed = false);
|
||||
FMOD_RESULT F_API setParametersByIDs(const FMOD_STUDIO_PARAMETER_ID *ids, float *values, int count, bool ignoreseekspeed = false);
|
||||
|
||||
FMOD_RESULT F_API getParameterByName(const char *name, float *value, float *finalvalue = 0) const;
|
||||
FMOD_RESULT F_API setParameterByName(const char *name, float value, bool ignoreseekspeed = false);
|
||||
FMOD_RESULT F_API setParameterByNameWithLabel(const char *name, const char* label, bool ignoreseekspeed = false);
|
||||
|
||||
FMOD_RESULT F_API keyOff();
|
||||
|
||||
// Monitoring
|
||||
FMOD_RESULT F_API getCPUUsage(unsigned int *exclusive, unsigned int *inclusive) const;
|
||||
FMOD_RESULT F_API getMemoryUsage(FMOD_STUDIO_MEMORY_USAGE *memoryusage) const;
|
||||
|
||||
// Callbacks
|
||||
FMOD_RESULT F_API setCallback(FMOD_STUDIO_EVENT_CALLBACK callback, FMOD_STUDIO_EVENT_CALLBACK_TYPE callbackmask = FMOD_STUDIO_EVENT_CALLBACK_ALL);
|
||||
FMOD_RESULT F_API getUserData(void **userdata) const;
|
||||
FMOD_RESULT F_API setUserData(void *userdata);
|
||||
};
|
||||
|
||||
class Bus
|
||||
{
|
||||
private:
|
||||
// Constructor made private so user cannot statically instance the class.
|
||||
Bus();
|
||||
Bus(const Bus &);
|
||||
|
||||
public:
|
||||
// Handle validity
|
||||
bool F_API isValid() const;
|
||||
|
||||
// Property access
|
||||
FMOD_RESULT F_API getID(FMOD_GUID *id) const;
|
||||
FMOD_RESULT F_API getPath(char *path, int size, int *retrieved) const;
|
||||
|
||||
// Playback control
|
||||
FMOD_RESULT F_API getVolume(float *volume, float *finalvolume = 0) const;
|
||||
FMOD_RESULT F_API setVolume(float volume);
|
||||
|
||||
FMOD_RESULT F_API getPaused(bool *paused) const;
|
||||
FMOD_RESULT F_API setPaused(bool paused);
|
||||
|
||||
FMOD_RESULT F_API getMute(bool *mute) const;
|
||||
FMOD_RESULT F_API setMute(bool mute);
|
||||
|
||||
FMOD_RESULT F_API stopAllEvents(FMOD_STUDIO_STOP_MODE mode);
|
||||
|
||||
// Output port
|
||||
FMOD_RESULT F_API getPortIndex(FMOD_PORT_INDEX *index) const;
|
||||
FMOD_RESULT F_API setPortIndex(FMOD_PORT_INDEX index);
|
||||
|
||||
// Low-level API access
|
||||
FMOD_RESULT F_API lockChannelGroup();
|
||||
FMOD_RESULT F_API unlockChannelGroup();
|
||||
FMOD_RESULT F_API getChannelGroup(FMOD::ChannelGroup **group) const;
|
||||
|
||||
// Monitoring
|
||||
FMOD_RESULT F_API getCPUUsage(unsigned int *exclusive, unsigned int *inclusive) const;
|
||||
FMOD_RESULT F_API getMemoryUsage(FMOD_STUDIO_MEMORY_USAGE *memoryusage) const;
|
||||
};
|
||||
|
||||
class VCA
|
||||
{
|
||||
private:
|
||||
// Constructor made private so user cannot statically instance the class.
|
||||
VCA();
|
||||
VCA(const VCA &);
|
||||
|
||||
public:
|
||||
// Handle validity
|
||||
bool F_API isValid() const;
|
||||
|
||||
// Property access
|
||||
FMOD_RESULT F_API getID(FMOD_GUID *id) const;
|
||||
FMOD_RESULT F_API getPath(char *path, int size, int *retrieved) const;
|
||||
|
||||
// Playback control
|
||||
FMOD_RESULT F_API getVolume(float *volume, float *finalvolume = 0) const;
|
||||
FMOD_RESULT F_API setVolume(float volume);
|
||||
};
|
||||
|
||||
class Bank
|
||||
{
|
||||
private:
|
||||
// Constructor made private so user cannot statically instance the class.
|
||||
Bank();
|
||||
Bank(const Bank &);
|
||||
|
||||
public:
|
||||
// Handle validity
|
||||
bool F_API isValid() const;
|
||||
|
||||
// Property access
|
||||
FMOD_RESULT F_API getID(FMOD_GUID *id) const;
|
||||
FMOD_RESULT F_API getPath(char *path, int size, int *retrieved) const;
|
||||
|
||||
// Loading control
|
||||
FMOD_RESULT F_API unload();
|
||||
FMOD_RESULT F_API loadSampleData();
|
||||
FMOD_RESULT F_API unloadSampleData();
|
||||
|
||||
FMOD_RESULT F_API getLoadingState(FMOD_STUDIO_LOADING_STATE *state) const;
|
||||
FMOD_RESULT F_API getSampleLoadingState(FMOD_STUDIO_LOADING_STATE *state) const;
|
||||
|
||||
// Enumeration
|
||||
FMOD_RESULT F_API getStringCount(int *count) const;
|
||||
FMOD_RESULT F_API getStringInfo(int index, FMOD_GUID *id, char *path, int size, int *retrieved) const;
|
||||
FMOD_RESULT F_API getEventCount(int *count) const;
|
||||
FMOD_RESULT F_API getEventList(EventDescription **array, int capacity, int *count) const;
|
||||
FMOD_RESULT F_API getBusCount(int *count) const;
|
||||
FMOD_RESULT F_API getBusList(Bus **array, int capacity, int *count) const;
|
||||
FMOD_RESULT F_API getVCACount(int *count) const;
|
||||
FMOD_RESULT F_API getVCAList(VCA **array, int capacity, int *count) const;
|
||||
|
||||
FMOD_RESULT F_API getUserData(void **userdata) const;
|
||||
FMOD_RESULT F_API setUserData(void *userdata);
|
||||
};
|
||||
|
||||
class CommandReplay
|
||||
{
|
||||
private:
|
||||
// Constructor made private so user cannot statically instance the class.
|
||||
CommandReplay();
|
||||
CommandReplay(const CommandReplay &);
|
||||
|
||||
public:
|
||||
// Handle validity
|
||||
bool F_API isValid() const;
|
||||
|
||||
// Information query
|
||||
FMOD_RESULT F_API getSystem(System **system) const;
|
||||
FMOD_RESULT F_API getLength(float *length) const;
|
||||
|
||||
FMOD_RESULT F_API getCommandCount(int *count) const;
|
||||
FMOD_RESULT F_API getCommandInfo(int commandindex, FMOD_STUDIO_COMMAND_INFO *info) const;
|
||||
FMOD_RESULT F_API getCommandString(int commandindex, char *buffer, int length) const;
|
||||
FMOD_RESULT F_API getCommandAtTime(float time, int *commandindex) const;
|
||||
|
||||
// Playback
|
||||
FMOD_RESULT F_API setBankPath(const char *bankPath);
|
||||
FMOD_RESULT F_API start();
|
||||
FMOD_RESULT F_API stop();
|
||||
FMOD_RESULT F_API seekToTime(float time);
|
||||
FMOD_RESULT F_API seekToCommand(int commandindex);
|
||||
FMOD_RESULT F_API getPaused(bool *paused) const;
|
||||
FMOD_RESULT F_API setPaused(bool paused);
|
||||
FMOD_RESULT F_API getPlaybackState(FMOD_STUDIO_PLAYBACK_STATE *state) const;
|
||||
FMOD_RESULT F_API getCurrentCommand(int *commandindex, float *currenttime) const;
|
||||
|
||||
// Release
|
||||
FMOD_RESULT F_API release();
|
||||
|
||||
// Callbacks
|
||||
FMOD_RESULT F_API setFrameCallback(FMOD_STUDIO_COMMANDREPLAY_FRAME_CALLBACK callback);
|
||||
FMOD_RESULT F_API setLoadBankCallback(FMOD_STUDIO_COMMANDREPLAY_LOAD_BANK_CALLBACK callback);
|
||||
FMOD_RESULT F_API setCreateInstanceCallback(FMOD_STUDIO_COMMANDREPLAY_CREATE_INSTANCE_CALLBACK callback);
|
||||
|
||||
FMOD_RESULT F_API getUserData(void **userdata) const;
|
||||
FMOD_RESULT F_API setUserData(void *userdata);
|
||||
};
|
||||
|
||||
} // namespace Studio
|
||||
|
||||
} // namespace FMOD
|
||||
|
||||
#endif //FMOD_STUDIO_HPP
|
336
SimpleGame/FMOD/api/studio/inc/fmod_studio_common.h
Normal file
336
SimpleGame/FMOD/api/studio/inc/fmod_studio_common.h
Normal file
|
@ -0,0 +1,336 @@
|
|||
/* ======================================================================================== */
|
||||
/* FMOD Studio API - Common C/C++ header file. */
|
||||
/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2025. */
|
||||
/* */
|
||||
/* This header defines common enumerations, structs and callbacks that are shared between */
|
||||
/* the C and C++ interfaces. */
|
||||
/* */
|
||||
/* For more detail visit: */
|
||||
/* https://fmod.com/docs/2.03/api/studio-api.html */
|
||||
/* ======================================================================================== */
|
||||
#ifndef FMOD_STUDIO_COMMON_H
|
||||
#define FMOD_STUDIO_COMMON_H
|
||||
|
||||
#include "fmod.h"
|
||||
|
||||
/*
|
||||
FMOD Studio types.
|
||||
*/
|
||||
typedef struct FMOD_STUDIO_SYSTEM FMOD_STUDIO_SYSTEM;
|
||||
typedef struct FMOD_STUDIO_EVENTDESCRIPTION FMOD_STUDIO_EVENTDESCRIPTION;
|
||||
typedef struct FMOD_STUDIO_EVENTINSTANCE FMOD_STUDIO_EVENTINSTANCE;
|
||||
typedef struct FMOD_STUDIO_BUS FMOD_STUDIO_BUS;
|
||||
typedef struct FMOD_STUDIO_VCA FMOD_STUDIO_VCA;
|
||||
typedef struct FMOD_STUDIO_BANK FMOD_STUDIO_BANK;
|
||||
typedef struct FMOD_STUDIO_COMMANDREPLAY FMOD_STUDIO_COMMANDREPLAY;
|
||||
|
||||
/*
|
||||
FMOD Studio constants
|
||||
*/
|
||||
#define FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT 32
|
||||
|
||||
typedef unsigned int FMOD_STUDIO_INITFLAGS;
|
||||
#define FMOD_STUDIO_INIT_NORMAL 0x00000000
|
||||
#define FMOD_STUDIO_INIT_LIVEUPDATE 0x00000001
|
||||
#define FMOD_STUDIO_INIT_ALLOW_MISSING_PLUGINS 0x00000002
|
||||
#define FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE 0x00000004
|
||||
#define FMOD_STUDIO_INIT_DEFERRED_CALLBACKS 0x00000008
|
||||
#define FMOD_STUDIO_INIT_LOAD_FROM_UPDATE 0x00000010
|
||||
#define FMOD_STUDIO_INIT_MEMORY_TRACKING 0x00000020
|
||||
|
||||
typedef unsigned int FMOD_STUDIO_PARAMETER_FLAGS;
|
||||
#define FMOD_STUDIO_PARAMETER_READONLY 0x00000001
|
||||
#define FMOD_STUDIO_PARAMETER_AUTOMATIC 0x00000002
|
||||
#define FMOD_STUDIO_PARAMETER_GLOBAL 0x00000004
|
||||
#define FMOD_STUDIO_PARAMETER_DISCRETE 0x00000008
|
||||
#define FMOD_STUDIO_PARAMETER_LABELED 0x00000010
|
||||
|
||||
typedef unsigned int FMOD_STUDIO_SYSTEM_CALLBACK_TYPE;
|
||||
#define FMOD_STUDIO_SYSTEM_CALLBACK_PREUPDATE 0x00000001
|
||||
#define FMOD_STUDIO_SYSTEM_CALLBACK_POSTUPDATE 0x00000002
|
||||
#define FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD 0x00000004
|
||||
#define FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED 0x00000008
|
||||
#define FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED 0x00000010
|
||||
#define FMOD_STUDIO_SYSTEM_CALLBACK_ALL 0xFFFFFFFF
|
||||
|
||||
typedef unsigned int FMOD_STUDIO_EVENT_CALLBACK_TYPE;
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_CREATED 0x00000001
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_DESTROYED 0x00000002
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_STARTING 0x00000004
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_STARTED 0x00000008
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_RESTARTED 0x00000010
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_STOPPED 0x00000020
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_START_FAILED 0x00000040
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_CREATE_PROGRAMMER_SOUND 0x00000080
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND 0x00000100
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_CREATED 0x00000200
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_DESTROYED 0x00000400
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER 0x00000800
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT 0x00001000
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED 0x00002000
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED 0x00004000
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_REAL_TO_VIRTUAL 0x00008000
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_VIRTUAL_TO_REAL 0x00010000
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_START_EVENT_COMMAND 0x00020000
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_NESTED_TIMELINE_BEAT 0x00040000
|
||||
#define FMOD_STUDIO_EVENT_CALLBACK_ALL 0xFFFFFFFF
|
||||
|
||||
typedef unsigned int FMOD_STUDIO_LOAD_BANK_FLAGS;
|
||||
#define FMOD_STUDIO_LOAD_BANK_NORMAL 0x00000000
|
||||
#define FMOD_STUDIO_LOAD_BANK_NONBLOCKING 0x00000001
|
||||
#define FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES 0x00000002
|
||||
#define FMOD_STUDIO_LOAD_BANK_UNENCRYPTED 0x00000004
|
||||
|
||||
typedef unsigned int FMOD_STUDIO_COMMANDCAPTURE_FLAGS;
|
||||
#define FMOD_STUDIO_COMMANDCAPTURE_NORMAL 0x00000000
|
||||
#define FMOD_STUDIO_COMMANDCAPTURE_FILEFLUSH 0x00000001
|
||||
#define FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE 0x00000002
|
||||
|
||||
typedef unsigned int FMOD_STUDIO_COMMANDREPLAY_FLAGS;
|
||||
#define FMOD_STUDIO_COMMANDREPLAY_NORMAL 0x00000000
|
||||
#define FMOD_STUDIO_COMMANDREPLAY_SKIP_CLEANUP 0x00000001
|
||||
#define FMOD_STUDIO_COMMANDREPLAY_FAST_FORWARD 0x00000002
|
||||
#define FMOD_STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD 0x00000004
|
||||
|
||||
typedef enum FMOD_STUDIO_LOADING_STATE
|
||||
{
|
||||
FMOD_STUDIO_LOADING_STATE_UNLOADING,
|
||||
FMOD_STUDIO_LOADING_STATE_UNLOADED,
|
||||
FMOD_STUDIO_LOADING_STATE_LOADING,
|
||||
FMOD_STUDIO_LOADING_STATE_LOADED,
|
||||
FMOD_STUDIO_LOADING_STATE_ERROR,
|
||||
|
||||
FMOD_STUDIO_LOADING_STATE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */
|
||||
} FMOD_STUDIO_LOADING_STATE;
|
||||
|
||||
typedef enum FMOD_STUDIO_LOAD_MEMORY_MODE
|
||||
{
|
||||
FMOD_STUDIO_LOAD_MEMORY,
|
||||
FMOD_STUDIO_LOAD_MEMORY_POINT,
|
||||
|
||||
FMOD_STUDIO_LOAD_MEMORY_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */
|
||||
} FMOD_STUDIO_LOAD_MEMORY_MODE;
|
||||
|
||||
typedef enum FMOD_STUDIO_PARAMETER_TYPE
|
||||
{
|
||||
FMOD_STUDIO_PARAMETER_GAME_CONTROLLED,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_DISTANCE,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_CONE_ANGLE,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_ORIENTATION,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_DIRECTION,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_ELEVATION,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_LISTENER_ORIENTATION,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED_ABSOLUTE,
|
||||
FMOD_STUDIO_PARAMETER_AUTOMATIC_DISTANCE_NORMALIZED,
|
||||
|
||||
FMOD_STUDIO_PARAMETER_MAX,
|
||||
FMOD_STUDIO_PARAMETER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */
|
||||
} FMOD_STUDIO_PARAMETER_TYPE;
|
||||
|
||||
typedef enum FMOD_STUDIO_USER_PROPERTY_TYPE
|
||||
{
|
||||
FMOD_STUDIO_USER_PROPERTY_TYPE_INTEGER,
|
||||
FMOD_STUDIO_USER_PROPERTY_TYPE_BOOLEAN,
|
||||
FMOD_STUDIO_USER_PROPERTY_TYPE_FLOAT,
|
||||
FMOD_STUDIO_USER_PROPERTY_TYPE_STRING,
|
||||
|
||||
FMOD_STUDIO_USER_PROPERTY_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */
|
||||
} FMOD_STUDIO_USER_PROPERTY_TYPE;
|
||||
|
||||
typedef enum FMOD_STUDIO_EVENT_PROPERTY
|
||||
{
|
||||
FMOD_STUDIO_EVENT_PROPERTY_CHANNELPRIORITY,
|
||||
FMOD_STUDIO_EVENT_PROPERTY_SCHEDULE_DELAY,
|
||||
FMOD_STUDIO_EVENT_PROPERTY_SCHEDULE_LOOKAHEAD,
|
||||
FMOD_STUDIO_EVENT_PROPERTY_MINIMUM_DISTANCE,
|
||||
FMOD_STUDIO_EVENT_PROPERTY_MAXIMUM_DISTANCE,
|
||||
FMOD_STUDIO_EVENT_PROPERTY_COOLDOWN,
|
||||
FMOD_STUDIO_EVENT_PROPERTY_MAX,
|
||||
|
||||
FMOD_STUDIO_EVENT_PROPERTY_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */
|
||||
} FMOD_STUDIO_EVENT_PROPERTY;
|
||||
|
||||
typedef enum FMOD_STUDIO_PLAYBACK_STATE
|
||||
{
|
||||
FMOD_STUDIO_PLAYBACK_PLAYING,
|
||||
FMOD_STUDIO_PLAYBACK_SUSTAINING,
|
||||
FMOD_STUDIO_PLAYBACK_STOPPED,
|
||||
FMOD_STUDIO_PLAYBACK_STARTING,
|
||||
FMOD_STUDIO_PLAYBACK_STOPPING,
|
||||
|
||||
FMOD_STUDIO_PLAYBACK_FORCEINT = 65536
|
||||
} FMOD_STUDIO_PLAYBACK_STATE;
|
||||
|
||||
typedef enum FMOD_STUDIO_STOP_MODE
|
||||
{
|
||||
FMOD_STUDIO_STOP_ALLOWFADEOUT,
|
||||
FMOD_STUDIO_STOP_IMMEDIATE,
|
||||
|
||||
FMOD_STUDIO_STOP_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */
|
||||
} FMOD_STUDIO_STOP_MODE;
|
||||
|
||||
typedef enum FMOD_STUDIO_INSTANCETYPE
|
||||
{
|
||||
FMOD_STUDIO_INSTANCETYPE_NONE,
|
||||
FMOD_STUDIO_INSTANCETYPE_SYSTEM,
|
||||
FMOD_STUDIO_INSTANCETYPE_EVENTDESCRIPTION,
|
||||
FMOD_STUDIO_INSTANCETYPE_EVENTINSTANCE,
|
||||
FMOD_STUDIO_INSTANCETYPE_PARAMETERINSTANCE,
|
||||
FMOD_STUDIO_INSTANCETYPE_BUS,
|
||||
FMOD_STUDIO_INSTANCETYPE_VCA,
|
||||
FMOD_STUDIO_INSTANCETYPE_BANK,
|
||||
FMOD_STUDIO_INSTANCETYPE_COMMANDREPLAY,
|
||||
|
||||
FMOD_STUDIO_INSTANCETYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */
|
||||
} FMOD_STUDIO_INSTANCETYPE;
|
||||
|
||||
/*
|
||||
FMOD Studio structures
|
||||
*/
|
||||
typedef struct FMOD_STUDIO_BANK_INFO
|
||||
{
|
||||
int size;
|
||||
void *userdata;
|
||||
int userdatalength;
|
||||
FMOD_FILE_OPEN_CALLBACK opencallback;
|
||||
FMOD_FILE_CLOSE_CALLBACK closecallback;
|
||||
FMOD_FILE_READ_CALLBACK readcallback;
|
||||
FMOD_FILE_SEEK_CALLBACK seekcallback;
|
||||
} FMOD_STUDIO_BANK_INFO;
|
||||
|
||||
typedef struct FMOD_STUDIO_PARAMETER_ID
|
||||
{
|
||||
unsigned int data1;
|
||||
unsigned int data2;
|
||||
} FMOD_STUDIO_PARAMETER_ID;
|
||||
|
||||
typedef struct FMOD_STUDIO_PARAMETER_DESCRIPTION
|
||||
{
|
||||
const char *name;
|
||||
FMOD_STUDIO_PARAMETER_ID id;
|
||||
float minimum;
|
||||
float maximum;
|
||||
float defaultvalue;
|
||||
FMOD_STUDIO_PARAMETER_TYPE type;
|
||||
FMOD_STUDIO_PARAMETER_FLAGS flags;
|
||||
FMOD_GUID guid;
|
||||
} FMOD_STUDIO_PARAMETER_DESCRIPTION;
|
||||
|
||||
typedef struct FMOD_STUDIO_USER_PROPERTY
|
||||
{
|
||||
const char *name;
|
||||
FMOD_STUDIO_USER_PROPERTY_TYPE type;
|
||||
|
||||
union
|
||||
{
|
||||
int intvalue;
|
||||
FMOD_BOOL boolvalue;
|
||||
float floatvalue;
|
||||
const char *stringvalue;
|
||||
};
|
||||
} FMOD_STUDIO_USER_PROPERTY;
|
||||
|
||||
typedef struct FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES
|
||||
{
|
||||
const char *name;
|
||||
FMOD_SOUND *sound;
|
||||
int subsoundIndex;
|
||||
} FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES;
|
||||
|
||||
typedef struct FMOD_STUDIO_PLUGIN_INSTANCE_PROPERTIES
|
||||
{
|
||||
const char *name;
|
||||
FMOD_DSP *dsp;
|
||||
} FMOD_STUDIO_PLUGIN_INSTANCE_PROPERTIES;
|
||||
|
||||
typedef struct FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES
|
||||
{
|
||||
const char *name;
|
||||
int position;
|
||||
} FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES;
|
||||
|
||||
typedef struct FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES
|
||||
{
|
||||
int bar;
|
||||
int beat;
|
||||
int position;
|
||||
float tempo;
|
||||
int timesignatureupper;
|
||||
int timesignaturelower;
|
||||
} FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES;
|
||||
|
||||
typedef struct FMOD_STUDIO_TIMELINE_NESTED_BEAT_PROPERTIES
|
||||
{
|
||||
FMOD_GUID eventid;
|
||||
FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES properties;
|
||||
} FMOD_STUDIO_TIMELINE_NESTED_BEAT_PROPERTIES;
|
||||
|
||||
typedef struct FMOD_STUDIO_ADVANCEDSETTINGS
|
||||
{
|
||||
int cbsize;
|
||||
unsigned int commandqueuesize;
|
||||
unsigned int handleinitialsize;
|
||||
int studioupdateperiod;
|
||||
int idlesampledatapoolsize;
|
||||
unsigned int streamingscheduledelay;
|
||||
const char* encryptionkey;
|
||||
} FMOD_STUDIO_ADVANCEDSETTINGS;
|
||||
|
||||
typedef struct FMOD_STUDIO_CPU_USAGE
|
||||
{
|
||||
float update;
|
||||
} FMOD_STUDIO_CPU_USAGE;
|
||||
|
||||
typedef struct FMOD_STUDIO_BUFFER_INFO
|
||||
{
|
||||
int currentusage;
|
||||
int peakusage;
|
||||
int capacity;
|
||||
int stallcount;
|
||||
float stalltime;
|
||||
} FMOD_STUDIO_BUFFER_INFO;
|
||||
|
||||
typedef struct FMOD_STUDIO_BUFFER_USAGE
|
||||
{
|
||||
FMOD_STUDIO_BUFFER_INFO studiocommandqueue;
|
||||
FMOD_STUDIO_BUFFER_INFO studiohandle;
|
||||
} FMOD_STUDIO_BUFFER_USAGE;
|
||||
|
||||
typedef struct FMOD_STUDIO_SOUND_INFO
|
||||
{
|
||||
const char *name_or_data;
|
||||
FMOD_MODE mode;
|
||||
FMOD_CREATESOUNDEXINFO exinfo;
|
||||
int subsoundindex;
|
||||
} FMOD_STUDIO_SOUND_INFO;
|
||||
|
||||
typedef struct FMOD_STUDIO_COMMAND_INFO
|
||||
{
|
||||
const char *commandname;
|
||||
int parentcommandindex;
|
||||
int framenumber;
|
||||
float frametime;
|
||||
FMOD_STUDIO_INSTANCETYPE instancetype;
|
||||
FMOD_STUDIO_INSTANCETYPE outputtype;
|
||||
unsigned int instancehandle;
|
||||
unsigned int outputhandle;
|
||||
} FMOD_STUDIO_COMMAND_INFO;
|
||||
|
||||
typedef struct FMOD_STUDIO_MEMORY_USAGE
|
||||
{
|
||||
int exclusive;
|
||||
int inclusive;
|
||||
int sampledata;
|
||||
} FMOD_STUDIO_MEMORY_USAGE;
|
||||
|
||||
/*
|
||||
FMOD Studio callbacks.
|
||||
*/
|
||||
typedef FMOD_RESULT (F_CALL *FMOD_STUDIO_SYSTEM_CALLBACK) (FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_SYSTEM_CALLBACK_TYPE type, void *commanddata, void *userdata);
|
||||
typedef FMOD_RESULT (F_CALL *FMOD_STUDIO_EVENT_CALLBACK) (FMOD_STUDIO_EVENT_CALLBACK_TYPE type, FMOD_STUDIO_EVENTINSTANCE *event, void *parameters);
|
||||
typedef FMOD_RESULT (F_CALL *FMOD_STUDIO_COMMANDREPLAY_FRAME_CALLBACK) (FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, float currenttime, void *userdata);
|
||||
typedef FMOD_RESULT (F_CALL *FMOD_STUDIO_COMMANDREPLAY_LOAD_BANK_CALLBACK) (FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, const FMOD_GUID *bankguid, const char *bankfilename, FMOD_STUDIO_LOAD_BANK_FLAGS flags, FMOD_STUDIO_BANK **bank, void *userdata);
|
||||
typedef FMOD_RESULT (F_CALL *FMOD_STUDIO_COMMANDREPLAY_CREATE_INSTANCE_CALLBACK) (FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_EVENTINSTANCE **instance, void *userdata);
|
||||
|
||||
#endif // FMOD_STUDIO_COMMON_H
|
Loading…
Add table
Add a link
Reference in a new issue