Pluginy - kilka pytań

0

Hey. Wiem, ze pluginy były już męczone wiele razy, ale dalej mam kilka pytań. Jak dokładnie powinny działać pluginy? Jeżeli np piszę odtwarzacz mp3, to jak to powinno działać, czy ma to działać na zasadzie, ze mam w każdym pluginie funkcje takie jak onLoad, onInit, onStart, onMP3Play, onMP3Stop i mam wywoływać je we wszystkich pluginach z mojego programu gdy dane zajście ma miejsce?

poza tym, jak mam kontrolować komponenty w programie przez pluginy? Np mam Popup i chcę dodać itemka przez plugin, jak to zrobić? Muszę podawać osobą które chcą zrobić plugin do mojego programu całą listę komponentów z ich typami? To nie ma sensu. :/

Sorry, za głupie i lamerskie pytania, ale naprawdę mam z tym problem. Z góry dziękuje za odpowiedź, pozdrawiam.

0

plugin to nie magiczna puszka, która przysysa się do programu i wszystko za niego robi. Plugin sam z siebie nie robi nic - to program, jeśli znajdzie odczytuje jego typ (sam musisz sobie wymyśleć i zaimplementować jakiś "protokół") i jeśli jest potrzeba to wywołuje z niego konkretne funkcje - żeby to było możliwe to też musisz za wczasu wymyślić nazwy funkcji i opisać co dana funkcja robi, żeby ktoś kto plugin pisze wiedział kiedy dana funkcja może być wywołana.

Dodatkowo SDK dla pluginów winampa jest ogólnie dostępne - ściągnij pooglądaj...

0

Ok, obejrzałem SDK Winampa, są tam różne funkcje, tak jak mówiłem, wykonywanej podczas jakiegoś zdarzenia, ale jak rozwiązać mój drugi problem? Boprzecież nie będe dawał procedury onCreate z wszytskimi mozliwymi komponentami jako argumentami, wtedy miała by ich z 300...

0

Przepraszam za podwójnego posta, ale jest to mi naprawdę potrzebne, mógłby mi ktoś udzielić dokładniejszej pomocy?

0

Musisz albo udostępnić listę komponentów z ich typami, albo zrobić coś w stylu 'nawigacji' po obiektach, tzn zrobić procedurę w stylu

DodajItemDoMenu(Polecenie:string);

gdzie polecenie ma postać 'nazwa menu\item' lub analogiczną. Wtedy musisz oczywiście podać możliwe wartości 'nazwa menu'. Jeśli chodzi o akcje zwrotne (kiedy program wywołuje powiązaną z jakimś komponentem akcję) polecam wywoływać funkcję udostępnianą przez plugin, przekazując jej argument - liczbę, zdefiniowaną przez plugin podczas wiązania na przykład z elementem menu, coś w stylu

DodajItemDoMenu('nazwa menu\item@numer');

gdzie numer to parametr przekazywany twojej zdefiniowanej w pluginie funkcji, aby rozróżnić odmienne akcje.

Wszystko zależy od twojej finezji. Bardziej niż SDK Winampa, polecam SDK Tlena, gdyż porusza dokładnie taką problematykę, jaka Cię interesuje - możliwość zarządzania wieloma kontrolkami.

0

Dzięki, nie wpadłem na to żeby udopstępnić jakby własne funkcje APi, dzięki! :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.