Blame axfer/test/generator.h

Packit Service a9274b
// SPDX-License-Identifier: GPL-2.0
Packit Service a9274b
//
Packit Service a9274b
// generator.c - a generator for test with buffers of PCM frames.
Packit Service a9274b
//
Packit Service a9274b
// Copyright (c) 2018 Takashi Sakamoto <o-takashi@sakamocchi.jp>
Packit Service a9274b
//
Packit Service a9274b
// Licensed under the terms of the GNU General Public License, version 2.
Packit Service a9274b
Packit Service a9274b
#ifndef __ALSA_UTILS_AXFER_TEST_GENERATOR__H_
Packit Service a9274b
#define __ALSA_UTILS_AXFER_TEST_GENERATOR__H_
Packit Service a9274b
Packit Service a9274b
#include <stdint.h>
Packit Service a9274b
#include <alsa/asoundlib.h>
Packit Service a9274b
Packit Service a9274b
struct test_generator;
Packit Service a9274b
typedef int (*generator_cb_t)(struct test_generator *gen,
Packit Service a9274b
			      snd_pcm_access_t access,
Packit Service a9274b
			      snd_pcm_format_t sample_format,
Packit Service a9274b
			      unsigned int samples_per_frame,
Packit Service a9274b
			      void *frame_buffer, unsigned int frame_count);
Packit Service a9274b
Packit Service a9274b
struct test_generator {
Packit Service a9274b
	int fd;
Packit Service a9274b
	uint64_t access_mask;
Packit Service a9274b
	uint64_t sample_format_mask;
Packit Service a9274b
	unsigned int min_samples_per_frame;
Packit Service a9274b
	unsigned int max_samples_per_frame;
Packit Service a9274b
	unsigned int min_frame_count;
Packit Service a9274b
	unsigned int max_frame_count;
Packit Service a9274b
	unsigned int step_frame_count;
Packit Service a9274b
Packit Service a9274b
	generator_cb_t cb;
Packit Service a9274b
	void *private_data;
Packit Service a9274b
};
Packit Service a9274b
Packit Service a9274b
int generator_context_init(struct test_generator *gen,
Packit Service a9274b
			   uint64_t access_mask, uint64_t sample_format_mask,
Packit Service a9274b
			   unsigned int min_samples_per_frame,
Packit Service a9274b
			   unsigned int max_samples_per_frame,
Packit Service a9274b
			   unsigned int min_frame_count,
Packit Service a9274b
			   unsigned int max_frame_count,
Packit Service a9274b
			   unsigned int step_frame_count,
Packit Service a9274b
			   unsigned int private_size);
Packit Service a9274b
int generator_context_run(struct test_generator *gen, generator_cb_t cb);
Packit Service a9274b
void generator_context_destroy(struct test_generator *gen);
Packit Service a9274b
Packit Service a9274b
#endif