Mercurial > hg > piper-cpp
comparison vamp-support/PreservingPluginHandleMapper.h @ 263:9a044706ab73
Comments on dubiousness of all this
| author | Chris Cannam <cannam@all-day-breakfast.com> |
|---|---|
| date | Fri, 12 Oct 2018 11:12:09 +0100 |
| parents | 427c4c725085 |
| children | 7ada63fe1084 |
comparison
equal
deleted
inserted
replaced
| 262:853aeab95acf | 263:9a044706ab73 |
|---|---|
| 42 | 42 |
| 43 namespace piper_vamp { | 43 namespace piper_vamp { |
| 44 | 44 |
| 45 //!!! document -- this is a passthrough thing for a single plugin | 45 //!!! document -- this is a passthrough thing for a single plugin |
| 46 //!!! handle only, it does not use actually valid Plugin pointers at | 46 //!!! handle only, it does not use actually valid Plugin pointers at |
| 47 //!!! all | 47 //!!! all. Or, better, reimplement in a way that doesn't involve |
| 48 //!!! such alarmingly invalid reinterpret_casts | |
| 48 | 49 |
| 49 class PreservingPluginHandleMapper : public PluginHandleMapper | 50 class PreservingPluginHandleMapper : public PluginHandleMapper |
| 50 { | 51 { |
| 51 public: | 52 public: |
| 52 PreservingPluginHandleMapper() : | 53 PreservingPluginHandleMapper() : |
| 67 } | 68 } |
| 68 | 69 |
| 69 virtual Vamp::Plugin *handleToPlugin(Handle h) const noexcept { | 70 virtual Vamp::Plugin *handleToPlugin(Handle h) const noexcept { |
| 70 if (h == INVALID_HANDLE) return nullptr; | 71 if (h == INVALID_HANDLE) return nullptr; |
| 71 m_handle = h; | 72 m_handle = h; |
| 73 //!!! see comment at top | |
| 72 m_plugin = reinterpret_cast<Vamp::Plugin *>(h); | 74 m_plugin = reinterpret_cast<Vamp::Plugin *>(h); |
| 73 return m_plugin; | 75 return m_plugin; |
| 74 } | 76 } |
| 75 | 77 |
| 76 virtual const std::shared_ptr<PluginOutputIdMapper> pluginToOutputIdMapper | 78 virtual const std::shared_ptr<PluginOutputIdMapper> pluginToOutputIdMapper |
