Lines Matching refs:speaker
90 static struct uac_audio_speaker speaker; variable
289 speaker.buffer = rt_malloc(AUDIO_BUFFER_SZ); in speaker_entry()
290 if (speaker.buffer == RT_NULL) in speaker_entry()
296 speaker.dev = rt_device_find(SPEAKER_DEVICE_NAME); in speaker_entry()
297 if (speaker.dev == RT_NULL) in speaker_entry()
305 if (rt_event_recv(speaker.event, EVENT_AUDIO_START | EVENT_AUDIO_STOP, in speaker_entry()
311 if (speaker.open_count == 0) in speaker_entry()
317 rt_device_open(speaker.dev, RT_DEVICE_OFLAG_WRONLY); in speaker_entry()
324 rt_device_control(speaker.dev, AUDIO_CTL_CONFIGURE, &caps); in speaker_entry()
328 if (rt_event_recv(speaker.event, EVENT_AUDIO_DATA | EVENT_AUDIO_STOP, in speaker_entry()
332 if (speaker.open_count > 0) in speaker_entry()
339 index = (speaker.buffer_index >= AUDIO_BUFFER_SZ / 2) ? 0 : (AUDIO_BUFFER_SZ / 2); in speaker_entry()
340 rt_device_write(speaker.dev, 0, speaker.buffer + index, AUDIO_BUFFER_SZ / 2); in speaker_entry()
348 rt_device_close(speaker.dev); in speaker_entry()
352 if (speaker.buffer) in speaker_entry()
353 rt_free(speaker.buffer); in speaker_entry()
358 speaker.ep->request.buffer = speaker.buffer; in _audio_start()
359 speaker.ep->request.size = UAC_EP_MAX_PACKET_SIZE; in _audio_start()
360 speaker.ep->request.req_type = UIO_REQUEST_READ_FULL; in _audio_start()
361 rt_usbd_io_request(func->device, speaker.ep, &speaker.ep->request); in _audio_start()
363 speaker.open_count ++; in _audio_start()
364 rt_event_send(speaker.event, EVENT_AUDIO_START); in _audio_start()
371 speaker.open_count --; in _audio_stop()
372 rt_event_send(speaker.event, EVENT_AUDIO_STOP); in _audio_stop()
381 speaker.ep->request.buffer = speaker.buffer + speaker.buffer_index; in _ep_data_handler()
382 speaker.ep->request.size = UAC_EP_MAX_PACKET_SIZE; in _ep_data_handler()
383 speaker.ep->request.req_type = UIO_REQUEST_READ_FULL; in _ep_data_handler()
384 rt_usbd_io_request(func->device, speaker.ep, &speaker.ep->request); in _ep_data_handler()
386 speaker.buffer_index += UAC_EP_MAX_PACKET_SIZE; in _ep_data_handler()
387 if (speaker.buffer_index >= AUDIO_BUFFER_SZ) in _ep_data_handler()
389 speaker.buffer_index = 0; in _ep_data_handler()
390 rt_event_send(speaker.event, EVENT_AUDIO_DATA); in _ep_data_handler()
392 else if (speaker.buffer_index == AUDIO_BUFFER_SZ / 2) in _ep_data_handler()
394 rt_event_send(speaker.event, EVENT_AUDIO_DATA); in _ep_data_handler()
534 speaker.ep = rt_usbd_endpoint_new(&as_desc_t->ep_desc, _ep_data_handler); in rt_usbd_function_uac_speaker_create()
537 rt_usbd_altsetting_add_endpoint(setting_as, speaker.ep); in rt_usbd_function_uac_speaker_create()
556 speaker.event = rt_event_create("speaker_event", RT_IPC_FLAG_FIFO); in audio_speaker_init()