Skip to content

Commit 6a1abbc

Browse files
mks2183xiaoxiang781216
authored andcommitted
driver/audio: remove unnecessary switch in switch
- There is unnecessary switch inside switch which is making code not too readable Signed-off-by: Manish Kumar Sharma <[email protected]>
1 parent dbd13c2 commit 6a1abbc

File tree

3 files changed

+22
-48
lines changed

3 files changed

+22
-48
lines changed

drivers/audio/audio_dma.c

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -156,28 +156,27 @@ static int audio_dma_getcaps(struct audio_lowerhalf_s *dev, int type,
156156

157157
caps->ac_channels = 2; /* Stereo output */
158158

159-
switch (caps->ac_subtype)
159+
if (caps->ac_subtype == AUDIO_TYPE_QUERY)
160160
{
161-
case AUDIO_TYPE_QUERY:
162-
163161
/* We don't decode any formats! Only something above us in
164162
* the audio stream can perform decoding on our behalf.
165163
*/
166164

167165
/* The types of audio units we implement */
168166

169167
if (audio_dma->playback)
168+
{
170169
caps->ac_controls.b[0] = AUDIO_TYPE_OUTPUT;
170+
}
171171
else
172+
{
172173
caps->ac_controls.b[0] = AUDIO_TYPE_INPUT;
173-
caps->ac_format.hw = 1 << (AUDIO_FMT_PCM - 1);
174-
break;
174+
}
175175

176-
default:
177-
caps->ac_controls.b[0] = AUDIO_SUBFMT_END;
178-
break;
176+
caps->ac_format.hw = 1 << (AUDIO_FMT_PCM - 1);
179177
}
180178

179+
caps->ac_controls.b[0] = AUDIO_SUBFMT_END;
181180
break;
182181

183182
/* Provide capabilities of our OUTPUT unit */
@@ -187,25 +186,11 @@ static int audio_dma_getcaps(struct audio_lowerhalf_s *dev, int type,
187186

188187
caps->ac_channels = 2;
189188

190-
switch (caps->ac_subtype)
189+
if (caps->ac_subtype == AUDIO_TYPE_QUERY)
191190
{
192-
case AUDIO_TYPE_QUERY:
193-
194191
/* Report the Sample rates we support */
195192

196-
caps->ac_controls.hw[0] = AUDIO_SAMP_RATE_8K |
197-
AUDIO_SAMP_RATE_11K |
198-
AUDIO_SAMP_RATE_16K |
199-
AUDIO_SAMP_RATE_22K |
200-
AUDIO_SAMP_RATE_32K |
201-
AUDIO_SAMP_RATE_44K |
202-
AUDIO_SAMP_RATE_48K |
203-
AUDIO_SAMP_RATE_96K |
204-
AUDIO_SAMP_RATE_128K |
205-
AUDIO_SAMP_RATE_160K |
206-
AUDIO_SAMP_RATE_172K |
207-
AUDIO_SAMP_RATE_192K;
208-
break;
193+
caps->ac_controls.hw[0] = AUDIO_SAMP_RATE_DEF_ALL;
209194
}
210195

211196
break;

drivers/audio/audio_i2s.c

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,8 @@ static int audio_i2s_getcaps(FAR struct audio_lowerhalf_s *dev, int type,
151151
* must then call us back for specific info for each capability.
152152
*/
153153

154-
switch (caps->ac_subtype)
154+
if (caps->ac_subtype == AUDIO_TYPE_QUERY)
155155
{
156-
case AUDIO_TYPE_QUERY:
157-
158156
/* We don't decode any formats! Only something above us in
159157
* the audio stream can perform decoding on our behalf.
160158
*/
@@ -172,43 +170,28 @@ static int audio_i2s_getcaps(FAR struct audio_lowerhalf_s *dev, int type,
172170

173171
caps->ac_format.hw = 1 << (AUDIO_FMT_PCM - 1);
174172
break;
175-
176-
default:
177-
caps->ac_controls.b[0] = AUDIO_SUBFMT_END;
178-
break;
179173
}
180-
break;
174+
175+
caps->ac_controls.b[0] = AUDIO_SUBFMT_END;
176+
break;
181177

182178
/* Provide capabilities of our OUTPUT unit */
183179

184180
case AUDIO_TYPE_OUTPUT:
185181
case AUDIO_TYPE_INPUT:
186182

187-
switch (caps->ac_subtype)
183+
if (caps->ac_subtype == AUDIO_TYPE_QUERY)
188184
{
189-
case AUDIO_TYPE_QUERY:
190-
191185
/* Report the Sample rates we support */
192186

193-
caps->ac_controls.hw[0] =
194-
AUDIO_SAMP_RATE_8K | AUDIO_SAMP_RATE_11K |
195-
AUDIO_SAMP_RATE_16K | AUDIO_SAMP_RATE_22K |
196-
AUDIO_SAMP_RATE_32K | AUDIO_SAMP_RATE_44K |
197-
AUDIO_SAMP_RATE_48K | AUDIO_SAMP_RATE_96K |
198-
AUDIO_SAMP_RATE_128K | AUDIO_SAMP_RATE_160K |
199-
AUDIO_SAMP_RATE_172K | AUDIO_SAMP_RATE_192K;
200-
break;
201-
202-
default:
203-
I2S_IOCTL(i2s, AUDIOIOC_GETCAPS, (unsigned long)caps);
187+
caps->ac_controls.hw[0] = AUDIO_SAMP_RATE_DEF_ALL;
204188
break;
205189
}
206-
break;
207190

208191
default:
209192
I2S_IOCTL(i2s, AUDIOIOC_GETCAPS, (unsigned long)caps);
210193
break;
211-
}
194+
}
212195

213196
return caps->ac_len;
214197
}

include/nuttx/audio/audio.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,12 @@
213213
#define AUDIO_SAMP_RATE_160K 0x0400
214214
#define AUDIO_SAMP_RATE_172K 0x0800
215215
#define AUDIO_SAMP_RATE_192K 0x1000
216+
#define AUDIO_SAMP_RATE_DEF_ALL (AUDIO_SAMP_RATE_8K | AUDIO_SAMP_RATE_11K | \
217+
AUDIO_SAMP_RATE_16K | AUDIO_SAMP_RATE_22K | \
218+
AUDIO_SAMP_RATE_32K | AUDIO_SAMP_RATE_44K | \
219+
AUDIO_SAMP_RATE_88K | AUDIO_SAMP_RATE_96K | \
220+
AUDIO_SAMP_RATE_128K | AUDIO_SAMP_RATE_160K | \
221+
AUDIO_SAMP_RATE_172K | AUDIO_SAMP_RATE_192K )
216222

217223
/* Audio Sub-sampling Ratios ***********************************************/
218224

0 commit comments

Comments
 (0)