Changeset 4852:166a9cc557c9 in roaraudio for roard/hwmixer.c


Ignore:
Timestamp:
04/10/11 02:12:57 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

moved a lot stuff out of roard.c

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/hwmixer.c

    r4752 r4852  
    231231} 
    232232 
     233int hwmixer_add (char * drv, char * dev, char * opts, int prim, int count) { 
     234 char * basename = NULL; 
     235 char * subnames = NULL; 
     236 char * k, * v; 
     237 int basestream = streams_new(); 
     238 int ret; 
     239 int error = 0; 
     240//int hwmixer_open(int basestream, char * drv, char * dev, int fh, char * basename, char * subnames) { 
     241 
     242 if ( basestream == -1 ) 
     243  return -1; 
     244 
     245 client_stream_add(g_self_client, basestream); 
     246 
     247 if ( opts == NULL ) { 
     248  k = NULL; 
     249 } else { 
     250  k = strtok(opts, ","); 
     251 } 
     252 
     253 while (k != NULL) { 
     254//  ROAR_WARN("add_output(*): opts: %s", k); 
     255 
     256  if ( (v = strstr(k, "=")) != NULL ) { 
     257   *v++ = 0; 
     258  } 
     259 
     260  if ( strcmp(k, "primary") == 0 ) { 
     261   prim = 1; 
     262 
     263  } else if ( strcmp(k, "name") == 0 ) { 
     264   basename = v; 
     265  } else if ( strcmp(k, "subs") == 0 ) { 
     266   subnames = v; 
     267 
     268  } else if ( strcmp(k, "autoconf") == 0 ) { 
     269   streams_set_flag(basestream, ROAR_FLAG_AUTOCONF); 
     270  } else if ( strcmp(k, "passmixer") == 0 ) { 
     271   streams_set_flag(basestream, ROAR_FLAG_PASSMIXER); 
     272  } else { 
     273   ROAR_ERR("add_hwmixer(*): unknown option '%s'", k); 
     274   error++; 
     275  } 
     276 
     277  if ( error ) { 
     278   streams_delete(basestream); 
     279   if ( prim ) alive = 0; 
     280   return -1; 
     281  } 
     282 
     283  k = strtok(NULL, ","); 
     284 } 
     285 
     286 if ( prim ) { 
     287  streams_mark_primary(basestream); 
     288 } 
     289 
     290 ret = hwmixer_open(basestream, drv, dev, -1, basename, subnames); 
     291 
     292 if ( ret == -1 ) { 
     293  streams_delete(basestream); 
     294 } 
     295 
     296 return ret == -1 ? -1 : 0; 
     297} 
     298 
    233299#endif 
    234300 
Note: See TracChangeset for help on using the changeset viewer.