|
|
|
Supreme Being
      
участник
Last Login: 14.05.2008 23:42
Сообщ.: 121,
Visits: 2 333
|
|
Приветствую, товарищи. Возникла такая необходимость. Намерен сделать два плагина. Конкретнее, два VST-плагина для звуковых редакторов, но это не важно. Важно то, что они должны взаимодействовать еще и между собой. То есть, например, загружаем один плагин, потом другой и он уже видит, что первый загружен и предлагает пользователю соединиться с ним. Затем периодически посылает ему некоторые данные. Поделитесь соображениями, каким образом это можно организовать?
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298,
Visits: 12 500
|
|
если не размышлять: используй mutex'ы и shared memory
вопросы:
* плагины загружаются в различных процессах или в одном?
* если в различных процессах, и запущенно 3 экземпляра плагина №1, то с каким из экземпляров должен общаться экземпляр плагина №2 (есть ли какие-либо правила в выборе предпочтения)?
* если в одном, то как они исполняются? асинхронно в отдельных потоках или синхронно в главном потоке процесса?
С уважением,
Владимир
|
|
|
|
|
Supreme Being
      
участник
Last Login: 14.05.2008 23:42
Сообщ.: 121,
Visits: 2 333
|
|
Плагины загружаются в одном процессе, исполняются в одном, но не главном, потоке. Выбор предпочтения одного из уже загруженных экземпляров плагина №1 предоставляется пользователю. Спасибо за подсказку, буду пробовать.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298,
Visits: 12 500
|
|
если дело происходит в одном процессе и даже в одном потоке, то я бы не стал ничего придумывать с mutex'ами и shared memory
организуйте что-нибудь типа plugin manager'a, позволяющего манипулировать и общаться загруженным плагинам между собой
во время процесса загрузки плагина, вызывайте функцию у загруженного плагина, что-нибудь типа SetPluginManager(CPluginManager* manager), ссылку на менеджера используйте, чтобы узнать о других плагинах и по-необходимости передать им управление
Удачи,
Владимир
|
|
|
|
|
Supreme Being
      
участник
Last Login: 14.05.2008 23:42
Сообщ.: 121,
Visits: 2 333
|
|
| Да, но ведь загрузчик является сторонним процессом, не моим. Если я правильно понял, вы предлагаете, чтобы загрузчик создавал менеджера, а потом передавал указатель на него всем загружаемым плагинам?
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298,
Visits: 12 500
|
|
| да... именно это и предлагалось
|
|
|
|