static int play(int argc, char *argv[]) { int fd; struct stat st; if (argc != 2) { fprintf(stderr, "Usage: %s <device>|<recording>\n", argv[0]); fprintf(stderr, "\n"); fprintf(stderr, "If the argument is an input event node,\n" "event data is read from standard input.\n"); fprintf(stderr, "If the argument is an evemu recording,\n" "the device is created and the event data is" "read from the same device.\n"); return -1; } fd = open(argv[1], O_RDWR); if (fd < 0) { fprintf(stderr, "error: could not open file or device (%m)\n"); return -1; } if (fstat(fd, &st) == -1) { fprintf(stderr, "error: failed to look at file (%m)\n"); return -1; } if (S_ISCHR(st.st_mode)) play_from_stdin(fd); else play_from_file(fd); close(fd); return 0; }
void audio_PMP_record_demo() { INT nMICLToggle=0; INT nLINEIN1Toggle=0; INT nLINEIN2Toggle=0; INT nSPToggle=0; INT nHPToggle=0; while(1) { INT8 choose; printf("1.Enable bypass\n"); printf("2.Disable bypass\n"); printf("3.Start record 10sec PCM to file\n"); printf("4.Play from file\n"); printf("5.En/Disable Path\n"); #if USEUART choose = sysGetChar(); #else scanf("%c",&choose); #endif switch (choose) { case '1':audioSetPlayVolume(20,20); //WM8978_Bypass_Enable(); audioBypassEnable(); break; case '2'://WM8978_Bypass_Disable(); audioBypassDisable(); break; case '3':record_to_file(8000,1); break; case '4':play_from_file(8000,1); break; case '5': { printf("select output path\n"); printf("1.Speaker:%d\n",nSPToggle); printf("2.Head phone:%d\n",nHPToggle); #if USEUART choose = sysGetChar(); #else scanf("%c",&choose); #endif if (choose == '1') { if (nSPToggle) nSPToggle = 0; else nSPToggle = 1; audioSelectOutputPath(OUT_PATH_SP,nSPToggle); } if (choose == '2') { if (nHPToggle) nHPToggle = 0; else nHPToggle = 1; audioSelectOutputPath(OUT_PATH_HP,nHPToggle); } } { printf("select input path\n"); printf("1.MicL IN:%d\n",nMICLToggle); printf("2.FM IN:%d\n",nLINEIN1Toggle); printf("3.LINE IN:%d\n",nLINEIN2Toggle); #if USEUART choose = sysGetChar(); #else scanf("%c",&choose); #endif if (choose=='1') { if (nMICLToggle) nMICLToggle = 0; else nMICLToggle = 1; audioSelectInputPath(IN_PATH_MICL,nMICLToggle); } if (choose=='2') { if (nLINEIN1Toggle) nLINEIN1Toggle = 0; else nLINEIN1Toggle = 1; audioSelectInputPath(IN_PATH_LINEIN1,nLINEIN1Toggle); } if (choose=='3') { if (nLINEIN2Toggle) nLINEIN2Toggle = 0; else nLINEIN2Toggle = 1; audioSelectInputPath(IN_PATH_LINEIN2,nLINEIN2Toggle); } } break; default: break; } } }