162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Timer handling
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __CTTIMER_H
762306a36Sopenharmony_ci#define __CTTIMER_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/spinlock.h>
1062306a36Sopenharmony_ci#include <linux/timer.h>
1162306a36Sopenharmony_ci#include <linux/list.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistruct snd_pcm_substream;
1462306a36Sopenharmony_cistruct ct_atc;
1562306a36Sopenharmony_cistruct ct_atc_pcm;
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistruct ct_timer;
1862306a36Sopenharmony_cistruct ct_timer_instance;
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cistruct ct_timer *ct_timer_new(struct ct_atc *atc);
2162306a36Sopenharmony_civoid ct_timer_free(struct ct_timer *atimer);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistruct ct_timer_instance *
2462306a36Sopenharmony_cict_timer_instance_new(struct ct_timer *atimer, struct ct_atc_pcm *apcm);
2562306a36Sopenharmony_civoid ct_timer_instance_free(struct ct_timer_instance *ti);
2662306a36Sopenharmony_civoid ct_timer_start(struct ct_timer_instance *ti);
2762306a36Sopenharmony_civoid ct_timer_stop(struct ct_timer_instance *ti);
2862306a36Sopenharmony_civoid ct_timer_prepare(struct ct_timer_instance *ti);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#endif /* __CTTIMER_H */
31