Lines Matching defs:mdev

58 static int send_midi_event(struct seq_oss_devinfo *dp, struct snd_seq_event *ev, struct seq_oss_midi *mdev);
92 struct seq_oss_midi *mdev;
96 mdev = midi_devs[dev];
97 if (mdev)
98 snd_use_lock_use(&mdev->use_lock);
100 return mdev;
110 struct seq_oss_midi *mdev;
115 mdev = midi_devs[i];
116 if (mdev && mdev->client == client && mdev->port == port) {
118 snd_use_lock_use(&mdev->use_lock);
120 return mdev;
137 struct seq_oss_midi *mdev;
151 mdev = find_slot(pinfo->addr.client, pinfo->addr.port);
152 if (mdev) {
154 snd_use_lock_free(&mdev->use_lock);
161 mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
162 if (!mdev)
166 mdev->client = pinfo->addr.client;
167 mdev->port = pinfo->addr.port;
168 mdev->flags = pinfo->capability;
169 mdev->opened = 0;
170 snd_use_lock_init(&mdev->use_lock);
171 mutex_init(&mdev->open_mutex);
174 strscpy(mdev->name, pinfo->name, sizeof(mdev->name));
177 if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &mdev->coder) < 0) {
179 kfree(mdev);
183 snd_midi_event_no_status(mdev->coder, 1);
196 snd_midi_event_free(mdev->coder);
197 kfree(mdev);
202 mdev->seq_device = i;
203 midi_devs[mdev->seq_device] = mdev;
215 struct seq_oss_midi *mdev;
219 mdev = find_slot(client, port);
220 if (mdev) {
222 midi_devs[mdev->seq_device] = NULL;
224 snd_use_lock_free(&mdev->use_lock);
225 snd_use_lock_sync(&mdev->use_lock);
226 snd_midi_event_free(mdev->coder);
227 kfree(mdev);
247 struct seq_oss_midi *mdev;
252 mdev = midi_devs[i];
253 if (mdev) {
254 snd_midi_event_free(mdev->coder);
255 kfree(mdev);
320 struct seq_oss_midi *mdev;
324 mdev = get_mididev(dp, dev);
325 if (!mdev)
328 mutex_lock(&mdev->open_mutex);
330 if (mdev->opened && mdev->devinfo != dp) {
340 perm &= mdev->flags;
347 if ((mdev->opened & perm) == perm) {
352 perm &= ~mdev->opened;
358 subs.dest.client = mdev->client;
359 subs.dest.port = mdev->port;
361 mdev->opened |= PERM_WRITE;
364 subs.sender.client = mdev->client;
365 subs.sender.port = mdev->port;
370 mdev->opened |= PERM_READ;
373 if (! mdev->opened) {
378 mdev->devinfo = dp;
382 mutex_unlock(&mdev->open_mutex);
383 snd_use_lock_free(&mdev->use_lock);
393 struct seq_oss_midi *mdev;
396 mdev = get_mididev(dp, dev);
397 if (!mdev)
399 mutex_lock(&mdev->open_mutex);
400 if (!mdev->opened || mdev->devinfo != dp)
404 if (mdev->opened & PERM_WRITE) {
406 subs.dest.client = mdev->client;
407 subs.dest.port = mdev->port;
410 if (mdev->opened & PERM_READ) {
411 subs.sender.client = mdev->client;
412 subs.sender.port = mdev->port;
417 mdev->opened = 0;
418 mdev->devinfo = NULL;
421 mutex_unlock(&mdev->open_mutex);
422 snd_use_lock_free(&mdev->use_lock);
432 struct seq_oss_midi *mdev;
435 mdev = get_mididev(dp, dev);
436 if (!mdev)
440 if (mdev->opened & PERM_WRITE)
442 if (mdev->opened & PERM_READ)
445 snd_use_lock_free(&mdev->use_lock);
456 struct seq_oss_midi *mdev;
458 mdev = get_mididev(dp, dev);
459 if (!mdev)
461 if (! mdev->opened) {
462 snd_use_lock_free(&mdev->use_lock);
466 if (mdev->opened & PERM_WRITE) {
471 ev.dest.client = mdev->client;
472 ev.dest.port = mdev->port;
495 snd_use_lock_free(&mdev->use_lock);
505 struct seq_oss_midi *mdev;
507 mdev = get_mididev(dp, dev);
508 if (!mdev)
510 addr->client = mdev->client;
511 addr->port = mdev->port;
512 snd_use_lock_free(&mdev->use_lock);
523 struct seq_oss_midi *mdev;
528 mdev = find_slot(ev->source.client, ev->source.port);
529 if (!mdev)
531 if (! (mdev->opened & PERM_READ)) {
532 snd_use_lock_free(&mdev->use_lock);
537 rc = send_synth_event(dp, ev, mdev->seq_device);
539 rc = send_midi_event(dp, ev, mdev);
541 snd_use_lock_free(&mdev->use_lock);
610 send_midi_event(struct seq_oss_devinfo *dp, struct snd_seq_event *ev, struct seq_oss_midi *mdev)
619 snd_seq_oss_readq_sysex(dp->readq, mdev->seq_device, ev);
620 snd_midi_event_reset_decode(mdev->coder);
622 len = snd_midi_event_decode(mdev->coder, msg, sizeof(msg), ev);
624 snd_seq_oss_readq_puts(dp->readq, mdev->seq_device, msg, len);
639 struct seq_oss_midi *mdev;
641 mdev = get_mididev(dp, dev);
642 if (!mdev)
644 if (snd_midi_event_encode_byte(mdev->coder, c, ev)) {
645 snd_seq_oss_fill_addr(dp, ev, mdev->client, mdev->port);
646 snd_use_lock_free(&mdev->use_lock);
649 snd_use_lock_free(&mdev->use_lock);
659 struct seq_oss_midi *mdev;
661 mdev = get_mididev(dp, dev);
662 if (!mdev)
667 strscpy(inf->name, mdev->name, sizeof(inf->name));
668 snd_use_lock_free(&mdev->use_lock);
695 struct seq_oss_midi *mdev;
700 mdev = get_mdev(i);
701 if (mdev == NULL) {
705 snd_iprintf(buf, "[%s] ALSA port %d:%d\n", mdev->name,
706 mdev->client, mdev->port);
708 capmode_str(mdev->flags),
709 capmode_str(mdev->opened));
710 snd_use_lock_free(&mdev->use_lock);