Blame src/include/pcaudiolib/audio.h

rpm-build ca19af
/* Audio API.
rpm-build ca19af
 *
rpm-build ca19af
 * Copyright (C) 2016 Reece H. Dunn
rpm-build ca19af
 *
rpm-build ca19af
 * This file is part of pcaudiolib.
rpm-build ca19af
 *
rpm-build ca19af
 * pcaudiolib is free software: you can redistribute it and/or modify
rpm-build ca19af
 * it under the terms of the GNU General Public License as published by
rpm-build ca19af
 * the Free Software Foundation, either version 3 of the License, or
rpm-build ca19af
 * (at your option) any later version.
rpm-build ca19af
 *
rpm-build ca19af
 * pcaudiolib is distributed in the hope that it will be useful,
rpm-build ca19af
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
rpm-build ca19af
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
rpm-build ca19af
 * GNU General Public License for more details.
rpm-build ca19af
 *
rpm-build ca19af
 * You should have received a copy of the GNU General Public License
rpm-build ca19af
 * along with pcaudiolib.  If not, see <http://www.gnu.org/licenses/>.
rpm-build ca19af
 */
rpm-build ca19af
rpm-build ca19af
#ifndef PCAUDIOLIB_AUDIO_H
rpm-build ca19af
#define PCAUDIOLIB_AUDIO_H
rpm-build ca19af
rpm-build ca19af
#include <stdint.h>
rpm-build ca19af
#include <stdlib.h>
rpm-build ca19af
rpm-build ca19af
#ifdef __cplusplus
rpm-build ca19af
extern "C"
rpm-build ca19af
{
rpm-build ca19af
#endif
rpm-build ca19af
rpm-build ca19af
enum audio_object_format
rpm-build ca19af
{
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S8,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U8,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S16LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S16BE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U16LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U16BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S18LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S18BE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U18LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U18BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S20LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S20BE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U20LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U20BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S24LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S24BE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U24LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U24BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S24_32LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S24_32BE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U24_32LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U24_32BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S32LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_S32BE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U32LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_U32BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_FLOAT32LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_FLOAT32BE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_FLOAT64LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_FLOAT64BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_IEC958LE,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_IEC958BE,
rpm-build ca19af
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_ALAW,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_ULAW,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_ADPCM,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_MPEG,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_GSM,
rpm-build ca19af
	AUDIO_OBJECT_FORMAT_AC3,
rpm-build ca19af
};
rpm-build ca19af
rpm-build ca19af
struct audio_object;
rpm-build ca19af
rpm-build ca19af
int
rpm-build ca19af
audio_object_open(struct audio_object *object,
rpm-build ca19af
                  enum audio_object_format format,
rpm-build ca19af
                  uint32_t rate,
rpm-build ca19af
                  uint8_t channels);
rpm-build ca19af
rpm-build ca19af
void
rpm-build ca19af
audio_object_close(struct audio_object *object);
rpm-build ca19af
rpm-build ca19af
void
rpm-build ca19af
audio_object_destroy(struct audio_object *object);
rpm-build ca19af
rpm-build ca19af
int
rpm-build ca19af
audio_object_write(struct audio_object *object,
rpm-build ca19af
                   const void *data,
rpm-build ca19af
                   size_t bytes);
rpm-build ca19af
rpm-build ca19af
int
rpm-build ca19af
audio_object_drain(struct audio_object *object);
rpm-build ca19af
rpm-build ca19af
int
rpm-build ca19af
audio_object_flush(struct audio_object *object);
rpm-build ca19af
rpm-build ca19af
const char *
rpm-build ca19af
audio_object_strerror(struct audio_object *object,
rpm-build ca19af
                      int error);
rpm-build ca19af
rpm-build ca19af
struct audio_object *
rpm-build ca19af
create_audio_device_object(const char *device,
rpm-build ca19af
                           const char *application_name,
rpm-build ca19af
                           const char *description);
rpm-build ca19af
rpm-build ca19af
#ifdef __cplusplus
rpm-build ca19af
}
rpm-build ca19af
#endif
rpm-build ca19af
rpm-build ca19af
#endif