/* * Copyright 2013 (c) Anna Schumaker. */ #include #include #include static std::list playlist_deck; Playlist *deck :: create() { playlist_deck.push_back(Playlist(PL_ENABLED)); return &playlist_deck.back(); } void deck :: remove(unsigned int id) { std::list::iterator it = playlist_deck.begin(); for (unsigned int i = 0; i < id; i++) it++; playlist_deck.erase(it); } Playlist *deck :: get(unsigned int id) { std::list::iterator it = playlist_deck.begin(); for (unsigned int i = 0; i < id; i++) it++; return &(*it); } void deck :: move(unsigned int old_pos, unsigned int new_pos) { std::list::iterator it_old = playlist_deck.begin(); std::list::iterator it_new = playlist_deck.begin(); for (unsigned int i = 0; i < playlist_deck.size(); i++) { if (i < old_pos) it_old++; if (i < new_pos) it_new++; } if (new_pos > old_pos) it_new++; playlist_deck.splice(it_new, playlist_deck, it_old); } #ifdef CONFIG_DEBUG void deck :: print_info() { unsigned int i = 0; std::list::iterator it; for (it = playlist_deck.begin(); it != playlist_deck.end(); it++) { print("deck[%u] = Playlist { size = %u, flags = %u }\n", i, it->size(), it->get_flags()); i++; } } #endif /* CONFIG_DEBUG */