• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/alsa-lib-1.0.26/src/rawmidi/

Lines Matching refs:virt

64 	snd_rawmidi_virtual_t *virt = rmidi->private_data;
65 virt->open--;
66 if (virt->open)
68 snd_seq_close(virt->handle);
69 if (virt->midi_event)
70 snd_midi_event_free(virt->midi_event);
71 free(virt);
77 snd_rawmidi_virtual_t *virt = rmidi->private_data;
79 return snd_seq_nonblock(virt->handle, nonblock);
84 // snd_rawmidi_virtual_t *virt = rmidi->private_data;
100 static int snd_rawmidi_virtual_input_params(snd_rawmidi_virtual_t *virt, snd_rawmidi_params_t *params)
109 if (params->buffer_size != snd_seq_get_input_buffer_size(virt->handle)) {
110 err = snd_seq_set_input_buffer_size(virt->handle, params->buffer_size);
113 params->buffer_size = snd_seq_get_input_buffer_size(virt->handle);
120 static int snd_rawmidi_virtual_output_params(snd_rawmidi_virtual_t *virt, snd_rawmidi_params_t *params)
129 if (params->buffer_size != snd_seq_get_output_buffer_size(virt->handle)) {
130 err = snd_seq_set_output_buffer_size(virt->handle, params->buffer_size);
133 params->buffer_size = snd_seq_get_output_buffer_size(virt->handle);
141 snd_rawmidi_virtual_t *virt = rmidi->private_data;
145 return snd_rawmidi_virtual_input_params(virt, params);
147 return snd_rawmidi_virtual_output_params(virt, params);
152 // snd_rawmidi_virtual_t *virt = rmidi->private_data;
160 snd_rawmidi_virtual_t *virt = rmidi->private_data;
162 snd_seq_drop_output(virt->handle);
163 snd_midi_event_reset_encode(virt->midi_event);
164 virt->pending = 0;
166 snd_seq_drop_input(virt->handle);
167 snd_midi_event_reset_decode(virt->midi_event);
168 virt->in_buf_ofs = 0;
175 snd_rawmidi_virtual_t *virt = rmidi->private_data;
179 if (virt->pending) {
180 err = snd_seq_event_output(virt->handle, &virt->out_event);
183 virt->pending = 0;
185 snd_seq_drain_output(virt->handle);
186 snd_seq_sync_output_queue(virt->handle);
193 snd_rawmidi_virtual_t *virt = rmidi->private_data;
198 if (virt->pending) {
199 err = snd_seq_event_output(virt->handle, &virt->out_event);
205 virt->pending = 0;
208 virt->pending = 0;
212 size1 = snd_midi_event_encode(virt->midi_event, buffer, size, &virt->out_event);
218 if (virt->out_event.type == SND_SEQ_EVENT_NONE)
220 snd_seq_ev_set_subs(&virt->out_event);
221 snd_seq_ev_set_source(&virt->out_event, virt->port);
222 snd_seq_ev_set_direct(&virt->out_event);
223 err = snd_seq_event_output(virt->handle, &virt->out_event);
225 virt->pending = 1;
231 snd_seq_drain_output(virt->handle);
238 snd_rawmidi_virtual_t *virt = rmidi->private_data;
243 if (! virt->in_buf_ofs) {
244 err = snd_seq_event_input_pending(virt->handle, 1);
247 err = snd_seq_event_input(virt->handle, &virt->in_event);
251 if (virt->in_event->type == SND_SEQ_EVENT_SYSEX) {
252 virt->in_buf_ptr = virt->in_event->data.ext.ptr;
253 virt->in_buf_size = virt->in_event->data.ext.len;
255 virt->in_buf_ptr = virt->in_tmp_buf;
256 virt->in_buf_size = snd_midi_event_decode(virt->midi_event,
257 (unsigned char *)virt->in_tmp_buf,
258 sizeof(virt->in_tmp_buf),
259 virt->in_event);
261 if (virt->in_buf_size <= 0)
264 size1 = virt->in_buf_size - virt->in_buf_ofs;
266 virt->in_buf_ofs += size1 - size;
267 memcpy(buffer, virt->in_buf_ptr, size);
271 memcpy(buffer, virt->in_buf_ptr + virt->in_buf_ofs, size1);
275 virt->in_buf_ofs = 0;
319 snd_rawmidi_virtual_t *virt = NULL;
327 virt = calloc(1, sizeof(*virt));
328 if (virt == NULL) {
332 virt->handle = seq_handle;
333 virt->port = port;
334 err = snd_midi_event_new(256, &virt->midi_event);
337 snd_midi_event_init(virt->midi_event);
338 snd_midi_event_no_status(virt->midi_event, !merge);
356 rmidi->private_data = virt;
357 virt->open++;
376 rmidi->private_data = virt;
377 virt->open++;
386 if (virt) {
387 if (virt->midi_event)
388 snd_midi_event_free(virt->midi_event);
389 free(virt);