Changeset 3764:2a2b1eb426c4 in roaraudio


Ignore:
Timestamp:
05/03/10 14:30:48 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added new buffer function roar_buffer_new_data() to make common alloc case more easy

Files:
9 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/buffer.h

    r3517 r3764  
    8080int roar_buffer_add      (struct roar_buffer *  buf, struct roar_buffer *  next); 
    8181 
     82int roar_buffer_new_data (struct roar_buffer ** buf, size_t len, void ** data); 
     83 
    8284int roar_buffer_ring_new (struct roar_buffer ** buf, size_t len, int free_running); 
    8385 
  • libroar/buffer.c

    r3517 r3764  
    3636#include "libroar.h" 
    3737 
     38// TODO: convert this to a macro. 
     39// TODO: but still provide a function->symbol 
     40// TODO: so we do not need to change SONAME-Version 
     41// TODO: Clean this up in next SONAME-Version 
    3842int roar_buffer_new      (struct roar_buffer ** buf, size_t len) { 
    39  void * data; 
    40  
    41  if ((data = roar_mm_malloc(len)) == NULL) { 
    42   return -1; 
    43  } 
    44  
    45  if ( roar_buffer_new_no_ma(buf, len, data) == -1 ) { 
    46   roar_mm_free(data); 
     43 return roar_buffer_new_data(buf, len, NULL); 
     44} 
     45 
     46int roar_buffer_new_data (struct roar_buffer ** buf, size_t len, void ** data) { 
     47 void * bufdata; 
     48 
     49 if ((bufdata = roar_mm_malloc(len)) == NULL) { 
     50  return -1; 
     51 } 
     52 
     53 if ( roar_buffer_new_no_ma(buf, len, bufdata) == -1 ) { 
     54  roar_mm_free(bufdata); 
    4755  return -1; 
    4856 } 
     
    5058 if ( roar_buffer_set_flag(*buf, ROAR_BUFFER_FLAG_NOFREE, ROAR_BUFFER_RESET) == -1 ) { 
    5159  roar_buffer_free(*buf); 
    52   roar_mm_free(data); 
    53   return -1; 
    54  } 
     60  roar_mm_free(bufdata); 
     61  return -1; 
     62 } 
     63 
     64 if ( data != NULL ) 
     65  *data = bufdata; 
    5566 
    5667 return 0; 
  • libroar/vio_pipe.c

    r3517 r3764  
    326326    } 
    327327 
    328     if ( roar_buffer_new(&next, count) == -1 ) 
    329      return -1; 
    330  
    331     if ( roar_buffer_get_data(next, &data) == -1 ) { 
    332      roar_buffer_free(next); 
    333      return -1; 
    334     } 
     328    if ( roar_buffer_new_data(&next, count, &data) == -1 ) 
     329     return -1; 
    335330 
    336331    memcpy(data, buf, count); 
  • libroar/vio_proto.c

    r3517 r3764  
    274274 calls->write = NULL; // Disable write as we do not support this 
    275275 
    276  if ( roar_buffer_new(&bufbuf, 1024) == -1 ) 
    277   return -1; 
    278  
    279  if ( roar_buffer_get_data(bufbuf, &buf) == -1 ) { 
    280   roar_buffer_free(bufbuf); 
    281   return -1; 
    282  } 
     276 if ( roar_buffer_new_data(&bufbuf, 1024, &buf) == -1 ) 
     277  return -1; 
    283278 
    284279 ROAR_DBG("roar_vio_open_proto_http(calls=%p, dst=%p, host='%s', file='%s') = ?", calls, dst, host, file); 
  • roard/beep.c

    r3630 r3764  
    7373 ROAR_DBG("beep_fill_buffer(beep=%p, info=%p) = ?", beep, info); 
    7474 
    75  if ( roar_buffer_new(&buf, samples) == -1 ) 
    76   return NULL; 
    77  
    78  if ( roar_buffer_get_data(buf, &data) == -1 ) { 
    79   roar_buffer_free(buf); 
     75 if ( roar_buffer_new_data(&buf, samples, &data) == -1 ) { 
    8076  ROAR_DBG("beep_fill_buffer(beep=%p, info=%p) = NULL", beep, info); 
    8177  return NULL; 
  • roard/codecfilter_fishsound.c

    r3517 r3764  
    5050 } 
    5151 
    52  if ( roar_buffer_new(&buf, frames*stream->info.bits*stream->info.channels/8) == -1 ) 
    53   return -1; 
    54  
    55  if ( roar_buffer_get_data(buf, &data.v) == -1 ) 
     52 if ( roar_buffer_new_data(&buf, frames*stream->info.bits*stream->info.channels/8, &data.v) == -1 ) 
    5653  return -1; 
    5754 
  • roard/midi.c

    r3594 r3764  
    157157 } 
    158158 
    159  if ( roar_buffer_new(&b, MIDI_READ_SIZE) == -1 ) { 
     159 if ( roar_buffer_new_data(&b, MIDI_READ_SIZE, (void**)&buf) == -1 ) { 
    160160  ROAR_ERR("midi_check_stream(*): Can not alloc buffer space!"); 
    161161  ROAR_DBG("midi_check_stream(*) = -1"); 
    162162  return -1; 
    163163 } 
    164  
    165  roar_buffer_get_data(b, (void **)&buf); 
    166164 
    167165 if ( (len = stream_vio_s_read(ss, buf, MIDI_READ_SIZE)) < 1 ) { 
     
    480478 *buf = (void*)(*mes = NULL); 
    481479 
    482  if ( roar_buffer_new(buf, sizeof(struct midi_message)) == -1 ) 
    483   return -1; 
    484  
    485  if ( roar_buffer_get_data(*buf, (void**)mes) == -1 ) { 
    486   roar_buffer_free(*buf); 
     480 if ( roar_buffer_new_data(buf, sizeof(struct midi_message), (void**)mes) == -1 ) { 
    487481  *buf = (void*)(*mes = NULL); 
    488482  return -1; 
  • roard/raw.c

    r3517 r3764  
    4545  return -1; 
    4646 
    47  if ( roar_buffer_new(&buf, RAW_READ_LEN) == -1 ) 
     47 if ( roar_buffer_new_data(&buf, RAW_READ_LEN, &data) == -1 ) 
    4848  return -1; 
    49  
    50  if ( roar_buffer_get_data(buf, &data) == -1 ) { 
    51   roar_buffer_free(buf); 
    52   return -1; 
    53  } 
    5449 
    5550 if ( (len = stream_vio_s_read(ss, data, RAW_READ_LEN)) < 1 ) { 
  • roard/req.c

    r3745 r3764  
    10341034 char               * buf; 
    10351035 
    1036  if ( roar_buffer_new(&b, mes->datalen) == -1 ) { 
     1036 if ( roar_buffer_new_data(&b, mes->datalen, (void **)&buf) == -1 ) { 
    10371037  ROAR_ERR("req_on_add_data(*): Can not alloc buffer space!"); 
    10381038  ROAR_DBG("req_on_add_data(*) = -1"); 
    10391039  return -1; 
    10401040 } 
    1041  
    1042  roar_buffer_get_data(b, (void **)&buf); 
    10431041 
    10441042 if ( data == NULL ) { 
Note: See TracChangeset for help on using the changeset viewer.