Changeset 1848:eaba1872ebfd in roaraudio
- Timestamp:
- 05/23/09 07:21:35 (15 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/include/midi.h
r1843 r1848 36 36 #define MIDI_CB_OVERRIDE 1 37 37 38 #define MIDI_RATE 31250 39 38 40 int g_console; 39 41 int g_midi_cb_stream; 40 42 41 43 uint32_t g_midi_cb_stoptime; 42 int g_midi_cb_playing; 44 int g_midi_cb_playing; 45 46 int g_midi_clock_stream; 43 47 44 48 int midi_init (void); … … 50 54 int midi_send_stream (int id); 51 55 56 int midi_check_bridge (int id); 57 58 int midi_clock_init (void); 59 52 60 // cb = console beep 53 61 int midi_cb_init(void); … … 58 66 int midi_cb_stop (void); 59 67 68 // dummys: 69 int midi_vio_set_dummy(int stream); 70 int midi_vio_ok(struct roar_vio_calls * vio, ...); 71 60 72 #endif 61 73 -
roard/midi.c
r1847 r1848 35 35 } 36 36 37 return 0; 38 } 37 if ( midi_clock_init() == -1 ) { 38 ROAR_WARN("Can not initialize MIDI subsystem component clock"); 39 } 40 41 return 0; 42 } 43 39 44 int midi_free (void) { 40 45 return midi_cb_free(); … … 42 47 43 48 int midi_update(void) { 49 50 if ( g_midi_clock_stream != -1 ) 51 midi_check_bridge(g_midi_clock_stream); 52 44 53 return midi_cb_update(); 45 54 } … … 57 66 58 67 s = ROAR_STREAM(ss = g_streams[id]); 68 69 if ( s->dir == ROAR_DIR_BRIDGE ) 70 return midi_check_bridge(id); 59 71 60 72 switch (s->info.codec) { … … 83 95 return -1; 84 96 } 97 98 return 0; 99 } 100 101 // bridges: 102 int midi_check_bridge (int id) { 103 return -1; 104 } 105 106 // clock: 107 108 int midi_clock_init (void) { 109 struct roar_stream * s; 110 struct roar_stream_server * ss; 111 112 if ( (g_midi_clock_stream = streams_new()) == -1 ) { 113 ROAR_WARN("Error while initializing MIDI subsystem component clock"); 114 return -1; 115 } 116 117 midi_vio_set_dummy(g_midi_clock_stream); 118 119 streams_get(g_midi_clock_stream, &ss); 120 s = ROAR_STREAM(ss); 121 122 memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info)); 123 124 s->pos_rel_id = g_midi_clock_stream; 125 126 s->info.codec = ROAR_CODEC_MIDI; 127 ss->codec_orgi = ROAR_CODEC_MIDI; 128 129 s->info.channels = 0; 130 s->info.rate = MIDI_RATE; 131 s->info.bits = 8; 132 133 if ( streams_set_dir(g_midi_clock_stream, ROAR_DIR_BRIDGE, 1) == -1 ) { 134 ROAR_WARN("Error while initializing MIDI subsystem component clock"); 135 return -1; 136 } 137 138 streams_set_name(g_midi_clock_stream, "MIDI Clock"); 139 140 streams_set_flag(g_midi_clock_stream, ROAR_FLAG_PRIMARY); 141 streams_set_flag(g_midi_clock_stream, ROAR_FLAG_SYNC); 85 142 86 143 return 0; … … 122 179 } 123 180 181 midi_vio_set_dummy(g_midi_cb_stream); 182 124 183 streams_get(g_midi_cb_stream, &ss); 125 184 s = ROAR_STREAM(ss); … … 225 284 } 226 285 286 // VIO: 287 288 int midi_vio_set_dummy(int stream) { 289 struct roar_stream_server * ss; 290 291 if ( streams_get(stream, &ss) == -1 ) 292 return -1; 293 294 ss->vio.read = NULL; 295 ss->vio.write = NULL; 296 ss->vio.lseek = NULL; 297 ss->vio.nonblock = midi_vio_ok; 298 ss->vio.sync = midi_vio_ok; 299 ss->vio.ctl = NULL; 300 ss->vio.close = midi_vio_ok; 301 } 302 303 int midi_vio_ok(struct roar_vio_calls * vio, ...) { 304 return 0; 305 } 306 227 307 //ll -
roard/req.c
r1842 r1848 118 118 119 119 break; 120 case ROAR_DIR_MIDI_IN: 121 case ROAR_DIR_MIDI_OUT: 122 info = &(ROAR_STREAM(s)->info); 123 124 info->channels = 16; 125 info->bits = 8; 126 info->rate = MIDI_RATE; 127 128 break; 129 120 130 case ROAR_DIR_THRU: 121 131
Note: See TracChangeset
for help on using the changeset viewer.