Split Decoder Output Circular Buffer code between Master (DSP:init,read) and Slave...
[processor-sdk/performance-audio-sr.git] / processor_audio_sdk_1_00_00_00 / pasdk / common / audioStreamProc_config.h
2 /*
3 Copyright (c) 2016, Texas Instruments Incorporated - http://www.ti.com/
4 All rights reserved.
6 * Redistribution and use in source and binary forms, with or without 
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the
16 * distribution.
17 *
18 * Neither the name of Texas Instruments Incorporated nor the names of
19 * its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
36 //
37 // Framework -- Configuration Declarations
38 //
40 #ifndef _ASP_CONFIG_H_
41 #define _ASP_CONFIG_H_
43 #include <xdc/std.h>
44 //#include <ti/procsdk_audio/procsdk_audio_typ.h>
45 #include <procsdk_audio_typ.h>
47 #include "alg.h"
48 #include <sio.h>
50 #include <acp.h>
52 #include <paftyp.h>
53 #include <inpbuf.h>
54 #include <pafdec.h>
55 #include <pafenc.h>
56 #include <pafvol.h>
57 #include <outbuf.h>
59 #include "as1-f2.h"
60 #include "asp0.h"
62 #include "aspDecOpCircBuf_common.h"
64 #ifdef HSE_MSGQ
65 #include <msgq.h>
66 #include <pool.h>
67 #include <staticpool.h>
68 #endif
70 //
71 // Audio Framework Configuration
72 //
74 typedef struct PAF_AST_InpBuf {
75     SIO_Handle          hRxSio;
76     PAF_InpBufConfig    inpBufConfig;
77     PAF_InpBufConfig   *pInpBuf; /* Decode Processing Temporary */
78     PAF_InpBufStatus    inpBufStatus;
79     PAF_ASP_Chain       inpChainData;
80 } PAF_AST_InpBuf;
82 typedef struct PAF_AST_Decode {
83     PAF_DecodeControl   decodeControl;
84     PAF_DecodeStatus    decodeStatus;
85     PAF_DecodeInStruct  decodeInStruct;
86     PAF_DecodeOutStruct decodeOutStruct;
87     PAF_ASP_Chain       decChainData;
88     ALG_Handle          decAlg[PAF_SOURCE_N];
89     PAF_AudioFrame     *pAudioFrame;
90 } PAF_AST_Decode;
92 typedef struct PAF_AST_Stream {
93     PAF_AudioData      *audioFrameChannelPointers[PAF_MAXNUMCHAN_AF];
94     PAF_AudioSize       audioFrameChannelSizes[PAF_MAXNUMCHAN_AF];
95     PAF_AudioFrame     *pAudioFrame;
96     PAF_ASP_Chain       aspChainData[GEARS];
97     PAF_ASP_Chain      *aspChain[GEARS];
98     PAF_AudioData      *origAudioFrameChannelPointers[PAF_MAXNUMCHAN_AF];
99 } PAF_AST_Stream;
101 typedef struct PAF_AST_OutBuf {
102     SIO_Handle          hTxSio;
103     PAF_OutBufConfig    outBufConfig;
104     PAF_OutBufConfig   *pOutBuf; /* Decode Processing Temporary */
105     PAF_OutBufStatus    outBufStatus;
106     PAF_ASP_Chain       outChainData;
107 } PAF_AST_OutBuf;
109 typedef struct PAF_AST_Encode {
110     PAF_EncodeControl   encodeControl;
111     PAF_EncodeStatus    encodeStatus;
112     PAF_VolumeStatus    volumeStatus;
113     PAF_EncodeInStruct  encodeInStruct;
114     PAF_EncodeOutStruct encodeOutStruct;
115     PAF_ASP_Chain       encChainData;
116     ALG_Handle          encAlg[PAF_SOURCE_N];
117 } PAF_AST_Encode;
119 #ifdef HSE_MSGQ
120 typedef struct PAF_AST_MQ {
121     MSGQ_Queue rx;
122     MSGQ_Queue reply;
123 } PAF_AST_MQ;
124 #endif
126 typedef struct PAF_AST_Config {
127     Int                  as;
128     //ACP_Handle           acp;
129     //ACP_Handle           acpSlave;
130     PAF_AST_InpBuf       *xInp;     /* INPUT1 -INPUTN  */
131     PAF_AST_Decode       *xDec;     /* DECODE1-DECODEN */
132     PAF_AST_Stream       *xStr;     /* STREAM1-STREAMN */
133     PAF_AST_Encode       *xEnc;     /* ENCODE1-ENCODEN */
134     PAF_AST_OutBuf       *xOut;     /* OUTPUT1-OUTPUTN */
135     PAF_AST_DecOpCircBuf *xDecOpCb; /* DECODE1-DECODEN */
136     SmInt                masterDec; // these two are computer based on MASTER input
137     SmInt                masterStr;
138 #ifdef HSE_MSGQ
139     PAF_AST_MQ           mq;
140 #endif
141 } PAF_AST_Config;
143 extern PAF_AST_Config *pC;  /* Global configuration pointer */
146 #endif  /* _ASP_CONFIG_H_ */