[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11709] branches/soc-2007-hcube: Added callback feature.
Csaba Hruska
csaba.hruska at gmail.com
Sun Aug 19 19:57:54 CEST 2007
Revision: 11709
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11709
Author: hcube
Date: 2007-08-19 19:57:53 +0200 (Sun, 19 Aug 2007)
Log Message:
-----------
Added callback feature.
Modified Paths:
--------------
branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp
branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.h
branches/soc-2007-hcube/source/blender/include/BAU_soundsystem.h
branches/soc-2007-hcube/source/blender/include/BSE_seqaudio.h
branches/soc-2007-hcube/source/blender/src/soundsystem.c
Modified: branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp 2007-08-19 16:42:19 UTC (rev 11708)
+++ branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.cpp 2007-08-19 17:57:53 UTC (rev 11709)
@@ -51,9 +51,18 @@
static SND_DataConsumer *gFileWriter = 0;
static bool gWasDeviceEnabled = false;
+static SND_CallbackFunction *gCallbackFunction = 0;
+static void *gCallbackUserData1 = 0;
+static void *gCallbackUserData2 = 0;
+
// callback for global frame counter
static void gGlobalFrameCounter_cb( int framesNum, void *userData1, void *userData2 )
{
+ if( gCallbackFunction != 0 )
+ {
+ gCallbackFunction( framesNum, gCallbackUserData1, gCallbackUserData2 );
+ }
+
gGlobalFrameCounter += framesNum;
}
@@ -70,6 +79,9 @@
gGlobalFrameCounter = 0;
gFileWriter = 0;
gPlayTarget = AUDIODEVICE_TARGET;
+ gCallbackFunction = 0;
+ gCallbackUserData1 = 0;
+ gCallbackUserData2 = 0;
gDevice = new SDLDevice();
// gDevice = new portaudioDevice();
@@ -132,6 +144,13 @@
gGlobalFrameCounter = 0;
}
+void SND_SetCallback( SND_AudioCallbackFunction *callbackFunction, void *userData1, void *userData2 )
+{
+ gCallbackFunction = (SND_CallbackFunction*)callbackFunction;
+ gCallbackUserData1 = userData1;
+ gCallbackUserData2 = userData2;
+}
+
//file handling
int SND_OpenFileForWrite( char *filename, int sampleRate )
Modified: branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.h
===================================================================
--- branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.h 2007-08-19 16:42:19 UTC (rev 11708)
+++ branches/soc-2007-hcube/intern/tinySND/blender/SND_C-api.h 2007-08-19 17:57:53 UTC (rev 11709)
@@ -21,6 +21,9 @@
} SND_SoundInfo;
+typedef void SND_AudioCallbackFunction( int framesNum, void *userData1, void *userData2 );
+
+
// general
extern int SND_IsInitialized(void);
extern void SND_Initialize(void);
@@ -31,6 +34,8 @@
extern int SND_GetGlobalFrameCounter(void);
extern void SND_ClearGlobalFrameCounter(void);
+extern void SND_SetCallback( SND_AudioCallbackFunction *callbackFunction, void *userData1, void *userData2 );
+
// file handling
extern int SND_OpenFileForWrite( char *filename, int sampleRate );
extern void SND_WriteFramesToFile( int framesNum );
Modified: branches/soc-2007-hcube/source/blender/include/BAU_soundsystem.h
===================================================================
--- branches/soc-2007-hcube/source/blender/include/BAU_soundsystem.h 2007-08-19 16:42:19 UTC (rev 11708)
+++ branches/soc-2007-hcube/source/blender/include/BAU_soundsystem.h 2007-08-19 17:57:53 UTC (rev 11709)
@@ -3,6 +3,8 @@
#include "DNA_sound_types.h"
+typedef void audio_callbackfunction( int framesNum, void *userData1, void *userData2 );
+
// general functions
void audio_initialize(void);
int audio_isinitialized(void);
@@ -10,6 +12,7 @@
int audio_getmixrate(void);
int audio_getglobalframecounter(void);
void audio_clearglobalframecounter(void);
+void audio_setcallback(audio_callbackfunction *callbackFunction, void *userData1, void *userData2);
// file functions, used for mixdown
// playing sound during writing into a file is disabled
Modified: branches/soc-2007-hcube/source/blender/include/BSE_seqaudio.h
===================================================================
--- branches/soc-2007-hcube/source/blender/include/BSE_seqaudio.h 2007-08-19 16:42:19 UTC (rev 11708)
+++ branches/soc-2007-hcube/source/blender/include/BSE_seqaudio.h 2007-08-19 17:57:53 UTC (rev 11709)
@@ -9,7 +9,7 @@
void seqaudio_update(void);
int seqaudio_getframeposition(void);
-void seqaudio_setframeposition(int framePos);
+void seqaudio_scrub(void);
int seqaudio_mixdown(char *fileName, int sampleRate);
Modified: branches/soc-2007-hcube/source/blender/src/soundsystem.c
===================================================================
--- branches/soc-2007-hcube/source/blender/src/soundsystem.c 2007-08-19 16:42:19 UTC (rev 11708)
+++ branches/soc-2007-hcube/source/blender/src/soundsystem.c 2007-08-19 17:57:53 UTC (rev 11709)
@@ -110,6 +110,11 @@
SND_ClearGlobalFrameCounter();
}
+void audio_setcallback( audio_callbackfunction *callbackFunction, void *userData1, void *userData2 )
+{
+ SND_SetCallback( callbackFunction, userData1, userData2 );
+}
+
int audio_file_openforwrite( char *name, int sampleRate )
{
return SND_OpenFileForWrite( name, sampleRate );
More information about the Bf-blender-cvs
mailing list