blob: d97464dc1fff5dce87e48b17f7fc2bb1dac40429 [file] [log] [blame]
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include "ring_tele.h"
#include "lynq/lynq-qser-audio.h"
static int playback_handle = 1;
void player_cmd_proc(char *cmdstr)
{
if (strcmp(cmdstr, "P\n") == 0)
{
qser_AudPlayer_Pause(playback_handle);
}
else if (strcmp(cmdstr, "R\n") == 0)
{
qser_AudPlayer_Resume(playback_handle);
}
else if (strcmp(cmdstr, "T\n") == 0)
{
qser_AudPlayer_Stop(playback_handle);
}
else
{
printf("Unknown command: %s", cmdstr);
}
}
void capture_cmd_proc(char *cmdstr)
{
if (strcmp(cmdstr, "P\n") == 0)
{
qser_AudRecorder_Pause();
}
else if (strcmp(cmdstr, "R\n") == 0)
{
qser_AudRecorder_Resume();
}
else if (strcmp(cmdstr, "T\n") == 0)
{
qser_AudRecorder_Stop();
}
else
{
printf("Unknown command: %s", cmdstr);
}
}
int main(int argc, char *argv[])
{
if (argc < 2)
{
printf("Usage: %s <play|recd|playbuf> [file]\n", argv[0]);
return 1;
}
const char *action = argv[1];
const char *file = argv[2];
int g_audio_owner_id = 0;
char player_device[] = "device1";
char recorder_device[] = "device2";
char cmdstr[256];
_cb_onPlayer cb_fun = [](int result)
{
if (result == 0)
{
printf("Audio recorder opened successfully.\n");
}
else
{
printf("Failed to open audio recorder, error code: %d\n", result);
}
};
if (strcmp(action, "playbuf") == 0)
{
int player_open_result = qser_AudPlayer_Open(player_device, cb_fun);
if (player_open_result != 0)
{
printf("Failed to open audio player.\n");
return 1;
}
qser_AudPlayer_PlayPcmBuf(PCM_DATA, PCM_DATA_SIZE, 640, 3, 1, 8000, g_audio_owner_id);
while (1)
{
printf("Please input a player command (P/R/T/exit) :\n");
if (fgets(cmdstr, sizeof(cmdstr), stdin) != NULL)
{
if (strcmp(cmdstr, "exit\n") == 0)
{
qser_AudPlayer_Close(playback_handle);
break;
}
player_cmd_proc(cmdstr);
}
}
qser_AudPlayer_Close(playback_handle);
}
else if (strcmp(action, "play") == 0)
{
int player_open_result = qser_AudPlayer_Open(player_device, cb_fun);
if (player_open_result != 0)
{
printf("Failed to open audio player.\n");
return 1;
}
qser_AudPlayer_PlayFrmFile(g_audio_owner_id, file, 0);
while (1)
{
printf("Please input a player command (P/R/T/exit) :\n");
if (fgets(cmdstr, sizeof(cmdstr), stdin) != NULL)
{
if (strcmp(cmdstr, "exit\n") == 0)
{
qser_AudPlayer_Close(playback_handle);
break;
}
player_cmd_proc(cmdstr);
}
}
qser_AudPlayer_Close(playback_handle);
}
else if (strcmp(action, "recd") == 0)
{
int recorder_open_result = qser_AudRecorder_Open(recorder_device, cb_fun);
if (recorder_open_result != 0) {
printf("Failed to open audio recorder.\n");
return 1;
}
qser_AudRecorder_StartRecord(g_audio_owner_id, file, 0);
while (1)
{
printf("Please input a player command (P/R/T/exit) :\n");
if (fgets(cmdstr, sizeof(cmdstr), stdin) != NULL)
{
if (strcmp(cmdstr, "exit\n") == 0)
{
qser_AudRecorder_Close();
break;
}
capture_cmd_proc(cmdstr);
}
}
qser_AudRecorder_Close();
}
else
{
printf("Unknown action: %s\n", action);
return 1;
}
qser_Audio_Deinit();
return 0;
}