Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/SoundSystem/SND_test/SND_test.c')
-rw-r--r--intern/SoundSystem/SND_test/SND_test.c152
1 files changed, 152 insertions, 0 deletions
diff --git a/intern/SoundSystem/SND_test/SND_test.c b/intern/SoundSystem/SND_test/SND_test.c
new file mode 100644
index 00000000000..eff52aef61e
--- /dev/null
+++ b/intern/SoundSystem/SND_test/SND_test.c
@@ -0,0 +1,152 @@
+/* SND_test.c nov 2000
+*
+* testfile for the SND module
+*
+* janco verduin
+*
+* $Id$
+ *
+ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+*/
+
+#include "SND_C-api.h"
+#include "BlenderWaveCacheCApi.h"
+#include "OpenALC-Api.h"
+#include <stdio.h>
+#include <stdlib.h>
+#if defined(WIN32)
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+#include <fcntl.h>
+
+static int buf[3];
+
+float oPos[3]={3.0, 0.0,-1.0};
+float oVel[3]={0.0, 0.0, 1.0};
+float oOri[6]={0.0, 0.0, 1.0, 0.0, 1.0, 0.0};
+
+void* ReadFile(char *filename)
+{
+ int file, filelen;
+ void *data = NULL;
+
+#if defined(WIN32)
+ file = open(filename, O_BINARY|O_RDONLY);
+#else
+ file = open(filename, 0|O_RDONLY);
+#endif
+
+ if (file == -1) {
+ printf("can't open file.\n");
+ printf("press q for quit.\n");
+
+ }
+ else {
+ filelen = lseek(file, 0, SEEK_END);
+ lseek(file, 0, SEEK_SET);
+
+ if (filelen != 0){
+ data = malloc(filelen);
+ if (read(file, data, filelen) != filelen) {
+ free(data);
+ data = NULL;
+ }
+ }
+ close(file);
+
+ }
+ return (data);
+}
+
+int main(int argc, char* argv[])
+{
+ int ch;
+ char* samplename = NULL;
+ void* sampleinmemory = NULL;
+ SND_CacheHandle wavecache = NULL;
+ SND_SceneHandle scene = NULL;
+ SND_ObjectHandle object = NULL;
+
+ wavecache = SND_GetWaveCache();
+ scene = SND_CreateOpenALScene(wavecache);
+
+ samplename = "2.wav";
+ sampleinmemory = ReadFile(samplename);
+
+ if (sampleinmemory) {
+
+ object = SND_CreateObject();
+ SND_AddMemoryLocation(samplename, sampleinmemory);
+ SND_SetSampleName(object, samplename);
+ SND_AddObject(scene, object);
+ printf("go your gang...\n");
+ printf("1: play\n");
+ printf("2: stop\n");
+ printf("q: quit\n");
+ }
+ do
+ {
+ ch = getchar();
+ ch = toupper(ch);
+ switch (ch)
+ {
+ case '1':
+ {
+ SND_SetPitch(object, 1.0);
+ SND_SetGain(object, 1.0);
+ SND_StartSound(object);
+ break;
+ }
+ case '2':
+ {
+ SND_StopSound(object);
+ break;
+ }
+ default:
+ break;
+ }
+
+ SND_Proceed(scene);
+
+ } while (ch != 'Q');
+
+ if (object) {
+
+ SND_RemoveObject(scene, object);
+ SND_DeleteObject(object);
+ }
+
+ SND_DeleteScene(scene);
+ SND_DeleteCache();
+
+ return 0;
+
+}