86 lines
2.4 KiB
C
86 lines
2.4 KiB
C
|
/* SPDX-License-Identifier: MIT */
|
||
|
/**
|
||
|
@file ntv2audiodefines.h
|
||
|
@brief Declares common audio macros and structs used in the SDK.
|
||
|
@copyright (C) 2004-2021 AJA Video Systems, Inc. All rights reserved.
|
||
|
**/
|
||
|
|
||
|
#ifndef NTV2_AUDIODEFINES_H
|
||
|
#define NTV2_AUDIODEFINES_H
|
||
|
|
||
|
#define NTV2_NUMAUDIO_CHANNELS 6
|
||
|
#define NTV2_AUDIOSAMPLESIZE (sizeof (ULWord))
|
||
|
#define NTV2_AUDIO_WRAPADDRESS 0x000FF000
|
||
|
#define NTV2_AUDIO_WRAPADDRESS_MEDIUM (0x000FF000 * 2)
|
||
|
#define NTV2_AUDIO_WRAPADDRESS_BIG (0x000FF000 * 4)
|
||
|
#define NTV2_AUDIO_WRAPADDRESS_BIGGER (0x000FF000 * 8) // used with KiPro Mini 99 video buffers
|
||
|
#define NTV2_AUDIO_READBUFFEROFFSET 0x00100000
|
||
|
#define NTV2_AUDIO_READBUFFEROFFSET_MEDIUM (0x00100000 * 2)
|
||
|
#define NTV2_AUDIO_READBUFFEROFFSET_BIG (0x00100000 * 4)
|
||
|
#define NTV2_AUDIO_READBUFFEROFFSET_BIGGER (0x00100000 * 8) // used with KiPro Mini 99 video buffers
|
||
|
|
||
|
#define NTV2_AUDIO_BUFFEROFFSET_BIG (0x00100000 * 8)
|
||
|
|
||
|
#define NTV2_NUMSAMPLES_PER_AUDIO_INTERRUPT 960
|
||
|
#define NTV2_TOTALSAMPLES_IN_BUFFER(numChannels) (NTV2_AUDIO_WRAPADDRESS/((numChannels)*NTV2_AUDIOSAMPLESIZE))
|
||
|
|
||
|
#define kSDIName "SDI"
|
||
|
#define kAESName "AES/EBU"
|
||
|
#define kADATName "ADAT - 8 channels"
|
||
|
#define kAnalogName "Analog - 4 channels"
|
||
|
#define kNoneName "IO - none"
|
||
|
#define kAllName "8 channels"
|
||
|
|
||
|
#define kAJADeviceManufacturer "AJA Video"
|
||
|
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
kNumAudioChannels2 = 2,
|
||
|
kNumAudioChannels4 = 4,
|
||
|
kNumAudioChannels6 = 6,
|
||
|
kNumAudioChannels8 = 8,
|
||
|
kNumAudioChannels16 = 16,
|
||
|
kNumAudioChannelsMax = kNumAudioChannels16 // Used in Linux and Windows too
|
||
|
} AudioChannelsPerFrameEnum;
|
||
|
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
k16bitsPerSample = 16,
|
||
|
k24bitsPerSample = 24,
|
||
|
k32bitsPerSample = 32
|
||
|
} AudioBitsPerSampleEnum;
|
||
|
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
k44p1KHzSampleRate = 44100,
|
||
|
k48KHzSampleRate = 48000,
|
||
|
k96KHzSampleRate = 96000
|
||
|
} AudioSampleRateEnum;
|
||
|
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
kSourceSDI = 0x69736469,
|
||
|
kSourceAES = 0x69616573,
|
||
|
kSourceADAT = 0x69616474,
|
||
|
kSourceAnalog = 0x69616C67,
|
||
|
kSourceNone = 0x6E6F696E,
|
||
|
kSourceAll = 0x6F757420
|
||
|
} AudioSourceEnum;
|
||
|
|
||
|
typedef enum {
|
||
|
kNormal = 0,
|
||
|
kMuted = 1
|
||
|
} AudioMuteEnum;
|
||
|
|
||
|
// These are ProIO specific audio settings. The ENUMs represent actual register
|
||
|
// values. This is probably not a great idea but for now we will leave it like this
|
||
|
// since it only pertains to a ProIO build. Ideally these should just enumerations
|
||
|
// and the settings layer in the muxer should translate these to what the hardware
|
||
|
// wants.
|
||
|
|
||
|
#endif // NTV2_AUDIODEFINES_H
|