void rockon_data_clean(rockon_data *rdata) { assert(rdata); if (rdata->playback_info != NULL) { media_info_del(rdata->playback_info); } if (rdata->playlists != NULL) { playlist_list_del(rdata->playlists); } if (rdata->volume != NULL) { volume_del(rdata->volume); } xmms2_shutdown(rdata); }
void volume_load(void) { FILE *f; char buf[4096]; Eina_List *tvolumes, *l; snprintf(buf, sizeof(buf), "%s/volumes", config); tvolumes = volumes; volumes = NULL; f = fopen(buf, "rb"); for (l = tvolumes; l; l = l->next) volumes = eina_list_append(volumes, strdup(l->data)); if (f) { while (fgets(buf, sizeof(buf), f)) { int len; char *vol; len = strlen(buf); if (len < 1) continue; if (buf[0] == '#') continue; if (buf[len - 1] == '\n') buf[len - 1] = 0; vol = volume_list_exists(tvolumes, buf); if (!vol) volume_add(buf); else { tvolumes = eina_list_remove(tvolumes, vol); free(vol); } } fclose(f); } /* whats left in tvolumes is to be deleted */ while (tvolumes) { char *vol; vol = tvolumes->data; tvolumes = eina_list_remove_list(tvolumes, tvolumes); volume_del(vol); free(vol); } }
void volume_update(void) { while (volumes) volume_del(volumes->data); volumes_load_timer = ecore_timer_add(SCANDELAY, volume_timer, NULL); }