diff options
author | whiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2010-11-02 12:51:22 +0000 |
---|---|---|
committer | whiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2010-11-02 12:51:22 +0000 |
commit | 5000060b04bed23cbbd88ba43ed546220c4b7c69 (patch) | |
tree | 65698942fe29cfb0f94553ded56b5d9b72f6bf0b /songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.cpp | |
parent | 61219d935c43c685506ed71e3e98ad29636e6e46 (diff) | |
download | usdx-5000060b04bed23cbbd88ba43ed546220c4b7c69.tar.gz usdx-5000060b04bed23cbbd88ba43ed546220c4b7c69.tar.xz usdx-5000060b04bed23cbbd88ba43ed546220c4b7c69.zip |
create experimental songmanagement branch
- nicer abstraction of songs
- split songloading from handling songs
- cleanup singscreen
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@2706 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r-- | songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.cpp | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.cpp b/songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.cpp new file mode 100644 index 00000000..ebf43554 --- /dev/null +++ b/songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.cpp @@ -0,0 +1,104 @@ +#include "projectM-cwrapper.h" + +#define PM_CLASS(pm) ((projectM*)pm) + +#if (PROJECTM_VERSION_INT > 1000000) +#define PM_PCM(pm) (PM_CLASS(pm)->pcm()) +#else +#define PM_PCM(pm) (PM_CLASS(pm)->pcm) +#endif + +projectM_ptr projectM_create1(char* config_file) +{ + return projectM_ptr(new projectM(config_file)); +} + +#if (PROJECTM_VERSION_INT < 1000000) +projectM_ptr projectM_create2(int gx, int gy, int fps, int texsize, + int width, int height, char* preset_url, + char* title_fonturl, char* title_menuurl) +{ + return projectM_ptr(new projectM(gx, gy, fps, texsize, width, height, + preset_url, title_fonturl, title_menuurl));} +#endif + +void projectM_resetGL(projectM_ptr pm, int width, int height) +{ + PM_CLASS(pm)->projectM_resetGL(width, height); +} + +void projectM_setTitle(projectM_ptr pm, char* title) +{ + PM_CLASS(pm)->projectM_setTitle(title); +} + +void projectM_renderFrame(projectM_ptr pm) +{ + PM_CLASS(pm)->renderFrame(); +} + +unsigned projectM_initRenderToTexture(projectM_ptr pm) +{ + return PM_CLASS(pm)->initRenderToTexture(); +} + +void projectM_key_handler(projectM_ptr pm, projectMEvent event, + projectMKeycode keycode, projectMModifier modifier) +{ + PM_CLASS(pm)->key_handler(event, keycode, modifier); +} + +void projectM_free(projectM_ptr pm) +{ + delete PM_CLASS(pm); +} + +void PCM_addPCMfloat(projectM_ptr pm, float *PCMdata, int samples) +{ + PM_PCM(pm)->addPCMfloat(PCMdata, samples); +} + +void PCM_addPCM16(projectM_ptr pm, short pcm_data[2][512]) +{ + PM_PCM(pm)->addPCM16(pcm_data); +} + +void PCM_addPCM16Data(projectM_ptr pm, const short* pcm_data, short samples) +{ + PM_PCM(pm)->addPCM16Data(pcm_data, samples); +} + +void PCM_addPCM8(projectM_ptr pm, unsigned char pcm_data[2][1024]) +{ + PM_PCM(pm)->addPCM8(pcm_data); +} + +void PCM_addPCM8_512(projectM_ptr pm, const unsigned char pcm_data[2][512]) +{ + PM_PCM(pm)->addPCM8_512(pcm_data); +} + +#define COPY_FIELD(c_ptr, s, fld) (c_ptr->fld = s.fld) + +#if (PROJECTM_VERSION_INT > 1000000) +void projectM_settings(projectM_ptr pm, Settings* settings) +{ + const projectM::Settings& pmSettings = PM_CLASS(pm)->settings(); + + COPY_FIELD(settings, pmSettings, meshX); + COPY_FIELD(settings, pmSettings, meshY); + COPY_FIELD(settings, pmSettings, fps); + COPY_FIELD(settings, pmSettings, textureSize); + COPY_FIELD(settings, pmSettings, windowWidth); + COPY_FIELD(settings, pmSettings, windowHeight); + settings->presetURL = pmSettings.presetURL.c_str(); + settings->titleFontURL = pmSettings.titleFontURL.c_str(); + settings->menuFontURL = pmSettings.menuFontURL.c_str(); + COPY_FIELD(settings, pmSettings, smoothPresetDuration); + COPY_FIELD(settings, pmSettings, presetDuration); + COPY_FIELD(settings, pmSettings, beatSensitivity); + COPY_FIELD(settings, pmSettings, aspectCorrection); + COPY_FIELD(settings, pmSettings, easterEgg); + COPY_FIELD(settings, pmSettings, shuffleEnabled); +} +#endif |