mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Add boilerplate for copying factory interfaces
This commit is contained in:
@@ -18,10 +18,28 @@
|
|||||||
|
|
||||||
YaPluginFactory::YaPluginFactory(){FUNKNOWN_CTOR}
|
YaPluginFactory::YaPluginFactory(){FUNKNOWN_CTOR}
|
||||||
|
|
||||||
YaPluginFactory::YaPluginFactory(Steinberg::IPluginFactory* /*factory*/){
|
YaPluginFactory::YaPluginFactory(
|
||||||
|
Steinberg::IPtr<Steinberg::IPluginFactory> factory) {
|
||||||
FUNKNOWN_CTOR
|
FUNKNOWN_CTOR
|
||||||
|
|
||||||
// TODO: Copy everything from `factory`
|
// TODO: Copy data from `IPluginFactory`
|
||||||
|
known_iids.insert(factory->iid);
|
||||||
|
|
||||||
|
auto factory2 = Steinberg::FUnknownPtr<Steinberg::IPluginFactory2>(factory);
|
||||||
|
if (!factory2) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Copy data from `IPluginFactory2`
|
||||||
|
known_iids.insert(factory2->iid);
|
||||||
|
|
||||||
|
auto factory3 = Steinberg::FUnknownPtr<Steinberg::IPluginFactory3>(factory);
|
||||||
|
if (!factory3) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Copy data from `IPluginFactory3`
|
||||||
|
known_iids.insert(factory3->iid);
|
||||||
}
|
}
|
||||||
|
|
||||||
YaPluginFactory::~YaPluginFactory() {
|
YaPluginFactory::~YaPluginFactory() {
|
||||||
@@ -55,7 +73,7 @@ tresult PLUGIN_API YaPluginFactory::queryInterface(Steinberg::FIDString _iid,
|
|||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
YaPluginFactory::getFactoryInfo(Steinberg::PFactoryInfo* info) {
|
YaPluginFactory::getFactoryInfo(Steinberg::PFactoryInfo* /*info*/) {
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -65,34 +83,37 @@ int32 PLUGIN_API YaPluginFactory::countClasses() {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API YaPluginFactory::getClassInfo(Steinberg::int32 index,
|
tresult PLUGIN_API
|
||||||
Steinberg::PClassInfo* info) {
|
YaPluginFactory::getClassInfo(Steinberg::int32 /*index*/,
|
||||||
// TODO: Implement
|
Steinberg::PClassInfo* /*info*/) {
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
tresult PLUGIN_API YaPluginFactory::createInstance(Steinberg::FIDString cid,
|
|
||||||
Steinberg::FIDString _iid,
|
|
||||||
void** obj) {
|
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
YaPluginFactory::getClassInfo2(int32 index, Steinberg::PClassInfo2* info) {
|
YaPluginFactory::createInstance(Steinberg::FIDString /*cid*/,
|
||||||
|
Steinberg::FIDString /*_iid*/,
|
||||||
|
void** /*obj*/) {
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
YaPluginFactory::getClassInfoUnicode(int32 index,
|
YaPluginFactory::getClassInfo2(int32 /*index*/,
|
||||||
Steinberg::PClassInfoW* info) {
|
Steinberg::PClassInfo2* /*info*/) {
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API
|
tresult PLUGIN_API
|
||||||
YaPluginFactory::setHostContext(Steinberg::FUnknown* context) {
|
YaPluginFactory::getClassInfoUnicode(int32 /*index*/,
|
||||||
|
Steinberg::PClassInfoW* /*info*/) {
|
||||||
|
// TODO: Implement
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
tresult PLUGIN_API
|
||||||
|
YaPluginFactory::setHostContext(Steinberg::FUnknown* /*context*/) {
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ class YaPluginFactory : public Steinberg::IPluginFactory3 {
|
|||||||
*
|
*
|
||||||
* TODO: Check if we don't need a custom query interface, we probably do.
|
* TODO: Check if we don't need a custom query interface, we probably do.
|
||||||
*/
|
*/
|
||||||
explicit YaPluginFactory(Steinberg::IPluginFactory* factory);
|
explicit YaPluginFactory(
|
||||||
|
Steinberg::IPtr<Steinberg::IPluginFactory> factory);
|
||||||
|
|
||||||
~YaPluginFactory();
|
~YaPluginFactory();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user