| #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; |
| } |