Changeset 2990:24fadf8a2fd3 in roaraudio for libroardsp


Ignore:
Timestamp:
10/26/09 13:10:04 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for roardsp_filter_new() and roardsp_filter_free()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroardsp/filter.c

    r1587 r2990  
    8484} 
    8585 
     86int    roardsp_filter_new   (struct roardsp_filter ** filter, struct roar_stream * stream, int id) { 
     87 struct roardsp_filter * n; 
     88 int ret; 
     89 
     90 if ( filter == NULL || stream == NULL ) 
     91  return -1; 
     92 
     93 *filter = NULL; // just to be sure 
     94 
     95 n = roar_mm_malloc(sizeof(struct roardsp_filter)); 
     96 
     97 if ( n == NULL ) 
     98  return -1; 
     99 
     100 if ( (ret = roardsp_filter_init(n, stream, id)) == -1 ) { 
     101  roar_mm_free(n); 
     102  return -1; 
     103 } 
     104 
     105 n->flags |= ROARDSP_FFLAG_FREE; 
     106 
     107 *filter = n; 
     108 
     109 return ret; 
     110} 
     111 
    86112int roardsp_filter_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id) { 
    87113 struct _roardsp_filterlist * l = _roardsp_filterlist; 
     
    145171  ret = filter->uninit(filter); 
    146172 
    147  memset(filter, 0, sizeof(struct roardsp_filter)); 
     173 if ( filter->flags & ROARDSP_FFLAG_FREE ) { 
     174  roar_mm_free(filter); 
     175 } else  { 
     176  memset(filter, 0, sizeof(struct roardsp_filter)); 
     177 } 
    148178 
    149179 return ret; 
Note: See TracChangeset for help on using the changeset viewer.