linux/include/sound/sof/stream.h

/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
/*
 * This file is provided under a dual BSD/GPLv2 license.  When using or
 * redistributing this file, you may do so under either license.
 *
 * Copyright(c) 2018 Intel Corporation
 */

#ifndef __INCLUDE_SOUND_SOF_STREAM_H__
#define __INCLUDE_SOUND_SOF_STREAM_H__

#include <sound/sof/header.h>

/*
 * Stream configuration.
 */

#define SOF_IPC_MAX_CHANNELS

/* common sample rates for use in masks */
#define SOF_RATE_8000
#define SOF_RATE_11025
#define SOF_RATE_12000
#define SOF_RATE_16000
#define SOF_RATE_22050
#define SOF_RATE_24000
#define SOF_RATE_32000
#define SOF_RATE_44100
#define SOF_RATE_48000
#define SOF_RATE_64000
#define SOF_RATE_88200
#define SOF_RATE_96000
#define SOF_RATE_176400
#define SOF_RATE_192000

/* continuous and non-standard rates for flexibility */
#define SOF_RATE_CONTINUOUS
#define SOF_RATE_KNOT

/* generic PCM flags for runtime settings */
#define SOF_PCM_FLAG_XRUN_STOP

/* stream PCM frame format */
enum sof_ipc_frame {};

/* stream buffer format */
enum sof_ipc_buffer_format {};

/* stream direction */
enum sof_ipc_stream_direction {};

/* stream ring info */
struct sof_ipc_host_buffer {} __packed;

struct sof_ipc_stream_params {} __packed;

/* PCM params info - SOF_IPC_STREAM_PCM_PARAMS */
struct sof_ipc_pcm_params {}  __packed;

/* PCM params info reply - SOF_IPC_STREAM_PCM_PARAMS_REPLY */
struct sof_ipc_pcm_params_reply {} __packed;

/* free stream - SOF_IPC_STREAM_PCM_PARAMS */
struct sof_ipc_stream {} __packed;

/* flags indicating which time stamps are in sync with each other */
#define SOF_TIME_HOST_SYNC
#define SOF_TIME_DAI_SYNC
#define SOF_TIME_WALL_SYNC
#define SOF_TIME_STAMP_SYNC

/* flags indicating which time stamps are valid */
#define SOF_TIME_HOST_VALID
#define SOF_TIME_DAI_VALID
#define SOF_TIME_WALL_VALID
#define SOF_TIME_STAMP_VALID

/* flags indicating time stamps are 64bit else 3use low 32bit */
#define SOF_TIME_HOST_64
#define SOF_TIME_DAI_64
#define SOF_TIME_WALL_64
#define SOF_TIME_STAMP_64

struct sof_ipc_stream_posn {}  __packed;

#endif