![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
![]()
Здравствуйте. Есть некий стандарт VST на основе которого создаются плагины обработки звука. Чтобы манипулировать таким плагином, его нужно инициализировать и получить указатель на некий базовый класс, методы которого и позволяют его всесторонне ковырять. С точки зрения ЯВУ это достаточно удобно, но вот в ассемблере это настоящий геморой (от COM отказались видимо из-за зависимостей от платформы). Посоветуйте пожалуйста хоть что-нибудь. Куда не гляну, везде вода.
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
В Хатчевской сборке Масма были примеры по классам.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
![]()
К сожалению, там ничего не нашлось. Если я что-то неправильно понял, ткните ссылкой пожалуйста
![]() |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
notHaker
если у вас есть пакет masm32, то обратите внимание на папку masm32\oop и примеры в ней также есть папка masm32\com |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
![]() Цитата:
И почему разработчики стандарта, весьма требовательного к скорости исполнения (всё таки DSP), прибегли к объектной модели, да ещё и отказались от COM - непонятно. Это наверное какой-то хитрый план. |
|
![]() |
![]() |
![]() |
#6 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
Где ты ты там узрел ООП - не понятно.. Интерфейс любого VST-плагина базируется на cdecl-функциях, среди которых первая и основная - экспортируемая ф-ция main(), параметром вызова которой является адрес колбэк-функции. Кроме них фигурируют еще минимум 5 ф-ций. И в SDK-хэдерах сплошь и рядом структуры, никакими классами и объектами там и не пахнет .. |
|
![]() |
![]() |
![]() |
#7 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
работа с COM без проблем реализуется на ассемблере.
я не знаю что такое VST, я говорю про любой плагин если организовыввать взаимодействие с плагинами с помощью классов и объектов, то плагины можно писать только на искомом языке программирования. Например, основная программа написана на C++, плагину как-то передаётся объект через которых происходит взаимодействие с основной программой. Реализовать взаимодействие с объектом на ассемблере будет также трудно как и на Delphi и обычном С, также будет трудно реализовать взаимодействие с объектом на С++ при использовании другого компилятора. Например, у простых функций есть стандарты вызова (cdecl, stdcall, fastcall и т.д.) у COM тоже есть стандарт на то как надо вызывать функции в каком формате хранить данные объекта и т.д. На объекты обычных языков программирования стандартов нет, поэтому всё может тупо перестать работать после смены версии компилятора |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
![]()
mss, речь идёт о 3 версии. Всё API версии 2 заключается в вызове main() и получении указателя на структуру с ворохом кэлбэков - с этим согласен. Проблема в версии 3, где похоже таки смрадно попахивает COM.
rpy3uH, спасибо за пояснения. Догадывался, т.к. гугл ничего про вызовы методов не знает. Вообще идея реализовать стример, ориентированный на обработку аудио в реальном времени минимальной латентности с не нормализованным микшированием и другими свистелками и... Задача проектирования DSP не стоит, т.к. вся работа по обработке ляжет на плагины DXi, VST и т.д. коих в интернетах предостаточно. Вот и хотелось бы интегрировать поддержку оных в стример, чтобы не заниматься дурью, аля "плагин для плагина". Всё это - движок опен сорц, в мелкой и шустрой библиотеке, многозадачен и вообще ариец. ![]() Последний раз редактировалось notHaker; 04.08.2011 в 18:33. |
![]() |
![]() |
![]() |
#9 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
Слабо верится, но.. просто любопытно).. |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
![]()
Вот собсно для плюса хидеры. Пытаюсь понять, как вообще подключить плагин такой версии. Нагорожено, мама не горюй.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Манипуляции с формой | Claster | Помощь студентам | 6 | 11.04.2011 11:49 |
Манипуляции с ненумерованным списком | 25mute | HTML и CSS | 1 | 31.01.2011 12:05 |
из Паскаля в Яву | Ляле4ка | Помощь студентам | 0 | 10.10.2010 21:49 |
манипуляции в StringGrid | начинающий1 | Общие вопросы Delphi | 11 | 25.08.2010 14:44 |
Какие языки (системы разработки) имеют встроенные сложные операции над объектами? | asmc | Общие вопросы C/C++ | 1 | 26.06.2008 09:01 |