Lines Matching refs:midiDevice
81 usbmidi_device_info* midiDevice = NULL; in create_device() local
91 midiDevice = (usbmidi_device_info*)malloc(sizeof(usbmidi_device_info)); in create_device()
92 if (midiDevice == NULL) in create_device()
95 midiDevice->sem_lock = sem = create_sem(1, DRIVER_NAME "_lock"); in create_device()
98 free(midiDevice); in create_device()
103 midiDevice->buffer_area = area = create_area(area_name, in create_device()
104 (void**)&midiDevice->buffer, B_ANY_KERNEL_ADDRESS, in create_device()
108 delete_sem(midiDevice->sem_lock); in create_device()
109 free(midiDevice); in create_device()
113 midiDevice->out_buffer = in create_device()
114 (usb_midi_event_packet*)((uint8*)midiDevice->buffer + B_PAGE_SIZE / 2); in create_device()
115 midiDevice->sem_send = sem = create_sem(1, DRIVER_NAME "_send"); in create_device()
118 delete_sem(midiDevice->sem_lock); in create_device()
120 free(midiDevice); in create_device()
130 sprintf(midiDevice->name, "%s%d", midi_base_name, number); in create_device()
131 midiDevice->dev = dev; in create_device()
132 midiDevice->devnum = number; in create_device()
133 midiDevice->ifno = ifno; in create_device()
134 midiDevice->active = true; in create_device()
135 midiDevice->flags = 0; in create_device()
136 memset(midiDevice->ports, 0, sizeof(midiDevice->ports)); in create_device()
137 midiDevice->inMaxPkt = midiDevice->outMaxPkt = B_PAGE_SIZE / 2; in create_device()
139 DPRINTF_INFO((MY_ID "Created device %p\n", midiDevice)); in create_device()
141 return midiDevice; in create_device()
146 remove_device(usbmidi_device_info* midiDevice) in remove_device() argument
148 assert(midiDevice != NULL); in remove_device()
149 DPRINTF_INFO((MY_ID "remove_device %p\n", midiDevice)); in remove_device()
151 delete_area(midiDevice->buffer_area); in remove_device()
152 delete_sem(midiDevice->sem_lock); in remove_device()
153 delete_sem(midiDevice->sem_send); in remove_device()
154 free(midiDevice); in remove_device()
198 interpret_midi_buffer(usbmidi_device_info* midiDevice) in interpret_midi_buffer() argument
200 usb_midi_event_packet* packet = midiDevice->buffer; in interpret_midi_buffer()
201 size_t bytes_left = midiDevice->actual_length; in interpret_midi_buffer()
210 usbmidi_port_info* port = midiDevice->ports[packet->cn]; in interpret_midi_buffer()
240 usbmidi_device_info* midiDevice = (usbmidi_device_info*)cookie; in midi_usb_read_callback() local
248 acquire_sem(midiDevice->sem_lock); in midi_usb_read_callback()
249 midiDevice->actual_length = actual_len; in midi_usb_read_callback()
250 midiDevice->bus_status = status; /* B_USB_STATUS_* */ in midi_usb_read_callback()
254 if (status == B_CANCELED || !midiDevice->active) { in midi_usb_read_callback()
258 status, midiDevice->active)); in midi_usb_read_callback()
262 usbmidi_port_info* port = midiDevice->ports[cable]; in midi_usb_read_callback()
268 release_sem(midiDevice->sem_lock); in midi_usb_read_callback()
271 release_sem(midiDevice->sem_lock); in midi_usb_read_callback()
274 midiDevice->timestamp = system_time(); /* not used... */ in midi_usb_read_callback()
276 interpret_midi_buffer(midiDevice); in midi_usb_read_callback()
277 release_sem(midiDevice->sem_lock); in midi_usb_read_callback()
281 st = usb->queue_bulk(midiDevice->ept_in->handle, in midi_usb_read_callback()
282 midiDevice->buffer, midiDevice->inMaxPkt, in midi_usb_read_callback()
283 (usb_callback_func)midi_usb_read_callback, midiDevice); in midi_usb_read_callback()
295 usbmidi_device_info* midiDevice = (usbmidi_device_info*)cookie; in midi_usb_write_callback() local
304 release_sem(midiDevice->sem_send); /* done with buffer */ in midi_usb_write_callback()
371 usbmidi_device_info* midiDevice; in usb_midi_added() local
372 if ((midiDevice = create_device(dev, ifno)) == NULL) { in usb_midi_added()
390 midiDevice, intf->endpoint_count)); in usb_midi_added()
391 midiDevice->ept_in = midiDevice->ept_out = NULL; in usb_midi_added()
400 if (midiDevice->ept_in == NULL) { in usb_midi_added()
401 midiDevice->ept_in = &intf->endpoint[i]; in usb_midi_added()
404 < midiDevice->inMaxPkt) in usb_midi_added()
405 midiDevice->inMaxPkt = intf->endpoint[i].descr->max_packet_size; in usb_midi_added()
408 if (midiDevice->ept_out == NULL) { in usb_midi_added()
409 midiDevice->ept_out = &intf->endpoint[i]; in usb_midi_added()
412 < midiDevice->outMaxPkt) in usb_midi_added()
413 midiDevice->outMaxPkt = intf->endpoint[i].descr->max_packet_size; in usb_midi_added()
418 midiDevice->timestamp = system_time(); /* This never seems to be used */ in usb_midi_added()
423 port = create_usbmidi_port(midiDevice, i, in usb_midi_added()
425 midiDevice->ports[i] = port; in usb_midi_added()
434 if (midiDevice->ept_in != NULL) { in usb_midi_added()
436 status = usb->queue_bulk(midiDevice->ept_in->handle, midiDevice->buffer, in usb_midi_added()
437 midiDevice->inMaxPkt, in usb_midi_added()
438 (usb_callback_func)midi_usb_read_callback, midiDevice); in usb_midi_added()
445 *cookie = midiDevice; in usb_midi_added()
446 DPRINTF_INFO((MY_ID "usb_midi_added: %s\n", midiDevice->name)); in usb_midi_added()
455 usbmidi_device_info* midiDevice = (usbmidi_device_info*)cookie; in usb_midi_removed() local
459 DPRINTF_INFO((MY_ID "usb_midi_removed(%s)\n", midiDevice->name)); in usb_midi_removed()
460 midiDevice->active = false; in usb_midi_removed()
462 usbmidi_port_info* port = midiDevice->ports[cable]; in usb_midi_removed()
465 midiDevice->ports[cable] = NULL; in usb_midi_removed()
477 if (midiDevice->ept_in != NULL) in usb_midi_removed()
478 usb->cancel_queued_transfers(midiDevice->ept_in->handle); in usb_midi_removed()
479 if (midiDevice->ept_out != NULL) in usb_midi_removed()
480 usb->cancel_queued_transfers(midiDevice->ept_out->handle); in usb_midi_removed()
482 midiDevice->name)); in usb_midi_removed()
483 remove_device(midiDevice); in usb_midi_removed()
570 usbmidi_device_info* midiDevice = cookie->device; in usb_midi_read() local
572 if (midiDevice == NULL || !midiDevice->active) in usb_midi_read()
577 while (midiDevice && midiDevice->active) { in usb_midi_read()
591 acquire_sem(midiDevice->sem_lock); in usb_midi_read()
594 release_sem(midiDevice->sem_lock); in usb_midi_read()
641 usbmidi_device_info* midiDevice = cookie->device; in usb_midi_write() local
643 if (!midiDevice || !midiDevice->active) in usb_midi_write()
646 buff_lim = midiDevice->outMaxPkt * 3 / 4; in usb_midi_write()
669 usb_midi_event_packet* pkt = midiDevice->out_buffer; in usb_midi_write()
672 status = acquire_sem_etc(midiDevice->sem_send, in usb_midi_write()
698 status = usb->queue_bulk(midiDevice->ept_out->handle, in usb_midi_write()
699 midiDevice->out_buffer, sizeof(usb_midi_event_packet) in usb_midi_write()
701 midiDevice); in usb_midi_write()
726 usbmidi_device_info* midiDevice = cookie->device; in usb_midi_close() local
729 cookie, midiDevice, port)); in usb_midi_close()
748 usbmidi_device_info* midiDevice = cookie->device; in usb_midi_free() local
749 DPRINTF_INFO((MY_ID "usb_midi_free(%p device=%p)\n", cookie, midiDevice)); in usb_midi_free()