ich habe einfach Berührungsängste was Monsterlibs angeht und möchte so was nur in äußersten, unumgänglichen Notfällen installieren - die sehe ich hier allerdings nicht wirklich: was soll ncurses können, was normale printf/sprintf-Befehle nicht können?
- - - Aktualisiert - - -
Die Menüabfrage ist ja auch total simpel:
Code:
// Terminal: move cursor
#define cursup "\033[A"
#define curshome "\033[0;0H"
#define cls_cons "\033[2J"
FILE * fp;
int32_t input[];
void printMenu() {
printf( cls_cons );
printf( curshome );
printf(" \n
0 Soundfile *.csv in Programm öffnen / laden \n
1 Soundfile *.wav in Programm öffnen / laden \n
2 Soundfile *.wav öffnen / abspielen + Plot \n
3 Sound aufnehmen per Micro / SoundCard \n
4 akt. Sound (Array im RAM) abspielen + Plot \n
5 akt. Sound optimieren (noise/cut) \n
6 akt. Sound (im RAM) als *.wav File speichern unter... \n
7 akt. Sound an FFT + Plot \n
8 akt. Sound cross correlation mit 1 wav File \n
9 akt. Sound cross correlation mit allen *.wav Files (auto) \n\n
q Quit \n\n"
}
int main() {
//...init dies
//...init das
int ch='\0';
while (ch!='q') {
ch='\0';
printMenu();
ch=getchar();
if ch=='q' exit(0);
else
if ch=='0' {fp=FileOpenDialog("*.csv"); // wrapper um popen mit Zenity
getArrayfromFile(input, SHRT_MAX, fp); }
else
if ch=='1' { fp=FileOpenDialog("*.wav"); // wrapper um popen mit Zenity
getArrayfromFile(input, SHRT_MAX, fp);
eraseWavHeader(input, SHRT_MAX); }
else
if ch=='2' { fp=FileOpenDialog("*.wav");
playWaveFile( fp ); // wrapper um popen mit Zenity
plotArray(input, SHRT_MAX ); }
else
if ch=='3' {recordArray(input, SHRT_MAX ); } // von Micro
else
if ch=='4' {playArray(input, SHRT_MAX );
plotArray(input, SHRT_MAX ); }
else
if ch=='5' {optimizeArray(input, SHRT_MAX); // (Nachfolger von analyseArray)
plotArray(input, SHRT_MAX ); }
else
if ch=='6' {buildWavFileArray(input, waveBuffer, SHRT_MAX ); // wav Header vor das Wort setzen
FileSaveDialog(fp, "*.wav"); } // wrapper um popen mit Zenity, als wav file speichern
else
if ch=='7' {;} // FFT, folgt
else
if ch=='8' {;} // FFT, folgt
else
if ch=='9' {;} // FFT, folgt
}
}
Lesezeichen