diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 53 |
1 files changed, 29 insertions, 24 deletions
@@ -231,30 +231,35 @@ int main (int argc, char **argv) { BarUiPrintSong (curSong, curStation->isQuickMix ? PianoFindStationById (ph.stations, curSong->stationId) : NULL); - /* setup artist and song name for scrobbling (curSong - * may be NULL later) */ - WardrobeSongInit (&scrobbleSong); - scrobbleSong.artist = strdup (curSong->artist); - scrobbleSong.title = strdup (curSong->title); - scrobbleSong.album = strdup (curSong->album); - scrobbleSong.started = time (NULL); - - /* setup player */ - memset (&player, 0, sizeof (player)); - - WaitressInit (&player.waith); - WaitressSetUrl (&player.waith, curSong->audioUrl); - - player.gain = curSong->fileGain; - player.audioFormat = curSong->audioFormat; - - /* throw event */ - BarUiStartEventCmd (&settings, "songstart", curStation, - curSong, PIANO_RET_OK); - - /* start player */ - pthread_create (&playerThread, NULL, BarPlayerThread, - &player); + + if (curSong->audioUrl == NULL) { + BarUiMsg (MSG_ERR, "Invalid song url\n"); + } else { + /* setup artist and song name for scrobbling (curSong + * may be NULL later) */ + WardrobeSongInit (&scrobbleSong); + scrobbleSong.artist = strdup (curSong->artist); + scrobbleSong.title = strdup (curSong->title); + scrobbleSong.album = strdup (curSong->album); + scrobbleSong.started = time (NULL); + + /* setup player */ + memset (&player, 0, sizeof (player)); + + WaitressInit (&player.waith); + WaitressSetUrl (&player.waith, curSong->audioUrl); + + player.gain = curSong->fileGain; + player.audioFormat = curSong->audioFormat; + + /* throw event */ + BarUiStartEventCmd (&settings, "songstart", curStation, + curSong, PIANO_RET_OK); + + /* start player */ + pthread_create (&playerThread, NULL, BarPlayerThread, + &player); + } } } /* end if curStation != NULL */ } |