Mercurial > hg > piper-cpp
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 } |