mirror of
https://gitlab.com/splashmapper/splash.git
synced 2026-02-12 23:10:49 +01:00
96 lines
3.4 KiB
C
96 lines
3.4 KiB
C
/*
|
|
* rgb133audioapi.h
|
|
*
|
|
* Copyright (c) 2009 Datapath Limited All rights reserved.
|
|
*
|
|
* All information contained herein is proprietary and
|
|
* confidential to Datapath Limited and is licensed under
|
|
* the terms of the Datapath Limited Software License.
|
|
* Please read the LICENCE file for full license terms
|
|
* and conditions.
|
|
*
|
|
* http://www.datapath.co.uk/
|
|
* support@datapath.co.uk
|
|
*
|
|
*/
|
|
|
|
#ifndef RGB133AUDIOAPI_H_
|
|
#define RGB133AUDIOAPI_H_
|
|
|
|
/* Elements in control */
|
|
// for example, a stereo volume control can have 2 elements
|
|
#define ALSA_CONTROL_ELEMENTS_1 1
|
|
|
|
/* Items (== states) for enumerated controls */
|
|
#define ALSA_CONTROL_ENUM_TYPE_2_STATES 2
|
|
#define ALSA_CONTROL_ENUM_TYPE_4_STATES 4
|
|
|
|
/* Controls IDs */
|
|
#define ALSA_CONTROL_INDEX_BASE 0x0
|
|
#define ALSA_CONTROL_INDEX_DIG_MUTE (ALSA_CONTROL_INDEX_BASE+0)
|
|
#define ALSA_CONTROL_INDEX_ANA_MUTE (ALSA_CONTROL_INDEX_BASE+1)
|
|
#define ALSA_CONTROL_INDEX_ANA_UNBAL_VOLUME (ALSA_CONTROL_INDEX_BASE+2)
|
|
#define ALSA_CONTROL_INDEX_ANA_BAL_VOLUME (ALSA_CONTROL_INDEX_BASE+3)
|
|
#define ALSA_CONTROL_INDEX_SDI_MUTE (ALSA_CONTROL_INDEX_BASE+4)
|
|
|
|
struct rgb133_audio_config {
|
|
/* Digital */
|
|
unsigned int digital_mute;
|
|
/* Analog */
|
|
// special member which holds analog mute for both unbalanced and balanced audio
|
|
// (used when dealing with our enumerated type mute control)
|
|
unsigned int analog_mute;
|
|
long analog_min_gain_unbalanced;
|
|
long analog_cur_gain_unbalanced;
|
|
long analog_max_gain_unbalanced;
|
|
long analog_min_gain_balanced;
|
|
long analog_cur_gain_balanced;
|
|
long analog_max_gain_balanced;
|
|
/* SDI */
|
|
unsigned int sdi_mute;
|
|
};
|
|
|
|
typedef enum _LINUXAUDIOCAPTURESOURCE
|
|
{
|
|
LINUXAUDIOCAPTURESOURCE_ANALOGUE = 1,
|
|
LINUXAUDIOCAPTURESOURCE_HDMI = 2,
|
|
LINUXAUDIOCAPTURESOURCE_SDI = 3,
|
|
LINUXAUDIOCAPTURESOURCE_HDMI_OR_ANALOGUE = 4,
|
|
LINUXAUDIOCAPTURESOURCE_SDI_OR_ANALOGUE = 5,
|
|
LINUXAUDIOCAPTURESOURCE_ANALOG_UNBALANCED = 6,
|
|
LINUXAUDIOCAPTURESOURCE_ANALOG_BALANCED = 7,
|
|
} LINUXAUDIOCAPTURESOURCE, *PLINUXAUDIOCAPTURESOURCE;
|
|
|
|
typedef enum _LINUXAUDIOCAPTURETYPE
|
|
{
|
|
LINUXAUDIOCAPTURETYPE_EMBEDDED = 0,
|
|
LINUXAUDIOCAPTURETYPE_EXTERNAL = 1,
|
|
} LINUXAUDIOCAPTURETYPE, *PLINUXAUDIOCAPTURETYPE;
|
|
|
|
int LinuxAudioInitialisationPost(PDEAPI _pDE, int channel);
|
|
|
|
int DoLinuxAudioInitialisation(PDEAPI _pDE, PAUDIOCHANNELAPI _pAudio, int channel);
|
|
int DoLinuxAudioUninitialisation(PDEAPI _pDE, int channel);
|
|
int AudioGetMinMaxCurrentConfig(PDEAPI _pDE, PAUDIOCHANNELAPI _pAudio, int channel, struct rgb133_audio_config * pLinuxAudioConfig);
|
|
|
|
int AudioDGCAudioOpenInput(PDEAPI pDE, void* chip, int channel);
|
|
int AudioDGCAudioCloseInput(PDEAPI pDE, int channel, unsigned int handle);
|
|
int AudioDGCAudioSetCaps(PDEAPI pDE, unsigned int format, unsigned int rate, unsigned int channels, int channel);
|
|
|
|
unsigned char* AudioGetDmaBuffer (void* pAudioChannel);
|
|
unsigned int AudioGetDmaWritePointer (void* pAudioChannel);
|
|
|
|
void LinuxAudioNewDataNotify(void* chip);
|
|
|
|
int AudioGetChannelType(PAUDIOCHANNELAPI _pAudio);
|
|
int AudioGetCaptureType(PAUDIOCHANNELAPI _pAudio);
|
|
|
|
int AudioSetControlMute(PDEAPI _pDE, int channel, unsigned int value);
|
|
int AudioSetControlVolume(PDEAPI _pDE, int channel, LINUXAUDIOCAPTURESOURCE audioSource, long value);
|
|
|
|
int
|
|
AudioGetUserDefinedParms (
|
|
PAUDIOCHANNELAPI _pAudio);
|
|
|
|
#endif /*RGB133AUDIOAPI_H_*/
|