[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