aboutsummaryrefslogtreecommitdiffstats
path: root/songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.h
diff options
context:
space:
mode:
authorwhiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-11-02 12:51:22 +0000
committerwhiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-11-02 12:51:22 +0000
commit5000060b04bed23cbbd88ba43ed546220c4b7c69 (patch)
tree65698942fe29cfb0f94553ded56b5d9b72f6bf0b /songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.h
parent61219d935c43c685506ed71e3e98ad29636e6e46 (diff)
downloadusdx-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.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.h b/songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.h
new file mode 100644
index 00000000..125b1253
--- /dev/null
+++ b/songmanagement/src/lib/projectM/cwrapper/projectM-cwrapper.h
@@ -0,0 +1,68 @@
+#ifndef __PROJECTM_CWRAPPER_H__
+#define __PROJECTM_CWRAPPER_H__
+
+#include "projectM.hpp"
+
+// PROJECTM_VERSION define is not very helpful, lets create our own
+#define PROJECTM_VERSION_1_00_00 1000000 // 1.00.00 = 1.0 or 1.01 (same version number for 1.0 and 1.01)
+#define PROJECTM_VERSION_1_10_00 1010000 // 1.10.00 = 1.1 (bigger than 1.2 due to strange versioning)
+#define PROJECTM_VERSION_1_02_00 1002000 // 1.02.00 = 1.2
+#define PROJECTM_VERSION_2_00_00 2000000 // 2.00.00 = 2.0
+
+// version of projectM to wrap (see PROJECTM_VERSION)
+#ifndef PROJECTM_VERSION_INT
+#define PROJECTM_VERSION_INT PROJECTM_VERSION_2_00_00
+#endif
+
+extern "C" {
+
+ #if (PROJECTM_VERSION_INT > 1000000)
+ struct Settings {
+ int meshX;
+ int meshY;
+ int fps;
+ int textureSize;
+ int windowWidth;
+ int windowHeight;
+ const char* presetURL;
+ const char* titleFontURL;
+ const char* menuFontURL;
+ int smoothPresetDuration;
+ int presetDuration;
+ float beatSensitivity;
+ char aspectCorrection;
+ float easterEgg;
+ char shuffleEnabled;
+ };
+ #endif
+
+ typedef void* projectM_ptr;
+
+ DLLEXPORT projectM_ptr projectM_create1(char* config_file);
+ #if (PROJECTM_VERSION_INT < 1000000)
+ DLLEXPORT 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);
+ #endif
+
+ DLLEXPORT void projectM_resetGL(projectM_ptr pm, int width, int height);
+ DLLEXPORT void projectM_setTitle(projectM_ptr pm, char* title);
+ DLLEXPORT void projectM_renderFrame(projectM_ptr pm);
+ DLLEXPORT unsigned projectM_initRenderToTexture(projectM_ptr pm);
+ DLLEXPORT void projectM_key_handler(projectM_ptr pm, projectMEvent event,
+ projectMKeycode keycode, projectMModifier modifier);
+
+ DLLEXPORT void projectM_free(projectM_ptr pm);
+
+ DLLEXPORT void PCM_addPCMfloat(projectM_ptr pm, float *PCMdata, int samples);
+ DLLEXPORT void PCM_addPCM16(projectM_ptr pm, short [2][512]);
+ DLLEXPORT void PCM_addPCM16Data(projectM_ptr pm, const short* pcm_data, short samples);
+ DLLEXPORT void PCM_addPCM8(projectM_ptr pm, unsigned char [2][1024]);
+ DLLEXPORT void PCM_addPCM8_512(projectM_ptr pm, const unsigned char [2][512]);
+
+ #if (PROJECTM_VERSION_INT > 1000000)
+ DLLEXPORT void projectM_settings(projectM_ptr pm, Settings* settings);
+ #endif
+}
+
+#endif