comparison plugin/DSSIPluginInstance.h @ 51:c2913298cf94

* Make RealTimePluginInstances also provide the PluginInstance interface
author Chris Cannam
date Mon, 20 Mar 2006 13:48:58 +0000
parents 39ae3dee27b9
children d397ea0a79f5
comparison
equal deleted inserted replaced
50:080ad875395a 51:c2913298cf94
40 40
41 int getClientId() const { return m_client; } 41 int getClientId() const { return m_client; }
42 virtual QString getIdentifier() const { return m_identifier; } 42 virtual QString getIdentifier() const { return m_identifier; }
43 int getPosition() const { return m_position; } 43 int getPosition() const { return m_position; }
44 44
45 virtual std::string getName() const;
46 virtual std::string getDescription() const;
47 virtual std::string getMaker() const;
48 virtual int getPluginVersion() const;
49 virtual std::string getCopyright() const;
50
45 virtual void run(const RealTime &); 51 virtual void run(const RealTime &);
46 52
47 virtual unsigned int getParameterCount() const; 53 virtual unsigned int getParameterCount() const;
48 virtual void setParameterValue(unsigned int parameter, float value); 54 virtual void setParameterValue(unsigned int parameter, float value);
49 virtual float getParameterValue(unsigned int parameter) const; 55 virtual float getParameterValue(unsigned int parameter) const;
50 virtual float getParameterDefault(unsigned int parameter) const; 56 virtual float getParameterDefault(unsigned int parameter) const;
51 virtual QString configure(QString key, QString value); 57
58 virtual ParameterList getParameterDescriptors() const;
59 virtual float getParameter(std::string) const;
60 virtual void setParameter(std::string, float);
61
62 virtual std::string configure(std::string key, std::string value);
52 virtual void sendEvent(const RealTime &eventTime, 63 virtual void sendEvent(const RealTime &eventTime,
53 const void *event); 64 const void *event);
54 virtual void clearEvents(); 65 virtual void clearEvents();
55 66
56 virtual size_t getBufferSize() const { return m_blockSize; } 67 virtual size_t getBufferSize() const { return m_blockSize; }
57 virtual size_t getAudioInputCount() const { return m_audioPortsIn.size(); } 68 virtual size_t getAudioInputCount() const { return m_audioPortsIn.size(); }
58 virtual size_t getAudioOutputCount() const { return m_idealChannelCount; } 69 virtual size_t getAudioOutputCount() const { return m_idealChannelCount; }
59 virtual sample_t **getAudioInputBuffers() { return m_inputBuffers; } 70 virtual sample_t **getAudioInputBuffers() { return m_inputBuffers; }
60 virtual sample_t **getAudioOutputBuffers() { return m_outputBuffers; } 71 virtual sample_t **getAudioOutputBuffers() { return m_outputBuffers; }
61 72
62 virtual QStringList getPrograms() const; 73 virtual ProgramList getPrograms() const;
63 virtual QString getCurrentProgram() const; 74 virtual std::string getCurrentProgram() const;
64 virtual QString getProgram(int bank, int program) const; 75 virtual std::string getProgram(int bank, int program) const;
65 virtual unsigned long getProgram(QString name) const; 76 virtual unsigned long getProgram(std::string name) const;
66 virtual void selectProgram(QString program); 77 virtual void selectProgram(std::string program);
67 78
68 virtual bool isBypassed() const { return m_bypassed; } 79 virtual bool isBypassed() const { return m_bypassed; }
69 virtual void setBypassed(bool bypassed) { m_bypassed = bypassed; } 80 virtual void setBypassed(bool bypassed) { m_bypassed = bypassed; }
70 81
71 virtual size_t getLatency(); 82 virtual size_t getLatency();
90 unsigned long sampleRate, 101 unsigned long sampleRate,
91 size_t blockSize, 102 size_t blockSize,
92 int idealChannelCount, 103 int idealChannelCount,
93 const DSSI_Descriptor* descriptor); 104 const DSSI_Descriptor* descriptor);
94 105
95 // Constructor that uses shared buffers
96 //
97 DSSIPluginInstance(RealTimePluginFactory *factory,
98 int client,
99 QString identifier,
100 int position,
101 unsigned long sampleRate,
102 size_t blockSize,
103 sample_t **inputBuffers,
104 sample_t **outputBuffers,
105 const DSSI_Descriptor* descriptor);
106
107 void init(); 106 void init();
108 void instantiate(unsigned long sampleRate); 107 void instantiate(unsigned long sampleRate);
109 void cleanup(); 108 void cleanup();
110 void activate(); 109 void activate();
111 void deactivate(); 110 void deactivate();
112 void connectPorts(); 111 void connectPorts();
113 112
114 bool handleController(snd_seq_event_t *ev); 113 bool handleController(snd_seq_event_t *ev);
115 void setPortValueFromController(unsigned int portNumber, int controlValue); 114 void setPortValueFromController(unsigned int portNumber, int controlValue);
116 void selectProgramAux(QString program, bool backupPortValues); 115 void selectProgramAux(std::string program, bool backupPortValues);
117 void checkProgramCache() const; 116 void checkProgramCache() const;
118 117
119 void initialiseGroupMembership(); 118 void initialiseGroupMembership();
120 void runGrouped(const RealTime &); 119 void runGrouped(const RealTime &);
121 120
152 ProgramControl m_pending; 151 ProgramControl m_pending;
153 152
154 struct ProgramDescriptor { 153 struct ProgramDescriptor {
155 int bank; 154 int bank;
156 int program; 155 int program;
157 QString name; 156 std::string name;
158 }; 157 };
159 mutable std::vector<ProgramDescriptor> m_cachedPrograms; 158 mutable std::vector<ProgramDescriptor> m_cachedPrograms;
160 mutable bool m_programCacheValid; 159 mutable bool m_programCacheValid;
161 160
162 RingBuffer<snd_seq_event_t> m_eventBuffer; 161 RingBuffer<snd_seq_event_t> m_eventBuffer;
170 size_t m_sampleRate; 169 size_t m_sampleRate;
171 float *m_latencyPort; 170 float *m_latencyPort;
172 bool m_run; 171 bool m_run;
173 172
174 bool m_bypassed; 173 bool m_bypassed;
175 QString m_program; 174 std::string m_program;
176 bool m_grouped; 175 bool m_grouped;
177 RealTime m_lastRunTime; 176 RealTime m_lastRunTime;
178 177
179 RealTime m_lastEventSendTime; 178 RealTime m_lastEventSendTime;
180 bool m_haveLastEventSendTime; 179 bool m_haveLastEventSendTime;