Lines Matching refs:replay

63     buf_info = &audio->replay->buf_info;  in _audio_send_replay_frame()
65 position = audio->replay->pos; in _audio_send_replay_frame()
69 if (rt_data_queue_peek(&audio->replay->queue, (const void **)&data, &src_size) != RT_EOK) in _audio_send_replay_frame()
72 if (audio->replay->event & REPLAY_EVT_STOP) in _audio_send_replay_frame()
73 rt_completion_done(&audio->replay->cmp); in _audio_send_replay_frame()
76 rt_memset(&buf_info->buffer[audio->replay->pos], 0, dst_size); in _audio_send_replay_frame()
78 audio->replay->pos += dst_size; in _audio_send_replay_frame()
79 audio->replay->pos %= buf_info->total_size; in _audio_send_replay_frame()
83 rt_memset(&buf_info->buffer[audio->replay->pos], 0, dst_size); in _audio_send_replay_frame()
88 result = rt_data_queue_peek(&audio->replay->queue, (const void **)&data, &src_size); in _audio_send_replay_frame()
91 LOG_D("under run %d, remain %d", audio->replay->pos, remain_bytes); in _audio_send_replay_frame()
92 audio->replay->pos -= remain_bytes; in _audio_send_replay_frame()
93 audio->replay->pos += dst_size; in _audio_send_replay_frame()
94 audio->replay->pos %= buf_info->total_size; in _audio_send_replay_frame()
95 audio->replay->read_index = 0; in _audio_send_replay_frame()
100 remain_bytes = MIN((dst_size - index), (src_size - audio->replay->read_index)); in _audio_send_replay_frame()
101 rt_memcpy(&buf_info->buffer[audio->replay->pos], in _audio_send_replay_frame()
102 &data[audio->replay->read_index], remain_bytes); in _audio_send_replay_frame()
105 audio->replay->read_index += remain_bytes; in _audio_send_replay_frame()
106 audio->replay->pos += remain_bytes; in _audio_send_replay_frame()
107 audio->replay->pos %= buf_info->total_size; in _audio_send_replay_frame()
109 if (audio->replay->read_index == src_size) in _audio_send_replay_frame()
112 audio->replay->read_index = 0; in _audio_send_replay_frame()
113 … rt_data_queue_pop(&audio->replay->queue, (const void **)&data, &src_size, RT_WAITING_NO); in _audio_send_replay_frame()
143 if (audio->replay->write_index) in _audio_flush_replay_frame()
145 result = rt_data_queue_push(&audio->replay->queue, in _audio_flush_replay_frame()
146 (const void **)audio->replay->write_data, in _audio_flush_replay_frame()
147 audio->replay->write_index, in _audio_flush_replay_frame()
150 audio->replay->write_index = 0; in _audio_flush_replay_frame()
167 if (audio->replay->activated != RT_TRUE) in _aduio_replay_start()
173 audio->replay->activated = RT_TRUE; in _aduio_replay_start()
194 if (audio->replay->activated == RT_TRUE) in _aduio_replay_stop()
200 audio->replay->event |= REPLAY_EVT_STOP; in _aduio_replay_stop()
203 rt_completion_init(&audio->replay->cmp); in _aduio_replay_stop()
204 rt_completion_wait(&audio->replay->cmp, RT_WAITING_FOREVER); in _aduio_replay_stop()
205 audio->replay->event &= ~REPLAY_EVT_STOP; in _aduio_replay_stop()
211 audio->replay->activated = RT_FALSE; in _aduio_replay_stop()
295 audio->replay = RT_NULL; in _audio_dev_init()
301 …struct rt_audio_replay *replay = (struct rt_audio_replay *) rt_malloc(sizeof(struct rt_audio_repla… in _audio_dev_init() local
303 if (replay == RT_NULL) in _audio_dev_init()
305 rt_memset(replay, 0, sizeof(struct rt_audio_replay)); in _audio_dev_init()
308replay->mp = rt_mp_create("adu_mp", RT_AUDIO_REPLAY_MP_BLOCK_COUNT, RT_AUDIO_REPLAY_MP_BLOCK_SIZE); in _audio_dev_init()
309 if (replay->mp == RT_NULL) in _audio_dev_init()
311 rt_free(replay); in _audio_dev_init()
317 rt_data_queue_init(&replay->queue, CFG_AUDIO_REPLAY_QUEUE_COUNT, 0, RT_NULL); in _audio_dev_init()
320 rt_mutex_init(&replay->lock, "replay", RT_IPC_FLAG_PRIO); in _audio_dev_init()
322 replay->activated = RT_FALSE; in _audio_dev_init()
323 audio->replay = replay; in _audio_dev_init()
359 audio->ops->buffer_info(audio, &audio->replay->buf_info); in _audio_dev_init()
392 if (audio->replay->activated != RT_TRUE) in _audio_dev_open()
395 audio->replay->write_index = 0; in _audio_dev_open()
396 audio->replay->read_index = 0; in _audio_dev_open()
397 audio->replay->pos = 0; in _audio_dev_open()
398 audio->replay->event = REPLAY_EVT_NONE; in _audio_dev_open()
501 if (!(dev->open_flag & RT_DEVICE_OFLAG_WRONLY) || (audio->replay == RT_NULL)) in _audio_dev_write()
508 rt_mutex_take(&audio->replay->lock, RT_WAITING_FOREVER); in _audio_dev_write()
512 if (audio->replay->write_index % block_size == 0) in _audio_dev_write()
514 audio->replay->write_data = rt_mp_alloc(audio->replay->mp, RT_WAITING_FOREVER); in _audio_dev_write()
515 rt_memset(audio->replay->write_data, 0, block_size); in _audio_dev_write()
519 remain_bytes = MIN((block_size - audio->replay->write_index), (size - index)); in _audio_dev_write()
520 … rt_memcpy(&audio->replay->write_data[audio->replay->write_index], &ptr[index], remain_bytes); in _audio_dev_write()
523 audio->replay->write_index += remain_bytes; in _audio_dev_write()
524 audio->replay->write_index %= block_size; in _audio_dev_write()
526 if (audio->replay->write_index == 0) in _audio_dev_write()
528 rt_data_queue_push(&audio->replay->queue, in _audio_dev_write()
529 audio->replay->write_data, in _audio_dev_write()
534 rt_mutex_release(&audio->replay->lock); in _audio_dev_write()
537 if (audio->replay->activated != RT_TRUE) in _audio_dev_write()
540 audio->replay->activated = RT_TRUE; in _audio_dev_write()