Changeset 2470:ef14b4f74171 in roaraudio


Ignore:
Timestamp:
08/22/09 03:32:58 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

create, fill and add an output buffer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/ssynth.c

    r2469 r2470  
    103103 struct roar_stream        *  s; 
    104104 struct roar_buffer        * buf; 
     105 struct roar_buffer        * outbuf; 
     106 void                      * outbufdata; 
     107 void                      * indbufs[SSYNTH_NOTES_MAX+1]; 
     108 int                         curin = 0; 
    105109 size_t buflen; 
    106110 size_t needlen; 
     
    113117  return -1; 
    114118 } 
     119 
     120 memset(indbufs, 0, sizeof(indbufs)); 
    115121 
    116122 s = ROAR_STREAM(ss); 
     
    136142    } 
    137143   } 
    138   } 
    139  } 
    140  
    141  return -1; 
     144 
     145   if ( roar_buffer_get_data(buf, &(indbufs[curin])) == -1 ) 
     146    continue; 
     147 
     148   curin++; 
     149  } 
     150 } 
     151 
     152 if ( curin > 0 ) { 
     153  if ( roar_buffer_new(&outbuf, needlen) == -1 ) 
     154   return -1; 
     155 
     156  if ( roar_buffer_get_data(outbuf, &outbufdata) == -1 ) { 
     157   roar_buffer_free(outbuf); 
     158   return -1; 
     159  } 
     160 
     161  if ( mix_clients(outbufdata, g_sa->bits, indbufs, ROAR_OUTPUT_BUFFER_SAMPLES) == -1 ) { 
     162   roar_buffer_free(outbuf); 
     163   return -1; 
     164  } 
     165 
     166  if ( stream_add_buffer(g_ssynth.stream, outbuf) == -1 ) { 
     167   roar_buffer_free(outbuf); 
     168   return -1; 
     169  } 
     170 } 
     171 
     172 return 0; 
    142173} 
    143174 
Note: See TracChangeset for help on using the changeset viewer.