1 /*
2  INTEL CONFIDENTIAL
3  Copyright 2009 Intel Corporation All Rights Reserved.
4  The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or its suppliers and licensors. The Material contains trade secrets and proprietary and confidential information of Intel or its suppliers and licensors. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Intel’s prior express written permission.
5 
6  No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be express and approved by Intel in writing.
7 */
8 
9 #ifndef __MIX_ACP_MP3_H__
10 #define __MIX_ACP_MP3_H__
11 
12 
13 #include "mixacp.h"
14 
15 /**
16  * MIX_TYPE_AUDIOCONFIGPARAMSMP3:
17  *
18  * Get type of class.
19  */
20 #define MIX_TYPE_AUDIOCONFIGPARAMSMP3 (mix_acp_mp3_get_type ())
21 
22 /**
23  * MIX_AUDIOCONFIGPARAMSMP3:
24  * @obj: object to be type-casted.
25  *
26  * Type casting.
27  */
28 #define MIX_AUDIOCONFIGPARAMSMP3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIX_TYPE_AUDIOCONFIGPARAMSMP3, MixAudioConfigParamsMP3))
29 
30 /**
31  * MIX_IS_AUDIOCONFIGPARAMSMP3:
32  * @obj: an object.
33  *
34  * Checks if the given object is an instance of #MixAudioConfigParamsMP3
35  */
36 #define MIX_IS_AUDIOCONFIGPARAMSMP3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIX_TYPE_AUDIOCONFIGPARAMSMP3))
37 
38 /**
39  * MIX_AUDIOCONFIGPARAMSMP3_CLASS:
40  * @klass: class to be type-casted.
41  *
42  * Type casting.
43  */
44 #define MIX_AUDIOCONFIGPARAMSMP3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MIX_TYPE_AUDIOCONFIGPARAMSMP3, MixAudioConfigParamsMP3Class))
45 
46 /**
47  * MIX_IS_AUDIOCONFIGPARAMSMP3_CLASS:
48  * @klass: a class.
49  *
50  * Checks if the given class is #MixAudioConfigParamsMP3Class
51  */
52 #define MIX_IS_AUDIOCONFIGPARAMSMP3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MIX_TYPE_AUDIOCONFIGPARAMSMP3))
53 
54 /**
55  * MIX_AUDIOCONFIGPARAMSMP3_GET_CLASS:
56  * @obj: a #MixAudioConfigParams object.
57  *
58  * Get the class instance of the object.
59  */
60 #define MIX_AUDIOCONFIGPARAMSMP3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MIX_TYPE_AUDIOCONFIGPARAMSMP3, MixAudioConfigParamsMP3Class))
61 
62 typedef struct _MixAudioConfigParamsMP3        MixAudioConfigParamsMP3;
63 typedef struct _MixAudioConfigParamsMP3Class   MixAudioConfigParamsMP3Class;
64 
65 /**
66  * MixAudioConfigParamsMP3:
67  * @parent: parent.
68  * @CRC: CRC. See #MIX_ACP_MP3_CRC
69  * @MPEG_format: <emphasis>Optional</emphasis>MPEG format of the mpeg audio. See #MIX_ACP_MP3_MPEG_FORMAT
70  * @MPEG_layer: <emphasis>Optional</emphasis>MPEG layer of the mpeg audio. See #MIX_ACP_MP3_MPEG_LAYER
71  *
72  * MI-X Audio Parameter object for MP3 Audio.
73  */
74 struct _MixAudioConfigParamsMP3
75 {
76   /*< public >*/
77   MixAudioConfigParams parent;
78 
79   /*< public >*/
80   /* Audio Format Parameters */
81   gboolean CRC;
82   gint MPEG_format;
83   gint MPEG_layer;
84 
85   /*< private >*/
86   void* reserved1;
87   void* reserved2;
88   void* reserved3;
89   void* reserved4;
90 };
91 
92 /**
93  * MixAudioConfigParamsMP3Class:
94  *
95  * MI-X Audio object class
96  */
97 struct _MixAudioConfigParamsMP3Class
98 {
99   /*< public >*/
100   MixAudioConfigParamsClass parent_class;
101 
102   /* class members */
103 };
104 
105 /**
106  * mix_acp_mp3_get_type:
107  * @returns: type
108  *
109  * Get the type of object.
110  */
111 GType mix_acp_mp3_get_type (void);
112 
113 /**
114  * mix_acp_mp3_new:
115  * @returns: A newly allocated instance of #MixAudioConfigParamsMP3
116  *
117  * Use this method to create new instance of #MixAudioConfigParamsMP3
118  */
119 MixAudioConfigParamsMP3 *mix_acp_mp3_new(void);
120 
121 /**
122  * mix_acp_mp3_ref:
123  * @mix: object to add reference
124  * @returns: the MixAudioConfigParamsMP3 instance where reference count has been increased.
125  *
126  * Add reference count.
127  */
128 MixAudioConfigParamsMP3 *mix_acp_mp3_ref(MixAudioConfigParamsMP3 *mix);
129 
130 /**
131  * mix_acp_mp3_unref:
132  * @obj: object to unref.
133  *
134  * Decrement reference count of the object.
135  */
136 #define mix_acp_mp3_unref(obj) mix_params_unref(MIX_PARAMS(obj))
137 
138 /* Class Methods */
139 
140 /**
141  * MIX_ACP_MP3_CRC:
142  * @obj: #MixAudioConfigParamsMP3 object.
143  *
144  * MixAudioConfigParamMP3.CRC accessor.
145  *
146  * <remark>Optional</remark>
147 */
148 #define MIX_ACP_MP3_CRC(obj) (MIX_AUDIOCONFIGPARAMSMP3(obj)->CRC)
149 
150 /**
151  * MIX_ACP_MP3_MPEG_FORMAT:
152  * @obj: #MixAudioConfigParamsMP3 object.
153  *
154  * MixAudioConfigParamMP3.MPEG_format accessor.
155  *
156  * Supported MPEG format should be 1 or 2.
157 */
158 #define MIX_ACP_MP3_MPEG_FORMAT(obj) (MIX_AUDIOCONFIGPARAMSMP3(obj)->MPEG_format)
159 
160 /**
161  * MIX_ACP_MP3_MPEG_LAYER:
162  * @obj: #MixAudioConfigParamsMP3 object.
163  *
164  * MixAudioConfigParamMP3.MPEG_layer accessor.
165  *
166  * Supported layer should be 1, 2, or 3.
167 */
168 #define MIX_ACP_MP3_MPEG_LAYER(obj) (MIX_AUDIOCONFIGPARAMSMP3(obj)->MPEG_layer)
169 
170 #endif /* __MIX_AUDIOCONFIGPARAMSMP3_H__ */
171