KPB: SET/RESET HOST sink copy mode

This sets HOST copy mode to blocking before
draining starts and resets it back to
normal mode once draining is done.

Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
This commit is contained in:
Marcin Rajwa 2019-04-16 16:44:51 +02:00 committed by Tomasz Lauda
parent 7d13838060
commit 57cc807072
1 changed files with 10 additions and 0 deletions

View File

@ -744,8 +744,14 @@ static void kpb_init_draining(struct comp_data *kpb, struct kpb_client *cli)
kpb->draining_task_data.history_buffer = buff;
kpb->draining_task_data.history_depth = history_depth;
kpb->draining_task_data.state = &kpb->state;
/* Pause selector copy. */
kpb->rt_sink->sink->state = COMP_STATE_PAUSED;
/* Set host-sink copy mode to blocking */
comp_set_attribute(kpb->cli_sink->sink,
COMP_ATTR_COPY_BLOCKING, 1);
/* TODO: schedule draining task */
}
}
@ -805,6 +811,10 @@ static uint64_t kpb_draining_task(void *arg)
* to client's sink
*/
*draining_data->state = KPB_DRAINING_ON_DEMAND;
/* Reset host-sink copy mode back to unblocking */
comp_set_attribute(sink->sink, COMP_ATTR_COPY_BLOCKING, 0);
trace_kpb("kpb_draining_task(), done.");
return 0;