[PD-cvs] pd/src s_audio_asio.cpp,1.1.4.15,1.1.4.16

Tim Blechmann timblech at users.sourceforge.net
Fri Nov 26 00:13:26 CET 2004


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21121

Modified Files:
      Tag: devel_0_38
	s_audio_asio.cpp 
Log Message:
some better debug messages

Index: s_audio_asio.cpp
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/s_audio_asio.cpp,v
retrieving revision 1.1.4.15
retrieving revision 1.1.4.16
diff -C2 -d -r1.1.4.15 -r1.1.4.16
*** s_audio_asio.cpp	23 Nov 2004 23:08:53 -0000	1.1.4.15
--- s_audio_asio.cpp	25 Nov 2004 23:13:24 -0000	1.1.4.16
***************
*** 7,10 ****
--- 7,12 ----
   */
  
+ #define CALLBACK_SCHEDULER
+ 
  #ifdef USEAPI_ASIO
  
***************
*** 148,151 ****
--- 150,154 ----
  
  static long asio_bufsize;                /* hardware buffer size */
+ static long asio_ticks_per_callback;
  
  unsigned long sys_reftime;
***************
*** 296,310 ****
  
  	/* todo: buffer size hardcoded to asio hardware */
! 	asio_bufsize = asio_prefbufsize; 
  
  #ifdef CALLBACK_SCHEDULER
! 	if (asio_bufsize % 2 == 0)
  	{
  		/* use callback scheduler */
  		sys_keepsched = 0;
  		sys_callbackscheduler = 1;
  	}
  #endif
! 
  	/* set sample rate */
  	if(ASIOCanSampleRate( asio_srate ) != ASE_OK)
--- 299,318 ----
  
  	/* todo: buffer size hardcoded to asio hardware */
! 	asio_bufsize = asio_maxbufsize; 
  
  #ifdef CALLBACK_SCHEDULER
! 	if ( asio_bufsize % sys_dacblocksize == 0 )
  	{
  		/* use callback scheduler */
  		sys_keepsched = 0;
  		sys_callbackscheduler = 1;
+ 		asio_ticks_per_callback = asio_bufsize / sys_dacblocksize;
+ 		post("ASIO: using callback-based scheduler");
  	}
+ 	else
+ 		post("ASIO: using traditional scheduler");
  #endif
! 	
! 	
  	/* set sample rate */
  	if(ASIOCanSampleRate( asio_srate ) != ASE_OK)
***************
*** 395,400 ****
  		ASIOGetChannelInfo(&asio_channelinfo[i]);
  
!         if (i < sys_outchannels) {
!             asio_converter[i] = asio_converter_send(asio_channelinfo[i].type);
              asio_out_samplewidth[i] = asio_samplewidth(asio_channelinfo[i].type);
          }
--- 403,413 ----
  		ASIOGetChannelInfo(&asio_channelinfo[i]);
  
! #ifdef ASIODEBUG
! 		post("ASIO: channel %d type %d", i, asio_channelinfo[i].type);
! #endif
! 
!         if (i < sys_outchannels) 
! 		{
!  			asio_converter[i] = asio_converter_send(asio_channelinfo[i].type);
              asio_out_samplewidth[i] = asio_samplewidth(asio_channelinfo[i].type);
          }
***************
*** 604,607 ****
--- 617,621 ----
  		return SENDDACS_NO;
  	}
+ 
  #endif
  
***************
*** 700,703 ****
--- 714,726 ----
  {
  	ASIOTime time;
+ #ifdef ASIODEBUG
+ 	static int written = 0;
+ 	if(written  == 0)
+ 	{
+ 		post("ASIO: asio_bufferSwitch_cb");
+ 		written = 1;
+ 	}
+ #endif
+ 
  	memset (&time, 0, sizeof (time));
  	/* todo: do we need to syncronize with other media ??? */
***************
*** 1228,1231 ****
--- 1251,1263 ----
  {
  	ASIOTime time;
+ #ifdef ASIODEBUG
+ 	static int written = 0;
+ 	if(written  == 0)
+ 	{
+ 		post("ASIO: asio_bufferSwitch_cb");
+ 		written = 1;
+ 	}
+ #endif
+ 
  	memset (&time, 0, sizeof (time));
  	/* todo: do we need to syncronize with other media ??? */
***************
*** 1255,1259 ****
  	sys_lock();
  	
! 	for (int j = 0; j < asio_bufsize; j += sys_dacblocksize)
  	{
  		/* get sounds from input channels */
--- 1287,1291 ----
  	sys_lock();
  	
! 	for (int j = 0; j != asio_ticks_per_callback; j++)
  	{
  		/* get sounds from input channels */





More information about the Pd-cvs mailing list