/*******************************************/ /** Stream States \ingroupstream
*/ enum HPI_STREAM_STATES { /** State stopped - stream is stopped. */
HPI_STATE_STOPPED = 1, /** State playing - stream is playing audio. */
HPI_STATE_PLAYING = 2, /** State recording - stream is recording. */
HPI_STATE_RECORDING = 3, /** State drained - playing stream ran out of data to play. */
HPI_STATE_DRAINED = 4, /** State generate sine - to be implemented. */
HPI_STATE_SINEGEN = 5, /** State wait - used for inter-card sync to mean waiting for all
cards to be ready. */
HPI_STATE_WAIT = 6
}; /*******************************************/ /** Source node types \ingroupmixer
*/ enum HPI_SOURCENODES { /** This define can be used instead of 0 to indicate thatthereisnovalidsourcenode.Acontrolthat existsonadestinationnodecanbesearchedforusingasource
node value of either 0, or HPI_SOURCENODE_NONE */
HPI_SOURCENODE_NONE = 100, /** Out Stream (Play) node. */
HPI_SOURCENODE_OSTREAM = 101, /** Line in node - could be analog, AES/EBU or network. */
HPI_SOURCENODE_LINEIN = 102,
HPI_SOURCENODE_AESEBU_IN = 103, /**< AES/EBU input node. */
HPI_SOURCENODE_TUNER = 104, /**< tuner node. */
HPI_SOURCENODE_RF = 105, /**< RF input node. */
HPI_SOURCENODE_CLOCK_SOURCE = 106, /**< clock source node. */
HPI_SOURCENODE_RAW_BITSTREAM = 107, /**< raw bitstream node. */
HPI_SOURCENODE_MICROPHONE = 108, /**< microphone node. */ /** Cobranet input node -
Audio samples come from the Cobranet network and into the device. */
HPI_SOURCENODE_COBRANET = 109,
HPI_SOURCENODE_ANALOG = 110, /**< analog input node. */
HPI_SOURCENODE_ADAPTER = 111, /**< adapter node. */ /** RTP stream input node - This node is a destination for
packets of RTP audio samples from other devices. */
HPI_SOURCENODE_RTP_DESTINATION = 112,
HPI_SOURCENODE_INTERNAL = 113, /**< node internal to the device. */
HPI_SOURCENODE_AVB = 114, /**< AVB input stream */
HPI_SOURCENODE_BLULINK = 115, /**< BLU-link input channel */ /* !!!Update this AND hpidebug.h if you add a new sourcenode type!!! */
HPI_SOURCENODE_LAST_INDEX = 115/**< largest ID */ /* AX6 max sourcenode types = 15 */
};
/*******************************************/ /** Destination node types \ingroupmixer
*/ enum HPI_DESTNODES { /** This define can be used instead of 0 to indicate thatthereisnovaliddestinationnode.Acontrolthat existsonasourcenodecanbesearchedforusingadestination
node value of either 0, or HPI_DESTNODE_NONE */
HPI_DESTNODE_NONE = 200, /** In Stream (Record) node. */
HPI_DESTNODE_ISTREAM = 201,
HPI_DESTNODE_LINEOUT = 202, /**< line out node. */
HPI_DESTNODE_AESEBU_OUT = 203, /**< AES/EBU output node. */
HPI_DESTNODE_RF = 204, /**< RF output node. */
HPI_DESTNODE_SPEAKER = 205, /**< speaker output node. */ /** Cobranet output node -
Audio samples from the device are sent out on the Cobranet network.*/
HPI_DESTNODE_COBRANET = 206,
HPI_DESTNODE_ANALOG = 207, /**< analog output node. */ /** RTP stream output node - This node is a source for
packets of RTP audio samples that are sent to other devices. */
HPI_DESTNODE_RTP_SOURCE = 208,
HPI_DESTNODE_AVB = 209, /**< AVB output stream */
HPI_DESTNODE_INTERNAL = 210, /**< node internal to the device. */
HPI_DESTNODE_BLULINK = 211, /**< BLU-link output channel. */ /* !!!Update this AND hpidebug.h if you add a new destnode type!!! */
HPI_DESTNODE_LAST_INDEX = 211/**< largest ID */ /* AX6 max destnode types = 15 */
};
/*******************************************/ /** Mixer control types \ingroupmixer
*/ enum HPI_CONTROLS {
HPI_CONTROL_GENERIC = 0, /**< generic control. */
HPI_CONTROL_CONNECTION = 1, /**< A connection between nodes. */
HPI_CONTROL_VOLUME = 2, /**< volume control - works in dB_fs. */
HPI_CONTROL_METER = 3, /**< peak meter control. */
HPI_CONTROL_MUTE = 4, /*mute control - not used at present. */
HPI_CONTROL_MULTIPLEXER = 5, /**< multiplexer control. */
/* !!! Update this AND hpidebug.h if you add a new control type!!!*/
HPI_CONTROL_LAST_INDEX = 26/**<highest control type ID */ /* WARNING types 256 or greater impact bit packing in all AX6 DSP code */
};
/*******************************************/ /** Adapter properties TheseareusedinHPI_AdapterSetProperty()andHPI_AdapterGetProperty() \ingroupadapter
*/ enum HPI_ADAPTER_PROPERTIES { /** \internal Used in dwProperty field of HPI_AdapterSetProperty() and HPI_AdapterGetProperty().ThiserrataappliestoallASI6000cardswithboth analoganddigitaloutputs.TheCS4224A/D+D/Ahasaonesampledelaybetween leftandrightchannelsonbothitsinput(ADC)andoutput(DAC). MoredetailsareavailableinCirrusLogicerrataER284B2. PDFavailablefromwww.cirrus.com,releasedbyCirrusin2001.
*/
HPI_ADAPTER_PROPERTY_ERRATA_1 = 1,
/** Readonly adapter number of current channels property. Property1isthenumberofrecordchannelsperrecorddevice.
Property 2 is the number of play channels per playback device.*/
HPI_ADAPTER_PROPERTY_CURCHANNELS = 258,
/** Readonly adapter MAC address MSBs. TheMAC_ADDRESS_MSBpropertyreturns themostsignificant32bitsoftheMACaddress. Property1containsbits47..32oftheMACaddress.
Property 2 contains bits 31..16 of the MAC address. */
HPI_ADAPTER_PROPERTY_MAC_ADDRESS_MSB = 260,
/** Readonly adapter MAC address LSBs TheMAC_ADDRESS_LSBpropertyreturns theleastsignificant16bitsoftheMACaddress.
Property 1 contains bits 15..0 of the MAC address. */
HPI_ADAPTER_PROPERTY_MAC_ADDRESS_LSB = 261,
/** Readonly extended adapter type number TheEXTENDED_ADAPTER_TYPEpropertyreturnsthe4digitsofanextended adaptertype,i.eASI8920-0022,0022istheextendedtype. ThedigitsarereturnedasASCIIcharactersratherthanthehexdigitsthat arereturnedforthemaintype Property1returnsthe1sttwo(leftmost)digits,i.e"00" intheexampleabove,theupperbytebeingtheleftmostdigit.
Property 2 returns the 2nd two digits, i.e "22" in the example above*/
HPI_ADAPTER_PROPERTY_EXTENDED_ADAPTER_TYPE = 262,
/** Readonly adapter IP address For192.168.1.101 Property1returnsthe1sttwo(leftmost)digits,i.e192*256+168 intheexampleabove,theupperbytebeingtheleftmostdigit.
Property 2 returns the 2nd two digits, i.e 1*256 + 101 in the example above, */
HPI_ADAPTER_PROPERTY_IP_ADDRESS = 265,
UsedinwQueryOrSetparameterofHPI_AdapterSetModeEx(). \ingroupadapter
*/ enum HPI_ADAPTER_MODE_CMDS { /** Set the mode to the given parameter */
HPI_ADAPTER_MODE_SET = 0, /** Return 0 or error depending whether mode is valid,
but don't set the mode */
HPI_ADAPTER_MODE_QUERY = 1
};
/* Note, adapters can have more than one capability -
encoding as bitfield is recommended. */ #define HPI_CAPABILITY_NONE (0) #define HPI_CAPABILITY_MPEG_LAYER3 (1)
/* Set this equal to maximum capability index,
Must not be greater than 32 - see axnvdef.h */ #define HPI_CAPABILITY_MAX 1 /* #define HPI_CAPABILITY_AAC 2 */
Themodefortheancillarydatainsertionorextractiontooperatein. \ingroupstream
*/ enum HPI_MPEG_ANC_MODES { /** the MPEG frames have energy information stored in them (5 bytes per stereo frame, 3 per mono) */
HPI_MPEG_ANC_HASENERGY = 0, /** the entire ancillary data field is taken up by data from the Anc data buffer Onencode,theencoderwillinserttheenergybytesbeforefillingtheremainder oftheancillarydataspacewithdatafromtheancillarydatabuffer.
*/
HPI_MPEG_ANC_RAW = 1
};
/** Ancillary Data Alignment \ingroupinstream
*/ enum HPI_ISTREAM_MPEG_ANC_ALIGNS { /** data is packed against the end of data, then padded to the end of frame */
HPI_MPEG_ANC_ALIGN_LEFT = 0, /** data is packed against the end of the frame */
HPI_MPEG_ANC_ALIGN_RIGHT = 1
};
UsinganymodesettingotherthanHPI_MPEG_MODE_DEFAULT withsinglechannelformatwillreturnanerror. \ingroupstream
*/ enum HPI_MPEG_MODES { /** Causes the MPEG-1 Layer II bitstream to be recorded insingle_channelmodewhenthenumberofchannelsis1andinstereowhenthe
number of channels is 2. */
HPI_MPEG_MODE_DEFAULT = 0, /** Standard stereo without joint-stereo compression */
HPI_MPEG_MODE_STEREO = 1, /** Joint stereo */
HPI_MPEG_MODE_JOINTSTEREO = 2, /** Left and Right channels are completely independent */
HPI_MPEG_MODE_DUALCHANNEL = 3
}; /******************************************* MIXER ATTRIBUTES ****/
/** Commands used by HPI_MixerStore() \ingroupmixer
*/ enum HPI_MIXER_STORE_COMMAND { /** Save all mixer control settings. */
HPI_MIXER_STORE_SAVE = 1, /** Restore all controls from saved. */
HPI_MIXER_STORE_RESTORE = 2, /** Delete saved control settings. */
HPI_MIXER_STORE_DELETE = 3, /** Enable auto storage of some control settings. */
HPI_MIXER_STORE_ENABLE = 4, /** Disable auto storage of some control settings. */
HPI_MIXER_STORE_DISABLE = 5, /** Unimplemented - save the attributes of a single control. */
HPI_MIXER_STORE_SAVE_SINGLE = 6
};
/****************************/ /* CONTROL ATTRIBUTE VALUES */ /****************************/
/** Used by mixer plugin enable functions
E.g.HPI_ParametricEq_SetState() \ingroupmixer
*/ enum HPI_SWITCH_STATES {
HPI_SWITCH_OFF = 0, /**< turn the mixer plugin on. */
HPI_SWITCH_ON = 1/**< turn the mixer plugin off. */
};
/* Volume control special gain values */
/** volumes units are 100ths of a dB \ingroupvolume
*/ #define HPI_UNITS_PER_dB 100 /** turns volume control OFF or MUTE \ingroupvolume
*/ #define HPI_GAIN_OFF (-100 * HPI_UNITS_PER_dB)
ReturnedbyHPI_Aesebu_Receiver_GetErrorStatus() \ingroupaesrx
*/ enum HPI_AESEBU_ERRORS { /** bit0: 1 when PLL is not locked */
HPI_AESEBU_ERROR_NOT_LOCKED = 0x01, /** bit1: 1 when signal quality is poor */
HPI_AESEBU_ERROR_POOR_QUALITY = 0x02, /** bit2: 1 when there is a parity error */
HPI_AESEBU_ERROR_PARITY_ERROR = 0x04, /** bit3: 1 when there is a bi-phase coding violation */
HPI_AESEBU_ERROR_BIPHASE_VIOLATION = 0x08, /** bit4: 1 when the validity bit is high */
HPI_AESEBU_ERROR_VALIDITY = 0x10, /** bit5: 1 when the CRC error bit is high */
HPI_AESEBU_ERROR_CRC = 0x20
};
/** \addtogroup pad \{
*/ /** The text string containing the station/channel combination. */ #define HPI_PAD_CHANNEL_NAME_LEN 16 /** The text string containing the artist. */ #define HPI_PAD_ARTIST_LEN 64 /** The text string containing the title. */ #define HPI_PAD_TITLE_LEN 64 /** The text string containing the comment. */ #define HPI_PAD_COMMENT_LEN 256 /** The PTY when the tuner has not received any PTY. */ #define HPI_PAD_PROGRAM_TYPE_INVALID 0xffff /** \} */
ThesebitfieldvaluesarereturnedbyacalltoHPI_Tuner_GetStatus(). Multiplefieldsarereturnedfromasinglecall. \ingrouptuner
*/ enum HPI_TUNER_STATUS_BITS {
HPI_TUNER_VIDEO_COLOR_PRESENT = 0x0001, /**< video color is present. */
HPI_TUNER_VIDEO_IS_60HZ = 0x0020, /**< 60 hz video detected. */
HPI_TUNER_VIDEO_HORZ_SYNC_MISSING = 0x0040, /**< video HSYNC is missing. */
HPI_TUNER_VIDEO_STATUS_VALID = 0x0100, /**< video status is valid. */
HPI_TUNER_DIGITAL = 0x0200, /**< tuner reports digital programming. */
HPI_TUNER_MULTIPROGRAM = 0x0400, /**< tuner reports multiple programs. */
HPI_TUNER_PLL_LOCKED = 0x1000, /**< the tuner's PLL is locked. */
HPI_TUNER_FM_STEREO = 0x2000 /**< tuner reports back FM stereo. */
};
/** Channel Modes UsedforHPI_ChannelModeSet/Get() \ingroupchannelmode
*/ enum HPI_CHANNEL_MODES { /** Left channel out = left channel in, Right channel out = right channel in. */
HPI_CHANNEL_MODE_NORMAL = 1, /** Left channel out = right channel in, Right channel out = left channel in. */
HPI_CHANNEL_MODE_SWAP = 2, /** Left channel out = left channel in, Right channel out = left channel in. */
HPI_CHANNEL_MODE_LEFT_TO_STEREO = 3, /** Left channel out = right channel in, Right channel out = right channel in.*/
HPI_CHANNEL_MODE_RIGHT_TO_STEREO = 4, /** Left channel out = (left channel in + right channel in)/2,
Right channel out = mute. */
HPI_CHANNEL_MODE_STEREO_TO_LEFT = 5, /** Left channel out = mute,
Right channel out = (right channel in + left channel in)/2. */
HPI_CHANNEL_MODE_STEREO_TO_RIGHT = 6,
HPI_CHANNEL_MODE_LAST = 6
};
/** SampleClock source values \ingroupsampleclock
*/ enum HPI_SAMPLECLOCK_SOURCES { /** The sampleclock output is derived from its local samplerate generator.
The local samplerate may be set using HPI_SampleClock_SetLocalRate(). */
HPI_SAMPLECLOCK_SOURCE_LOCAL = 1, /** The adapter is clocked from a dedicated AES/EBU SampleClock input.*/
HPI_SAMPLECLOCK_SOURCE_AESEBU_SYNC = 2, /** From external wordclock connector */
HPI_SAMPLECLOCK_SOURCE_WORD = 3, /** Board-to-board header */
HPI_SAMPLECLOCK_SOURCE_WORD_HEADER = 4, /** FUTURE - SMPTE clock. */
HPI_SAMPLECLOCK_SOURCE_SMPTE = 5, /** One of the aesebu inputs */
HPI_SAMPLECLOCK_SOURCE_AESEBU_INPUT = 6, /** From a network interface e.g. Cobranet or Livewire at either 48 or 96kHz */
HPI_SAMPLECLOCK_SOURCE_NETWORK = 8, /** From previous adjacent module (ASI2416 only)*/
HPI_SAMPLECLOCK_SOURCE_PREV_MODULE = 10, /** Blu link sample clock*/
HPI_SAMPLECLOCK_SOURCE_BLULINK = 11, /*! Update this if you add a new clock source.*/
HPI_SAMPLECLOCK_SOURCE_LAST = 11
};
/** Equalizer filter types. Used by HPI_ParametricEq_SetBand() \ingroupparmeq
*/ enum HPI_FILTER_TYPE {
HPI_FILTER_TYPE_BYPASS = 0, /**< filter is turned off */
HPI_FILTER_TYPE_LOWPASS = 4, /**< standard low pass */
HPI_FILTER_TYPE_HIGHPASS = 5, /**< standard high pass */
HPI_FILTER_TYPE_BANDPASS = 6, /**< standard band pass */
HPI_FILTER_TYPE_BANDSTOP = 7/**< standard band stop/notch */
};
\noteWhenanewerrorcodeisaddedHPI_GetErrorText()MUSTbeupdated. \noteCodes1-100arereservedfordriveruse \ingrouputility
*/ enum HPI_ERROR_CODES { /** Message type does not exist. */
HPI_ERROR_INVALID_TYPE = 100, /** Object type does not exist. */
HPI_ERROR_INVALID_OBJ = 101, /** Function does not exist. */
HPI_ERROR_INVALID_FUNC = 102, /** The specified object does not exist. */
HPI_ERROR_INVALID_OBJ_INDEX = 103, /** Trying to access an object that has not been opened yet. */
HPI_ERROR_OBJ_NOT_OPEN = 104, /** Trying to open an already open object. */
HPI_ERROR_OBJ_ALREADY_OPEN = 105, /** PCI, ISA resource not valid. */
HPI_ERROR_INVALID_RESOURCE = 106, /* HPI_ERROR_SUBSYSFINDADAPTERS_GETINFO= 107 */ /** Default response was never updated with actual error code. */
HPI_ERROR_INVALID_RESPONSE = 108, /** wSize field of response was not updated,
indicating that the message was not processed. */
HPI_ERROR_PROCESSING_MESSAGE = 109, /** The network did not respond in a timely manner. */
HPI_ERROR_NETWORK_TIMEOUT = 110, /* An HPI handle is invalid (uninitialised?). */
HPI_ERROR_INVALID_HANDLE = 111, /** A function or attribute has not been implemented yet. */
HPI_ERROR_UNIMPLEMENTED = 112, /** There are too many clients attempting
to access a network resource. */
HPI_ERROR_NETWORK_TOO_MANY_CLIENTS = 113, /** Response buffer passed to HPI_Message wassmallerthanreturnedresponse. wSpecificErrorfieldofhpiresponsecontainstherequiredsize.
*/
HPI_ERROR_RESPONSE_BUFFER_TOO_SMALL = 114, /** The returned response did not match the sent message */
HPI_ERROR_RESPONSE_MISMATCH = 115, /** A control setting that should have been cached was not. */
HPI_ERROR_CONTROL_CACHING = 116, /** A message buffer in the path to the adapter was smaller thanthemessagesize. wSpecificErrorfieldofhpiresponsecontainstheactualsize.
*/
HPI_ERROR_MESSAGE_BUFFER_TOO_SMALL = 117,
/* HPI_ERROR_TOO_MANY_ADAPTERS= 200 */ /** Bad adpater. */
HPI_ERROR_BAD_ADAPTER = 201, /** Adapter number out of range or not set properly. */
HPI_ERROR_BAD_ADAPTER_NUMBER = 202, /** 2 adapters with the same adapter number. */
HPI_ERROR_DUPLICATE_ADAPTER_NUMBER = 203, /** DSP code failed to bootload. Usually a DSP memory test failure. */
HPI_ERROR_DSP_BOOTLOAD = 204, /** Couldn't find or open the DSP code file. */
HPI_ERROR_DSP_FILE_NOT_FOUND = 206, /** Internal DSP hardware error. */
HPI_ERROR_DSP_HARDWARE = 207, /** Could not allocate memory */
HPI_ERROR_MEMORY_ALLOC = 208, /** Failed to correctly load/config PLD. (unused) */
HPI_ERROR_PLD_LOAD = 209, /** Unexpected end of file, block length too big etc. */
HPI_ERROR_DSP_FILE_FORMAT = 210,
/** Found but could not open DSP code file. */
HPI_ERROR_DSP_FILE_ACCESS_DENIED = 211, /** First DSP code section header not found in DSP file. */
HPI_ERROR_DSP_FILE_NO_HEADER = 212, /* HPI_ERROR_DSP_FILE_READ_ERROR= 213, */ /** DSP code for adapter family not found. */
HPI_ERROR_DSP_SECTION_NOT_FOUND = 214, /** Other OS specific error opening DSP file. */
HPI_ERROR_DSP_FILE_OTHER_ERROR = 215, /** Sharing violation opening DSP code file. */
HPI_ERROR_DSP_FILE_SHARING_VIOLATION = 216, /** DSP code section header had size == 0. */
HPI_ERROR_DSP_FILE_NULL_HEADER = 217,
/** Reserved for OEMs. */
HPI_ERROR_RESERVED_1 = 290,
/* HPI_ERROR_INVALID_STREAM = 300 use HPI_ERROR_INVALID_OBJ_INDEX */ /** Invalid compression format. */
HPI_ERROR_INVALID_FORMAT = 301, /** Invalid format samplerate */
HPI_ERROR_INVALID_SAMPLERATE = 302, /** Invalid format number of channels. */
HPI_ERROR_INVALID_CHANNELS = 303, /** Invalid format bitrate. */
HPI_ERROR_INVALID_BITRATE = 304, /** Invalid datasize used for stream read/write. */
HPI_ERROR_INVALID_DATASIZE = 305, /* HPI_ERROR_BUFFER_FULL = 306 use HPI_ERROR_INVALID_DATASIZE */ /* HPI_ERROR_BUFFER_EMPTY = 307 use HPI_ERROR_INVALID_DATASIZE */ /** Null data pointer used for stream read/write. */
HPI_ERROR_INVALID_DATA_POINTER = 308, /** Packet ordering error for stream read/write. */
HPI_ERROR_INVALID_PACKET_ORDER = 309,
/** Object can't do requested operation in its current
state, eg set format, change rec mux state while recording.*/
HPI_ERROR_INVALID_OPERATION = 310,
/** Where a SRG is shared amongst streams, an incompatible samplerate
is one that is different to any currently active stream. */
HPI_ERROR_INCOMPATIBLE_SAMPLERATE = 311, /** Adapter mode is illegal.*/
HPI_ERROR_BAD_ADAPTER_MODE = 312,
/** There have been too many attempts to set the adapter's capabilities(usingbadkeys),thecardshouldbereturned
to ASI if further capabilities updates are required */
HPI_ERROR_TOO_MANY_CAPABILITY_CHANGE_ATTEMPTS = 313, /** Streams on different adapters cannot be grouped. */
HPI_ERROR_NO_INTERADAPTER_GROUPS = 314, /** Streams on different DSPs cannot be grouped. */
HPI_ERROR_NO_INTERDSP_GROUPS = 315, /** Stream wait cancelled before threshold reached. */
HPI_ERROR_WAIT_CANCELLED = 316, /** A character string is invalid. */
HPI_ERROR_INVALID_STRING = 317,
/** Invalid mixer node for this adapter. */
HPI_ERROR_INVALID_NODE = 400, /** Invalid control. */
HPI_ERROR_INVALID_CONTROL = 401, /** Invalid control value was passed. */
HPI_ERROR_INVALID_CONTROL_VALUE = 402, /** Control attribute not supported by this control. */
HPI_ERROR_INVALID_CONTROL_ATTRIBUTE = 403, /** Control is disabled. */
HPI_ERROR_CONTROL_DISABLED = 404, /** I2C transaction failed due to a missing ACK. */
HPI_ERROR_CONTROL_I2C_MISSING_ACK = 405,
HPI_ERROR_I2C_MISSING_ACK = 405, /** Control is busy, or coming out of
reset and cannot be accessed at this time. */
HPI_ERROR_CONTROL_NOT_READY = 407,
/** Entity type did not match requested type */
HPI_ERROR_ENTITY_TYPE_MISMATCH = 470, /** Entity item count did not match requested count */
HPI_ERROR_ENTITY_ITEM_COUNT = 471, /** Entity type is not one of the valid types */
HPI_ERROR_ENTITY_TYPE_INVALID = 472, /** Entity role is not one of the valid roles */
HPI_ERROR_ENTITY_ROLE_INVALID = 473, /** Entity size doesn't match target size */
HPI_ERROR_ENTITY_SIZE_MISMATCH = 474,
/* AES18 specific errors were 500..507 */
/** custom error to use for debugging */
HPI_ERROR_CUSTOM = 600,
/** Backend errors used to be greater than this. \deprecatedNow,allbackendsreturnonlyerrorsdefinedhereinhpi.h
*/
HPI_ERROR_BACKEND_BASE = 900,
/** Communication with DSP failed */
HPI_ERROR_DSP_COMMUNICATION = 900 /* Note that the dsp communication error is set to this value so that itremainscompatiblewithanysoftwarethatexpectssucherrors tobebackenderrorsi.e.>=900. Donotdefineanynewerrorcodeswithvalues>900.
*/
};
/** \defgroup maximums HPI maximum values \{
*/ /** Maximum number of PCI HPI adapters */ #define HPI_MAX_ADAPTERS 20 /** Maximum number of in or out streams per adapter */ #define HPI_MAX_STREAMS 16 #define HPI_MAX_CHANNELS 2/* per stream */ #define HPI_MAX_NODES 8/* per mixer ? */ #define HPI_MAX_CONTROLS 4/* per node ? */ /** maximum number of ancillary bytes per MPEG frame */ #define HPI_MAX_ANC_BYTES_PER_FRAME (64) #define HPI_STRING_LEN 16
/** Networked adapters have index >= 100 */ #define HPI_MIN_NETWORK_ADAPTER_IDX 100
/** Velocity units */ #define HPI_OSTREAM_VELOCITY_UNITS 4096 /** OutStream timescale units */ #define HPI_OSTREAM_TIMESCALE_UNITS 10000 /** OutStream timescale passthrough - turns timescaling on in passthough mode */ #define HPI_OSTREAM_TIMESCALE_PASSTHROUGH 99999
/** An object for containing a single async event.
*/ struct hpi_async_event {
u16 event_type; /**< type of event. \sa async_event */
u16 sequence; /**< Sequence number, allows lost event detection */
u32 state; /**< New state */
u32 h_object; /**< handle to the object returning the event. */ union { struct {
u16 index; /**< GPIO bit index. */
} gpio; struct {
u16 node_index; /**< what node is the control on ? */
u16 node_type; /**< what type of node is the control on ? */
} control;
} u;
};
#define hpi_volume_get_range hpi_volume_query_range
u16 hpi_volume_query_range(u32 h_control, short *min_gain_01dB, short *max_gain_01dB, short *step_gain_01dB);
u16 hpi_volume_auto_fade(u32 h_control, short an_stop_gain0_01dB[HPI_MAX_CHANNELS], u32 duration_ms);
u16 hpi_volume_auto_fade_profile(u32 h_control, short an_stop_gain0_01dB[HPI_MAX_CHANNELS], u32 duration_ms,
u16 profile);
u16 hpi_volume_query_auto_fade_profile(const u32 h_control, const u32 i,
u16 *profile);
/*****************/ /* Level control */ /*****************/
u16 hpi_level_query_range(u32 h_control, short *min_gain_01dB, short *max_gain_01dB, short *step_gain_01dB);
u16 hpi_level_set_gain(u32 h_control, short an_gain0_01dB[HPI_MAX_CHANNELS]
);
u16 hpi_level_get_gain(u32 h_control, short an_gain0_01dB_out[HPI_MAX_CHANNELS]
);
/*****************/ /* Meter control */ /*****************/
u16 hpi_meter_query_channels(const u32 h_meter, u32 *p_channels);
u16 hpi_meter_get_peak(u32 h_control, short an_peak0_01dB_out[HPI_MAX_CHANNELS]
);
u16 hpi_meter_get_rms(u32 h_control, short an_peak0_01dB_out[HPI_MAX_CHANNELS]
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.