AIMP Forum

AIMP for Windows => Дополнения / Addons => Разработка / Development => Topic started by: elecco on January 23, 2020, 19:37:07

Title: Управление AIMP
Post by: elecco on January 23, 2020, 19:37:07
Возможно ли сделать управление плеером через Local API или Remote API аналогично действиям кнопок вверх/вниз (передвижение выделения по плейлисту) и запуск по Enter выделенного?
Title: Re: Управление AIMP
Post by: Artem on January 23, 2020, 19:53:07
Можно через Local API
Title: Re: Управление AIMP
Post by: elecco on January 23, 2020, 20:05:11
а можно уточнить через какой интерфейс? IAIMPAction?
Title: Re: Управление AIMP
Post by: Artem on January 23, 2020, 20:19:20
интерфейсы доступа к плейлисту описаны в файле apiPlaylists. Вам придется полностью написать все действия с нуля - получить индекс сфокусированного трека в видимом плейлисте, пересчитать его, назначить
Title: Re: Управление AIMP
Post by: elecco on January 23, 2020, 21:44:53
Правильно ли я понимаю?

Code: [Select]
IAIMPPlaylist* pl = nullptr;
if(SUCCEEDED(mPlaylistManager->GetActivePlaylist(&pl))) {
int max = pl->GetItemCount();
IAIMPPropertyList *list = nullptr;
if(SUCCEEDED(pl->QueryInterface(IID_IAIMPPropertyList, reinterpret_cast<void**>(&list)))) {
int selected = 0;
if(SUCCEEDED(list->GetValueAsInt32(AIMP_PLAYLIST_PROPID_FOCUSINDEX, &selected))) {
selected++;
if(selected > max) { selected = max; }
list->SetValueAsInt32(AIMP_PLAYLIST_PROPID_FOCUSINDEX, selected);
}
}
}

при этом движется пунктирная рамка, но само выделение трека остается на месте
Title: Re: Управление AIMP
Post by: Artem on January 23, 2020, 22:05:56
Да, правильно.
В плейлисте три вида выделений:
1. сфокусированная запись
2. выбранная запись
3. проигрываемая запись

Title: Re: Управление AIMP
Post by: elecco on January 24, 2020, 18:02:57
не получается двигать выделение трека, через какое свойство это делается?

через AIMP_PLAYLIST_PROPID_PLAYBACKCURSOR, AIMP_PLAYLIST_PROPID_PLAYINGINDEX и AIMP_PLAYLIST_PROPID_FOCUSINDEX не то что нужно
Title: Re: Управление AIMP
Post by: Zhenya on January 24, 2020, 18:43:44
AIMP_PLAYLISTITEM_PROPID_SELECTED ?
Title: Re: Управление AIMP
Post by: elecco on January 24, 2020, 19:25:40
AIMP_PLAYLISTITEM_PROPID_SELECTED ?

не совсем...

опытным путем выяснено: для получения того что нужно необходимо менять два свойства AIMP_PLAYLIST_PROPID_FOCUSINDEX и AIMP_PLAYLISTITEM_PROPID_SELECTED
это правильно или что то делаю не так?

если правильно, то остается вопрос с запуском трека по выделенному треку(аналогично нажатию enter) - необходимо самому перемещать AIMP_PLAYLIST_PROPID_PLAYINGINDEX?
Title: Re: Управление AIMP
Post by: Artem on January 25, 2020, 19:11:20
Нет, эти индексы лишь визуализация. А PlayingIndex - readonly. Вам нужен сервис IAIMPServicePlayer из apiPlayer