Changeset 1853:345470a7b87b in roaraudio


Ignore:
Timestamp:
05/23/09 11:01:50 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added struct g_midi_cb with all CB things

Location:
roard
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • roard/include/midi.h

    r1852 r1853  
    7575 
    7676 
    77 int g_console; 
    78 int g_midi_cb_stream; 
    79  
    80 uint32_t g_midi_cb_stoptime; 
    81 int      g_midi_cb_playing; 
     77struct { 
     78 int      console; 
     79 int      stream; 
     80 uint32_t stoptime; 
     81 int      playing; 
     82} g_midi_cb; 
    8283 
    8384struct { 
  • roard/midi.c

    r1851 r1853  
    202202                  }; 
    203203 
    204  g_console          = -1; 
    205  g_midi_cb_stream   = -1; 
    206  g_midi_cb_stoptime =  0; 
    207  g_midi_cb_playing  =  0; 
     204 g_midi_cb.console  = -1; 
     205 g_midi_cb.stream   = -1; 
     206 g_midi_cb.stoptime =  0; 
     207 g_midi_cb.playing  =  0; 
    208208 
    209209 for (i = 0; files[i] != NULL; i++) { 
    210   if ( (g_console = open(files[i], O_WRONLY|O_NOCTTY, 0)) != -1 ) 
     210  if ( (g_midi_cb.console = open(files[i], O_WRONLY|O_NOCTTY, 0)) != -1 ) 
    211211   break; 
    212212 } 
    213213 
    214  if ( g_console == -1 ) 
    215   return -1; 
    216  
    217  if ( (g_midi_cb_stream = streams_new()) == -1 ) { 
     214 if ( g_midi_cb.console == -1 ) 
     215  return -1; 
     216 
     217 if ( (g_midi_cb.stream = streams_new()) == -1 ) { 
    218218  ROAR_WARN("Error while initializing MIDI subsystem component CB"); 
    219219  midi_cb_free(); 
     
    221221 } 
    222222 
    223  midi_vio_set_dummy(g_midi_cb_stream); 
    224  
    225  streams_get(g_midi_cb_stream, &ss); 
     223 midi_vio_set_dummy(g_midi_cb.stream); 
     224 
     225 streams_get(g_midi_cb.stream, &ss); 
    226226 s = ROAR_STREAM(ss); 
    227227 
     
    237237 s->info.bits     =  8; 
    238238 
    239  if ( streams_set_dir(g_midi_cb_stream, ROAR_DIR_BRIDGE, 1) == -1 ) { 
     239 if ( streams_set_dir(g_midi_cb.stream, ROAR_DIR_BRIDGE, 1) == -1 ) { 
    240240  ROAR_WARN("Error while initializing MIDI subsystem component CB"); 
    241241  midi_cb_free(); 
     
    243243 } 
    244244 
    245  streams_set_name(g_midi_cb_stream, "Console speaker bridge"); 
    246  
    247  streams_set_flag(g_midi_cb_stream, ROAR_FLAG_OUTPUT); 
    248  streams_set_flag(g_midi_cb_stream, ROAR_FLAG_PRIMARY); 
    249  streams_set_flag(g_midi_cb_stream, ROAR_FLAG_HWMIXER); 
     245 streams_set_name(g_midi_cb.stream, "Console speaker bridge"); 
     246 
     247 streams_set_flag(g_midi_cb.stream, ROAR_FLAG_OUTPUT); 
     248 streams_set_flag(g_midi_cb.stream, ROAR_FLAG_PRIMARY); 
     249 streams_set_flag(g_midi_cb.stream, ROAR_FLAG_HWMIXER); 
    250250 
    251251 return 0; 
    252252#else 
    253  g_console          = -1; 
    254  g_midi_cb_stream   = -1; 
     253 g_midi_cb.console  = -1; 
     254 g_midi_cb.stream   = -1; 
    255255 
    256256 return -1; 
     
    263263 midi_cb_stop(); 
    264264 
    265  if ( g_midi_cb_stream != -1 ) 
    266   streams_delete(g_midi_cb_stream); 
    267  
    268  if ( g_console != -1 ) 
    269   close(g_console); 
     265 if ( g_midi_cb.stream != -1 ) 
     266  streams_delete(g_midi_cb.stream); 
     267 
     268 if ( g_midi_cb.console != -1 ) 
     269  close(g_midi_cb.console); 
    270270 
    271271 return 0; 
     
    282282#define MIDI_CB_OVERRIDE   1 
    283283*/ 
    284  if ( g_midi_cb_playing && override != MIDI_CB_OVERRIDE ) 
    285   return -1; 
    286  
    287  g_midi_cb_stoptime = ROAR_MATH_OVERFLOW_ADD(g_pos, samples_per_sec*t); 
     284 if ( g_midi_cb.playing && override != MIDI_CB_OVERRIDE ) 
     285  return -1; 
     286 
     287 g_midi_cb.stoptime = ROAR_MATH_OVERFLOW_ADD(g_pos, samples_per_sec*t); 
    288288 midi_cb_start(freq); 
    289  g_midi_cb_playing = 1; 
     289 g_midi_cb.playing = 1; 
    290290 
    291291 return 0; 
     
    293293 
    294294int midi_cb_update (void) { 
    295  if ( !g_midi_cb_playing ) 
     295 if ( !g_midi_cb.playing ) 
    296296  return 0; 
    297297 
    298  if ( g_midi_cb_stoptime <= g_pos ) 
     298 if ( g_midi_cb.stoptime <= g_pos ) 
    299299  midi_cb_stop(); 
    300300 
     
    305305// On linux this uses ioctl KIOCSOUND 
    306306#ifdef __linux__ 
    307  if ( g_console == -1 ) 
    308   return -1; 
    309  
    310  if ( ioctl(g_console, KIOCSOUND, freq == 0 ? 0 : (int)(1193180.0/freq)) == -1 ) 
     307 if ( g_midi_cb.console == -1 ) 
     308  return -1; 
     309 
     310 if ( ioctl(g_midi_cb.console, KIOCSOUND, freq == 0 ? 0 : (int)(1193180.0/freq)) == -1 ) 
    311311  return -1; 
    312312 
     
    319319int midi_cb_stop (void) { 
    320320#ifdef __linux__ 
    321  g_midi_cb_playing = 0; 
     321 g_midi_cb.playing = 0; 
    322322 return midi_cb_start(0); 
    323323#else 
Note: See TracChangeset for help on using the changeset viewer.