Mercurial > hg > svcore
comparison plugin/DSSIPluginInstance.h @ 1040:a1cd5abcb38b cxx11
Introduce and use a samplerate type
author | Chris Cannam |
---|---|
date | Wed, 04 Mar 2015 12:01:04 +0000 |
parents | cc27f35aa75c |
children | 48e9f538e6e9 |
comparison
equal
deleted
inserted
replaced
1039:b14064bd1f97 | 1040:a1cd5abcb38b |
---|---|
52 virtual std::string getDescription() const; | 52 virtual std::string getDescription() const; |
53 virtual std::string getMaker() const; | 53 virtual std::string getMaker() const; |
54 virtual int getPluginVersion() const; | 54 virtual int getPluginVersion() const; |
55 virtual std::string getCopyright() const; | 55 virtual std::string getCopyright() const; |
56 | 56 |
57 virtual void run(const Vamp::RealTime &, size_t count = 0); | 57 virtual void run(const RealTime &, int count = 0); |
58 | 58 |
59 virtual int getParameterCount() const; | 59 virtual int getParameterCount() const; |
60 virtual void setParameterValue(int parameter, float value); | 60 virtual void setParameterValue(int parameter, float value); |
61 virtual float getParameterValue(int parameter) const; | 61 virtual float getParameterValue(int parameter) const; |
62 virtual float getParameterDefault(int parameter) const; | 62 virtual float getParameterDefault(int parameter) const; |
65 virtual ParameterList getParameterDescriptors() const; | 65 virtual ParameterList getParameterDescriptors() const; |
66 virtual float getParameter(std::string) const; | 66 virtual float getParameter(std::string) const; |
67 virtual void setParameter(std::string, float); | 67 virtual void setParameter(std::string, float); |
68 | 68 |
69 virtual std::string configure(std::string key, std::string value); | 69 virtual std::string configure(std::string key, std::string value); |
70 virtual void sendEvent(const Vamp::RealTime &eventTime, | 70 virtual void sendEvent(const RealTime &eventTime, |
71 const void *event); | 71 const void *event); |
72 virtual void clearEvents(); | 72 virtual void clearEvents(); |
73 | 73 |
74 virtual size_t getBufferSize() const { return m_blockSize; } | 74 virtual int getBufferSize() const { return m_blockSize; } |
75 virtual size_t getAudioInputCount() const { return m_audioPortsIn.size(); } | 75 virtual int getAudioInputCount() const { return (int)m_audioPortsIn.size(); } |
76 virtual size_t getAudioOutputCount() const { return m_idealChannelCount; } | 76 virtual int getAudioOutputCount() const { return m_idealChannelCount; } |
77 virtual sample_t **getAudioInputBuffers() { return m_inputBuffers; } | 77 virtual sample_t **getAudioInputBuffers() { return m_inputBuffers; } |
78 virtual sample_t **getAudioOutputBuffers() { return m_outputBuffers; } | 78 virtual sample_t **getAudioOutputBuffers() { return m_outputBuffers; } |
79 | 79 |
80 virtual size_t getControlOutputCount() const { return m_controlPortsOut.size(); } | 80 virtual int getControlOutputCount() const { return (int)m_controlPortsOut.size(); } |
81 virtual float getControlOutputValue(size_t n) const; | 81 virtual float getControlOutputValue(int n) const; |
82 | 82 |
83 virtual ProgramList getPrograms() const; | 83 virtual ProgramList getPrograms() const; |
84 virtual std::string getCurrentProgram() const; | 84 virtual std::string getCurrentProgram() const; |
85 virtual std::string getProgram(int bank, int program) const; | 85 virtual std::string getProgram(int bank, int program) const; |
86 virtual int getProgram(std::string name) const; | 86 virtual int getProgram(std::string name) const; |
87 virtual void selectProgram(std::string program); | 87 virtual void selectProgram(std::string program); |
88 | 88 |
89 virtual bool isBypassed() const { return m_bypassed; } | 89 virtual bool isBypassed() const { return m_bypassed; } |
90 virtual void setBypassed(bool bypassed) { m_bypassed = bypassed; } | 90 virtual void setBypassed(bool bypassed) { m_bypassed = bypassed; } |
91 | 91 |
92 virtual size_t getLatency(); | 92 virtual sv_frame_t getLatency(); |
93 | 93 |
94 virtual void silence(); | 94 virtual void silence(); |
95 virtual void discardEvents(); | 95 virtual void discardEvents(); |
96 virtual void setIdealChannelCount(size_t channels); // may re-instantiate | 96 virtual void setIdealChannelCount(int channels); // may re-instantiate |
97 | 97 |
98 virtual bool isInGroup() const { return m_grouped; } | 98 virtual bool isInGroup() const { return m_grouped; } |
99 virtual void detachFromGroup(); | 99 virtual void detachFromGroup(); |
100 | 100 |
101 virtual std::string getType() const { return "DSSI Real-Time Plugin"; } | 101 virtual std::string getType() const { return "DSSI Real-Time Plugin"; } |
108 // | 108 // |
109 DSSIPluginInstance(RealTimePluginFactory *factory, | 109 DSSIPluginInstance(RealTimePluginFactory *factory, |
110 int client, | 110 int client, |
111 QString identifier, | 111 QString identifier, |
112 int position, | 112 int position, |
113 int sampleRate, | 113 sv_samplerate_t sampleRate, |
114 size_t blockSize, | 114 int blockSize, |
115 int idealChannelCount, | 115 int idealChannelCount, |
116 const DSSI_Descriptor* descriptor); | 116 const DSSI_Descriptor* descriptor); |
117 | 117 |
118 void init(); | 118 void init(); |
119 void instantiate(int sampleRate); | 119 void instantiate(sv_samplerate_t sampleRate); |
120 void cleanup(); | 120 void cleanup(); |
121 void activate(); | 121 void activate(); |
122 void deactivate(); | 122 void deactivate(); |
123 void connectPorts(); | 123 void connectPorts(); |
124 | 124 |
126 void setPortValueFromController(int portNumber, int controlValue); | 126 void setPortValueFromController(int portNumber, int controlValue); |
127 void selectProgramAux(std::string program, bool backupPortValues); | 127 void selectProgramAux(std::string program, bool backupPortValues); |
128 void checkProgramCache() const; | 128 void checkProgramCache() const; |
129 | 129 |
130 void initialiseGroupMembership(); | 130 void initialiseGroupMembership(); |
131 void runGrouped(const Vamp::RealTime &); | 131 void runGrouped(const RealTime &); |
132 | 132 |
133 // For use in DSSIPluginFactory (set in the DSSI_Host_Descriptor): | 133 // For use in DSSIPluginFactory (set in the DSSI_Host_Descriptor): |
134 static int requestMidiSend(LADSPA_Handle instance, | 134 static int requestMidiSend(LADSPA_Handle instance, |
135 unsigned char ports, | 135 unsigned char ports, |
136 unsigned char channels); | 136 unsigned char channels); |
170 mutable std::vector<ProgramDescriptor> m_cachedPrograms; | 170 mutable std::vector<ProgramDescriptor> m_cachedPrograms; |
171 mutable bool m_programCacheValid; | 171 mutable bool m_programCacheValid; |
172 | 172 |
173 RingBuffer<snd_seq_event_t> m_eventBuffer; | 173 RingBuffer<snd_seq_event_t> m_eventBuffer; |
174 | 174 |
175 size_t m_blockSize; | 175 int m_blockSize; |
176 sample_t **m_inputBuffers; | 176 sample_t **m_inputBuffers; |
177 sample_t **m_outputBuffers; | 177 sample_t **m_outputBuffers; |
178 bool m_ownBuffers; | 178 bool m_ownBuffers; |
179 size_t m_idealChannelCount; | 179 int m_idealChannelCount; |
180 size_t m_outputBufferCount; | 180 int m_outputBufferCount; |
181 size_t m_sampleRate; | 181 sv_samplerate_t m_sampleRate; |
182 float *m_latencyPort; | 182 float *m_latencyPort; |
183 bool m_run; | 183 bool m_run; |
184 | 184 |
185 bool m_bypassed; | 185 bool m_bypassed; |
186 std::string m_program; | 186 std::string m_program; |
187 bool m_grouped; | 187 bool m_grouped; |
188 Vamp::RealTime m_lastRunTime; | 188 RealTime m_lastRunTime; |
189 | 189 |
190 Vamp::RealTime m_lastEventSendTime; | 190 RealTime m_lastEventSendTime; |
191 bool m_haveLastEventSendTime; | 191 bool m_haveLastEventSendTime; |
192 | 192 |
193 QMutex m_processLock; | 193 QMutex m_processLock; |
194 | 194 |
195 typedef std::set<DSSIPluginInstance *> PluginSet; | 195 typedef std::set<DSSIPluginInstance *> PluginSet; |