linux/sound/core/seq/seq_timer.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *   ALSA sequencer Timer
 *   Copyright (c) 1998-1999 by Frank van de Pol <[email protected]>
 *                              Jaroslav Kysela <[email protected]>
 */

#include <sound/core.h>
#include <linux/slab.h>
#include "seq_timer.h"
#include "seq_queue.h"
#include "seq_info.h"

/* allowed sequencer timer frequencies, in Hz */
#define MIN_FREQUENCY
#define MAX_FREQUENCY
#define DEFAULT_FREQUENCY

#define SKEW_BASE

static void snd_seq_timer_set_tick_resolution(struct snd_seq_timer *tmr)
{}

/* create new timer (constructor) */
struct snd_seq_timer *snd_seq_timer_new(void)
{}

/* delete timer (destructor) */
void snd_seq_timer_delete(struct snd_seq_timer **tmr)
{}

void snd_seq_timer_defaults(struct snd_seq_timer * tmr)
{}

static void seq_timer_reset(struct snd_seq_timer *tmr)
{}

void snd_seq_timer_reset(struct snd_seq_timer *tmr)
{}


/* called by timer interrupt routine. the period time since previous invocation is passed */
static void snd_seq_timer_interrupt(struct snd_timer_instance *timeri,
				    unsigned long resolution,
				    unsigned long ticks)
{}

/* set current tempo */
int snd_seq_timer_set_tempo(struct snd_seq_timer * tmr, int tempo)
{}

/* set current tempo, ppq and base in a shot */
int snd_seq_timer_set_tempo_ppq(struct snd_seq_timer *tmr, int tempo, int ppq,
				unsigned int tempo_base)
{}

/* set current tick position */
int snd_seq_timer_set_position_tick(struct snd_seq_timer *tmr,
				    snd_seq_tick_time_t position)
{}

/* set current real-time position */
int snd_seq_timer_set_position_time(struct snd_seq_timer *tmr,
				    snd_seq_real_time_t position)
{}

/* set timer skew */
int snd_seq_timer_set_skew(struct snd_seq_timer *tmr, unsigned int skew,
			   unsigned int base)
{}

int snd_seq_timer_open(struct snd_seq_queue *q)
{}

int snd_seq_timer_close(struct snd_seq_queue *q)
{}

static int seq_timer_stop(struct snd_seq_timer *tmr)
{}

int snd_seq_timer_stop(struct snd_seq_timer *tmr)
{}

static int initialize_timer(struct snd_seq_timer *tmr)
{}

static int seq_timer_start(struct snd_seq_timer *tmr)
{}

int snd_seq_timer_start(struct snd_seq_timer *tmr)
{}

static int seq_timer_continue(struct snd_seq_timer *tmr)
{}

int snd_seq_timer_continue(struct snd_seq_timer *tmr)
{}

/* return current 'real' time. use timeofday() to get better granularity. */
snd_seq_real_time_t snd_seq_timer_get_cur_time(struct snd_seq_timer *tmr,
					       bool adjust_ktime)
{}

/* TODO: use interpolation on tick queue (will only be useful for very
 high PPQ values) */
snd_seq_tick_time_t snd_seq_timer_get_cur_tick(struct snd_seq_timer *tmr)
{}


#ifdef CONFIG_SND_PROC_FS
/* exported to seq_info.c */
void snd_seq_info_timer_read(struct snd_info_entry *entry,
			     struct snd_info_buffer *buffer)
{}
#endif /* CONFIG_SND_PROC_FS */