comparison bits/PreservingPluginHandleMapper.h @ 52:e90fd30990eb

Error handling, and pass plugin handles through
author Chris Cannam <c.cannam@qmul.ac.uk>
date Fri, 16 Sep 2016 16:20:05 +0100
parents f4244a2d55ac
children 7aec704705c7
comparison
equal deleted inserted replaced
51:f4244a2d55ac 52:e90fd30990eb
49 class PreservingPluginHandleMapper : public PluginHandleMapper 49 class PreservingPluginHandleMapper : public PluginHandleMapper
50 { 50 {
51 public: 51 public:
52 PreservingPluginHandleMapper() : m_handle(0), m_plugin(0) { } 52 PreservingPluginHandleMapper() : m_handle(0), m_plugin(0) { }
53 53
54 virtual int32_t pluginToHandle(Vamp::Plugin *p) const { 54 virtual Handle pluginToHandle(Vamp::Plugin *p) const {
55 if (p == m_plugin) return m_handle; 55 if (p == m_plugin) return m_handle;
56 else { 56 else {
57 std::cerr << "PreservingPluginHandleMapper: p = " << p 57 std::cerr << "PreservingPluginHandleMapper: p = " << p
58 << " differs from saved m_plugin " << m_plugin 58 << " differs from saved m_plugin " << m_plugin
59 << " (not returning saved handle " << m_handle << ")" 59 << " (not returning saved handle " << m_handle << ")"
60 << std::endl; 60 << std::endl;
61 throw NotFound(); 61 throw NotFound();
62 } 62 }
63 } 63 }
64 64
65 virtual Vamp::Plugin *handleToPlugin(int32_t h) const { 65 virtual Vamp::Plugin *handleToPlugin(Handle h) const {
66 m_handle = h; 66 m_handle = h;
67 m_plugin = reinterpret_cast<Vamp::Plugin *>(h); 67 m_plugin = reinterpret_cast<Vamp::Plugin *>(h);
68 return m_plugin; 68 return m_plugin;
69 } 69 }
70 70
71 virtual const PluginOutputIdMapper &pluginToOutputIdMapper(Vamp::Plugin *) const { 71 virtual const PluginOutputIdMapper &pluginToOutputIdMapper(Vamp::Plugin *) const {
72 return m_omapper; 72 return m_omapper;
73 } 73 }
74 74
75 virtual const PluginOutputIdMapper &handleToOutputIdMapper(int32_t h) const { 75 virtual const PluginOutputIdMapper &handleToOutputIdMapper(Handle h) const {
76 return m_omapper; 76 return m_omapper;
77 } 77 }
78 78
79 private: 79 private:
80 mutable int32_t m_handle; 80 mutable Handle m_handle;
81 mutable Vamp::Plugin *m_plugin; 81 mutable Vamp::Plugin *m_plugin;
82 PreservingPluginOutputIdMapper m_omapper; 82 PreservingPluginOutputIdMapper m_omapper;
83 }; 83 };
84 84
85 } 85 }