sim/sim_alsa: register pcm1p/pcm1c audio device.

use pcm1p/pcm1c to simulate offload playback/capture.

Signed-off-by: qiaohaijiao1 <qiaohaijiao1@xiaomi.com>
This commit is contained in:
qiaohaijiao1
2023-01-04 18:18:15 +08:00
committed by Petro Karashchenko
parent d17b6fa58b
commit 05a12ba69e
3 changed files with 21 additions and 6 deletions
+11 -3
View File
@@ -82,6 +82,7 @@ struct sim_audio_s
sq_entry_t link;
bool playback;
bool offload;
uint32_t frame_size;
uint32_t nbuffers;
uint32_t buffer_size;
@@ -396,8 +397,14 @@ static int sim_audio_getcaps(struct audio_lowerhalf_s *dev, int type,
AUDIO_TYPE_INPUT) |
AUDIO_TYPE_FEATURE |
AUDIO_TYPE_PROCESSING;
caps->ac_format.hw = (1 << (AUDIO_FMT_PCM - 1)) |
(1 << (AUDIO_FMT_MP3 - 1));
if (priv->offload)
{
caps->ac_format.hw = (1 << (AUDIO_FMT_MP3 - 1));
}
else
{
caps->ac_format.hw = (1 << (AUDIO_FMT_PCM - 1));
}
break;
case AUDIO_FMT_MP3:
caps->ac_controls.b[0] = AUDIO_SUBFMT_PCM_MP3;
@@ -1014,7 +1021,7 @@ void sim_audio_loop(void)
}
}
struct audio_lowerhalf_s *sim_audio_initialize(bool playback)
struct audio_lowerhalf_s *sim_audio_initialize(bool playback, bool offload)
{
struct sim_audio_s *priv;
int ret;
@@ -1026,6 +1033,7 @@ struct audio_lowerhalf_s *sim_audio_initialize(bool playback)
}
priv->playback = playback;
priv->offload = offload;
priv->dev.ops = &g_sim_audio_ops;
ret = sim_mixer_open(priv);
+9 -2
View File
@@ -282,8 +282,15 @@ void up_initialize(void)
#endif
#ifdef CONFIG_SIM_SOUND
audio_register("pcm0p", sim_audio_initialize(true));
audio_register("pcm0c", sim_audio_initialize(false));
/* Register audio normal device */
audio_register("pcm0p", sim_audio_initialize(true, false));
audio_register("pcm0c", sim_audio_initialize(false, false));
/* Register audio compress device */
audio_register("pcm1p", sim_audio_initialize(true, true));
audio_register("pcm1c", sim_audio_initialize(false, true));
#endif
kthread_create("loop_task", SCHED_PRIORITY_MAX,
+1 -1
View File
@@ -354,7 +354,7 @@ int sim_bthcisock_loop(void);
/* sim_audio.c **************************************************************/
#ifdef CONFIG_SIM_SOUND
struct audio_lowerhalf_s *sim_audio_initialize(bool playback);
struct audio_lowerhalf_s *sim_audio_initialize(bool playback, bool offload);
void sim_audio_loop(void);
#endif