Home | History | Annotate | Download | only in usb

Lines Matching defs:mididev

122  * umidi(sc) -> endpoint -> jack   <- (dynamically assignable) - mididev
492 struct umidi_mididev *mididev = addr;
493 struct umidi_softc *sc = mididev->sc;
499 if (mididev->opened)
504 mididev->opened = 1;
505 mididev->flags = flags;
506 if ((mididev->flags & FWRITE) && mididev->out_jack) {
507 err = open_out_jack(mididev->out_jack, arg, ointr);
511 if ((mididev->flags & FREAD) && mididev->in_jack) {
512 err = open_in_jack(mididev->in_jack, arg, iintr);
513 KASSERT(mididev->opened);
516 if (mididev->out_jack)
517 close_out_jack(mididev->out_jack);
524 mididev->opened = 0;
533 struct umidi_mididev *mididev = addr;
534 struct umidi_softc *sc = mididev->sc;
538 if (mididev->closing)
541 mididev->closing = 1;
545 if ((mididev->flags & FWRITE) && mididev->out_jack)
546 close_out_jack(mididev->out_jack);
547 if ((mididev->flags & FREAD) && mididev->in_jack)
548 close_in_jack(mididev->in_jack);
553 mididev->opened = 0;
554 mididev->closing = 0;
561 struct umidi_mididev *mididev = addr;
563 KASSERT(mutex_owned(&mididev->sc->sc_lock));
565 if (!mididev->out_jack || !mididev->opened || mididev->closing)
568 return out_jack_output(mididev->out_jack, msg, len, (status>>4)&0xf);
574 struct umidi_mididev *mididev = addr;
577 KASSERT(mutex_owned(&mididev->sc->sc_lock));
579 if (!mididev->out_jack || !mididev->opened || mididev->closing)
589 return out_jack_output(mididev->out_jack, msg, len, cin);
595 struct umidi_mididev *mididev = addr;
598 KASSERT(mutex_owned(&mididev->sc->sc_lock));
600 if (!mididev->out_jack || !mididev->opened || mididev->closing)
610 return out_jack_output(mididev->out_jack, msg, len, cin);
616 struct umidi_mididev *mididev = addr;
619 KASSERT(mutex_owned(&mididev->sc->sc_lock));
621 if (!mididev->out_jack || !mididev->opened || mididev->closing)
624 return out_jack_output(mididev->out_jack, &msg, 1, 0xf);
630 struct umidi_mididev *mididev = addr;
631 struct umidi_softc *sc = mididev->sc;
636 mi->name = mididev->label;
638 if (mididev->in_jack)
646 struct umidi_mididev *mididev = addr;
647 struct umidi_softc *sc = mididev->sc;
1197 struct umidi_mididev *mididev)
1201 if (mididev->out_jack || mididev->in_jack)
1208 mididev->in_jack = in_jack;
1209 mididev->out_jack = out_jack;
1211 mididev->closing = 0;
1217 unbind_jacks_from_mididev(struct umidi_mididev *mididev)
1219 KASSERT(mutex_owned(&mididev->sc->sc_lock));
1221 mididev->closing = 1;
1223 if ((mididev->flags & FWRITE) && mididev->out_jack)
1224 close_out_jack(mididev->out_jack);
1225 if ((mididev->flags & FREAD) && mididev->in_jack)
1226 close_in_jack(mididev->in_jack);
1228 if (mididev->out_jack) {
1229 mididev->out_jack->bound = 0;
1230 mididev->out_jack = NULL;
1232 if (mididev->in_jack) {
1233 mididev->in_jack->bound = 0;
1234 mididev->in_jack = NULL;
1424 attach_mididev(struct umidi_softc *sc, struct umidi_mididev *mididev)
1426 if (mididev->sc)
1429 mididev->sc = sc;
1431 describe_mididev(mididev);
1433 mididev->mdev = midi_attach_mi(&umidi_hw_if, mididev, sc->sc_dev);
1439 detach_mididev(struct umidi_mididev *mididev, int flags)
1441 struct umidi_softc *sc = mididev->sc;
1447 if (mididev->opened) {
1448 umidi_close(mididev);
1450 unbind_jacks_from_mididev(mididev);
1453 if (mididev->mdev != NULL)
1454 config_detach(mididev->mdev, flags);
1456 if (NULL != mididev->label) {
1457 kmem_free(mididev->label, mididev->label_len);
1458 mididev->label = NULL;
1461 mididev->sc = NULL;
1467 deactivate_mididev(struct umidi_mididev *mididev)
1469 if (mididev->out_jack)
1470 mididev->out_jack->bound = 0;
1471 if (mididev->in_jack)
1472 mididev->in_jack->bound = 0;