mirror of
https://github.com/apache/nuttx.git
synced 2026-06-07 17:33:08 +08:00
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:
committed by
Petro Karashchenko
parent
d17b6fa58b
commit
05a12ba69e
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user