Für mein Projekt_m8 möchte ich im Radio Modul den Artist und den Titel anzeigen.
der mpc ermittelt im Format artist - titel den Interpreten und den Titel und schreibt die Datei titel.txt
das Problem im C-Berry stehen 2 Zeilen mit max. 28 Byte zur Verfügung der Artist wird immer richtig angezeigt.
der Titel wird ab und zu immer noch mit dem New Line Zeichen angezeigt.
Wie kann die Funktion optimiert werden um die variablen Längen von Artist und Titel abzufangen.
Sowie das sporadische Anzeigen des New Line Zeichen bei der Titel Anzeige dauerhaft zu verhindern.
Code
// Globale Variablen für die Titelanzeige im Radio Modul
char d_titel [28]; // Ein Dummy
char titel [28];
char artist [28];
void radio_titel ()
{
char titelbuf[56];
char titelpath[] = "/home/pi//projekt_m8/titel.txt";
char trennzeichen[] = "-";
char *wort;
int i=1;
system("mpc current -f %title% > titel.txt");
FILE *titel_datei;
titel_datei = fopen (titelpath, "r");
if (titel_datei == NULL)
{
printf("Fehler beim oeffnen der Datei.\n");
}
else if (titel_datei != NULL)
{
fread(titelbuf, 55, 1, titel_datei);
fclose (titel_datei);
}
wort = strtok(titelbuf, trennzeichen);
while(wort != NULL) {
// Versuch 1 die Variable titel mit der Leer/Dummy Variablen d_titel zu überschreiben.
strncpy (titel, d_titel, 28);
if (i == 1)
{
snprintf(artist, 27, "%s", wort);
//printf("Der Artist: %s\n", artist);
i++;
}
else
{
snprintf(titel, 27, "%s", wort);
// Versuch 2 um das New Line in der Display Infozeile zu löschen aber nicht zu 100%
titel[(strlen(titel))-1] = '\0';
//printf("Der Titel: %s\n", titel);
i=1;
}
wort = strtok(NULL, trennzeichen);
}
return;
}
Alles anzeigen