Как получить список файлов в текущем плейлисте?

Список разделов Аудиоплеер foobar2000 Программирование foobar2000

Описание: Для программистов, пищущих плагины для foobar2000. SDK и обмен опытом

Сообщение #1 P_Igorek » 06.01.2009, 19:26

Собственно, как получить список файлов в текущем плейлесте (в очереди воспроизведения). Какое API для этого можно использовать?

P_Igorek
P_Igorek
Автор темы, Новичок
Репутация: 0
С нами: 8 лет 4 месяца

Сообщение #2 skipyrich » 06.01.2009, 19:32

Код: Выделить всё
class enum_items_cb : public playlist_manager::enum_items_callback
{
public:
   //! @returns True to continue enumeration, false to abort.
   bool on_item(t_size p_index,const metadb_handle_ptr & p_location,bool b_selected){
      sstring8 path(p_location->get_path());
      return true;
   }
};

static_api_ptr_t<playlist_manager> pm;
t_size idx = pm->get_active_playlist();
enum_items_cb cb;
pm->playlist_enum_items(idx, cb, bit_array_true());

типа того.
Помни!: пережатие из (wav|mp3|mpc|ogg|aac|...) в (mp3|mpc|ogg|aac|...) при любых битрейтах ухудшает качество
skipyrich M
Мастер
Возраст: 43
Откуда: Москва
Репутация: 11
С нами: 11 лет

Сообщение #3 P_Igorek » 06.01.2009, 20:03

Спасибо.

А еше не подскажите, как получить номер текущего проигрываемого файла в плейлисте?

и как начать воспроизводить определённый номер в плелисте???
Последний раз редактировалось P_Igorek 06.01.2009, 20:34, всего редактировалось 1 раз.
P_Igorek
Автор темы, Новичок
Репутация: 0
С нами: 8 лет 4 месяца

Сообщение #4 skipyrich » 06.01.2009, 21:13

P_Igorek писал(а):как получить номер текущего проигрываемого файла в плейлисте?
//! Retrieves playlist position of currently playing item.
//! @param p_playlist Receives index of playlist containing currently playing item on success.
//! @param p_index Receives index of currently playing item in the playlist that contains it on success.
//! @returns True on success, false on failure (not playing or currently played item has been removed from the playlist it was on when starting).

virtual bool playlist_manager::get_playing_item_location(t_size * p_playlist,t_size * p_index) = 0;

P_Igorek писал(а):как начать воспроизводить определённый номер в плелисте?
не знаю, не было необходимости :)
можно понадеяться на то, что стандартное действие по даблклику не переназначили и вызвать
playlist_manager::playlist_execute_default_action
но это не есть правильно...
Помни!: пережатие из (wav|mp3|mpc|ogg|aac|...) в (mp3|mpc|ogg|aac|...) при любых битрейтах ухудшает качество
skipyrich M
Мастер
Возраст: 43
Откуда: Москва
Репутация: 11
С нами: 11 лет

Сообщение #5 P_Igorek » 07.01.2009, 12:36

skipyrich писал(а):
можно понадеяться на то, что стандартное действие по даблклику не переназначили и вызвать
playlist_manager::playlist_execute_default_action
но это не есть правильно...

Да это срабатывает.

Но почему нельзя было в SDK добавить playlist_manager::playlist_play_item( t_size item )??? Вроде как вполне логичная функция для управления.
P_Igorek
Автор темы, Новичок
Репутация: 0
С нами: 8 лет 4 месяца


Вернуться в Программирование foobar2000