Changeset 2338:b1d9b2ec61cf in roaraudio


Ignore:
Timestamp:
08/13/09 19:58:56 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

use lookup table for dir names

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/stream.h

    r2323 r2338  
    4747 
    4848char * roar_dir2str (int dir); 
     49int    roar_str2dir (char * name); 
    4950 
    5051/* 
  • libroar/stream.c

    r2332 r2338  
    527527*/ 
    528528 
     529struct { 
     530 int    dir; 
     531 char * name; 
     532} _libroar_dir[] = { 
     533 {ROAR_DIR_PLAY,      "play"     }, 
     534 {ROAR_DIR_RECORD,    "record"   }, 
     535 {ROAR_DIR_MONITOR,   "monitor"  }, 
     536 {ROAR_DIR_FILTER,    "filter"   }, 
     537 {ROAR_DIR_OUTPUT,    "output"   }, 
     538 {ROAR_DIR_MIXING,    "mixing"   }, 
     539 {ROAR_DIR_META,      "meta"     }, 
     540 {ROAR_DIR_BIDIR,     "bidir"    }, 
     541 {ROAR_DIR_THRU,      "thru"     }, 
     542 {ROAR_DIR_BRIDGE,    "bridge"   }, 
     543 {ROAR_DIR_MIDI_IN,   "midi_in"  }, 
     544 {ROAR_DIR_MIDI_OUT,  "midi_out" }, 
     545 {ROAR_DIR_LIGHT_IN,  "light_in" }, 
     546 {ROAR_DIR_LIGHT_OUT, "light_out"}, 
     547 {ROAR_DIR_RAW_IN,    "raw_in"   }, 
     548 {ROAR_DIR_RAW_OUT,   "raw_out"  }, 
     549 {-1,                 "unknown"  } 
     550}; 
     551 
    529552char * roar_dir2str (int dir) { 
    530  switch (dir) { 
    531   case ROAR_DIR_PLAY: 
    532     return "play"; 
    533    break; 
    534   case ROAR_DIR_RECORD: 
    535     return "record"; 
    536    break; 
    537   case ROAR_DIR_MONITOR: 
    538     return "monitor"; 
    539    break; 
    540   case ROAR_DIR_FILTER: 
    541     return "filter"; 
    542    break; 
    543   case ROAR_DIR_OUTPUT: 
    544     return "output"; 
    545    break; 
    546   case ROAR_DIR_MIXING: 
    547     return "mixing"; 
    548    break; 
    549   case ROAR_DIR_META: 
    550     return "meta"; 
    551    break; 
    552   case ROAR_DIR_BIDIR: 
    553     return "bidir"; 
    554    break; 
    555   case ROAR_DIR_THRU: 
    556     return "thru"; 
    557    break; 
    558   case ROAR_DIR_BRIDGE: 
    559     return "bridge"; 
    560    break; 
    561   case ROAR_DIR_MIDI_IN: 
    562     return "midi_in"; 
    563    break; 
    564   case ROAR_DIR_MIDI_OUT: 
    565     return "midi_out"; 
    566    break; 
    567   case ROAR_DIR_LIGHT_IN: 
    568     return "light_in"; 
    569    break; 
    570   case ROAR_DIR_LIGHT_OUT: 
    571     return "light_out"; 
    572    break; 
    573   case ROAR_DIR_RAW_IN: 
    574     return "raw_in"; 
    575    break; 
    576   case ROAR_DIR_RAW_OUT: 
    577     return "raw_out"; 
    578    break; 
    579   default: 
    580     return "unknown"; 
    581  } 
     553 int i; 
     554 
     555 for (i = 0; _libroar_dir[i].dir != -1; i++) 
     556  if ( _libroar_dir[i].dir == dir ) 
     557   return _libroar_dir[i].name; 
     558 
     559 return _libroar_dir[i].name; 
     560} 
     561 
     562int roar_str2dir (char * name) { 
     563 int i; 
     564 
     565 for (i = 0; _libroar_dir[i].dir != -1; i++) 
     566  if ( !strcmp(_libroar_dir[i].name, name) ) 
     567   return _libroar_dir[i].dir; 
     568 
     569 return _libroar_dir[i].dir; 
    582570} 
    583571 
Note: See TracChangeset for help on using the changeset viewer.