/[svn]/linuxsampler/trunk/src/network/lscpserver.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscpserver.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 119 by senkov, Tue Jun 8 01:29:08 2004 UTC revision 120 by senkov, Sat Jun 12 07:29:37 2004 UTC
# Line 94  void LSCPServer::AnswerClient(String Ret Line 94  void LSCPServer::AnswerClient(String Ret
94   */   */
95  String LSCPServer::LoadInstrument(String Filename, uint uiInstrument, uint uiSamplerChannel) {  String LSCPServer::LoadInstrument(String Filename, uint uiInstrument, uint uiSamplerChannel) {
96      dmsg(2,("LSCPServer: LoadInstrument(Filename=%s,Instrument=%d,SamplerChannel=%d)\n", Filename.c_str(), uiInstrument, uiSamplerChannel));      dmsg(2,("LSCPServer: LoadInstrument(Filename=%s,Instrument=%d,SamplerChannel=%d)\n", Filename.c_str(), uiInstrument, uiSamplerChannel));
97      result_t result;      LSCPResultSet result;
98      try {      try {
99          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
100          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
101          Engine* pEngine = pSamplerChannel->GetEngine();          Engine* pEngine = pSamplerChannel->GetEngine();
102          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");
103          pEngine->LoadInstrument(Filename.c_str(), uiInstrument);          pEngine->LoadInstrument(Filename.c_str(), uiInstrument);
         result.type = result_type_success;  
104      }      }
105      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
106           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
107      }      }
108      return ConvertResult(result);      return result.Produce();
109  }  }
110    
111  /**  /**
# Line 117  String LSCPServer::LoadInstrument(String Line 113  String LSCPServer::LoadInstrument(String
113   */   */
114  String LSCPServer::LoadEngine(String EngineName, uint uiSamplerChannel) {  String LSCPServer::LoadEngine(String EngineName, uint uiSamplerChannel) {
115      dmsg(2,("LSCPServer: LoadEngine(EngineName=%s,SamplerChannel=%d)\n", EngineName.c_str(), uiSamplerChannel));      dmsg(2,("LSCPServer: LoadEngine(EngineName=%s,SamplerChannel=%d)\n", EngineName.c_str(), uiSamplerChannel));
116      result_t result;      LSCPResultSet result;
117      try {      try {
118          Engine::type_t type;          Engine::type_t type;
119          if (EngineName == "gig") type = Engine::type_gig;          if ((EngineName == "GigEngine") || (EngineName == "gig")) type = Engine::type_gig;
120          else throw LinuxSamplerException("Unknown engine type");          else throw LinuxSamplerException("Unknown engine type");
121          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
122          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
123          pSamplerChannel->LoadEngine(type);          pSamplerChannel->LoadEngine(type);
         result.type = result_type_success;  
124      }      }
125      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
126           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
127      }      }
128      return ConvertResult(result);      return result.Produce();
129  }  }
130    
131  /**  /**
# Line 141  String LSCPServer::LoadEngine(String Eng Line 133  String LSCPServer::LoadEngine(String Eng
133   */   */
134  String LSCPServer::GetChannels() {  String LSCPServer::GetChannels() {
135      dmsg(2,("LSCPServer: GetChannels()\n"));      dmsg(2,("LSCPServer: GetChannels()\n"));
136      return ToString(pSampler->SamplerChannels()) + "\r\n";      LSCPResultSet result;
137        result.Add(pSampler->SamplerChannels());
138        return result.Produce();
139  }  }
140    
141  /**  /**
# Line 150  String LSCPServer::GetChannels() { Line 144  String LSCPServer::GetChannels() {
144  String LSCPServer::AddChannel() {  String LSCPServer::AddChannel() {
145      dmsg(2,("LSCPServer: AddChannel()\n"));      dmsg(2,("LSCPServer: AddChannel()\n"));
146      SamplerChannel* pSamplerChannel = pSampler->AddSamplerChannel();      SamplerChannel* pSamplerChannel = pSampler->AddSamplerChannel();
147      return "OK[" + ToString(pSamplerChannel->Index()) + "]\r\n";      LSCPResultSet result(pSamplerChannel->Index());
148        return result.Produce();
149  }  }
150    
151  /**  /**
# Line 158  String LSCPServer::AddChannel() { Line 153  String LSCPServer::AddChannel() {
153   */   */
154  String LSCPServer::RemoveChannel(uint uiSamplerChannel) {  String LSCPServer::RemoveChannel(uint uiSamplerChannel) {
155      dmsg(2,("LSCPServer: RemoveChannel(SamplerChannel=%d)\n", uiSamplerChannel));      dmsg(2,("LSCPServer: RemoveChannel(SamplerChannel=%d)\n", uiSamplerChannel));
156        LSCPResultSet result;
157      pSampler->RemoveSamplerChannel(uiSamplerChannel);      pSampler->RemoveSamplerChannel(uiSamplerChannel);
158      return "OK\r\n";      return result.Produce();
159  }  }
160    
161  /**  /**
# Line 167  String LSCPServer::RemoveChannel(uint ui Line 163  String LSCPServer::RemoveChannel(uint ui
163   */   */
164  String LSCPServer::GetAvailableEngines() {  String LSCPServer::GetAvailableEngines() {
165      dmsg(2,("LSCPServer: GetAvailableEngines()\n"));      dmsg(2,("LSCPServer: GetAvailableEngines()\n"));
166      return "gig\r\n";      LSCPResultSet result("GigEngine");
167        return result.Produce();
168  }  }
169    
170  /**  /**
# Line 175  String LSCPServer::GetAvailableEngines() Line 172  String LSCPServer::GetAvailableEngines()
172   */   */
173  String LSCPServer::GetEngineInfo(String EngineName) {  String LSCPServer::GetEngineInfo(String EngineName) {
174      dmsg(2,("LSCPServer: GetEngineInfo(EngineName=%s)\n", EngineName.c_str()));      dmsg(2,("LSCPServer: GetEngineInfo(EngineName=%s)\n", EngineName.c_str()));
175      result_t result;      LSCPResultSet result;
176      try {      try {
177          if (EngineName == "gig") {          if ((EngineName == "GigEngine") || (EngineName == "gig")) {
178              Engine* pEngine = new LinuxSampler::gig::Engine;              Engine* pEngine = new LinuxSampler::gig::Engine;
179              String info = pEngine->Description() + "\r\n";              result.Add(pEngine->Description());
180              delete pEngine;              delete pEngine;
             return info; // success  
181          }          }
182          else throw LinuxSamplerException("Unknown engine type");          else throw LinuxSamplerException("Unknown engine type");
183      }      }
184      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
185           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
186      }      }
187      return ConvertResult(result);      return result.Produce();
188  }  }
189    
190  /**  /**
# Line 200  String LSCPServer::GetEngineInfo(String Line 193  String LSCPServer::GetEngineInfo(String
193   */   */
194  String LSCPServer::GetChannelInfo(uint uiSamplerChannel) {  String LSCPServer::GetChannelInfo(uint uiSamplerChannel) {
195      dmsg(2,("LSCPServer: GetChannelInfo(SamplerChannel=%d)\n", uiSamplerChannel));      dmsg(2,("LSCPServer: GetChannelInfo(SamplerChannel=%d)\n", uiSamplerChannel));
196        LSCPResultSet result;
197      try {      try {
         LSCPResultSet result;  
198          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
199          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
200          Engine* pEngine = pSamplerChannel->GetEngine();          Engine* pEngine = pSamplerChannel->GetEngine();
# Line 237  String LSCPServer::GetChannelInfo(uint u Line 230  String LSCPServer::GetChannelInfo(uint u
230          result.Add("MIDI_INPUT_DEVICE", "0");          result.Add("MIDI_INPUT_DEVICE", "0");
231          result.Add("MIDI_INPUT_PORT", "0");          result.Add("MIDI_INPUT_PORT", "0");
232          result.Add("MIDI_INPUT_CHANNEL", "1");          result.Add("MIDI_INPUT_CHANNEL", "1");
   
         return result.Produce();  
233      }      }
234      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
235           result_t result;           result.Error(e);
          e.PrintMessage();  
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
          return ConvertResult(result);  
236      }      }
237        return result.Produce();
238  }  }
239    
240  /**  /**
# Line 256  String LSCPServer::GetChannelInfo(uint u Line 243  String LSCPServer::GetChannelInfo(uint u
243   */   */
244  String LSCPServer::GetVoiceCount(uint uiSamplerChannel) {  String LSCPServer::GetVoiceCount(uint uiSamplerChannel) {
245      dmsg(2,("LSCPServer: GetVoiceCount(SamplerChannel=%d)\n", uiSamplerChannel));      dmsg(2,("LSCPServer: GetVoiceCount(SamplerChannel=%d)\n", uiSamplerChannel));
246      result_t result;      LSCPResultSet result;
247      try {      try {
248          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
249          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
250          Engine* pEngine = pSamplerChannel->GetEngine();          Engine* pEngine = pSamplerChannel->GetEngine();
251          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");
252          return ToString(pEngine->VoiceCount()) + "\r\n"; // success          result.Add(pEngine->VoiceCount());
253      }      }
254      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
255           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
256      }      }
257      return ConvertResult(result);      return result.Produce();
258  }  }
259    
260  /**  /**
# Line 279  String LSCPServer::GetVoiceCount(uint ui Line 263  String LSCPServer::GetVoiceCount(uint ui
263   */   */
264  String LSCPServer::GetStreamCount(uint uiSamplerChannel) {  String LSCPServer::GetStreamCount(uint uiSamplerChannel) {
265      dmsg(2,("LSCPServer: GetStreamCount(SamplerChannel=%d)\n", uiSamplerChannel));      dmsg(2,("LSCPServer: GetStreamCount(SamplerChannel=%d)\n", uiSamplerChannel));
266      result_t result;      LSCPResultSet result;
267      try {      try {
268          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
269          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
270          Engine* pEngine = pSamplerChannel->GetEngine();          Engine* pEngine = pSamplerChannel->GetEngine();
271          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");
272          return ToString(pEngine->DiskStreamCount()) + "\r\n"; // success          result.Add(pEngine->DiskStreamCount());
273      }      }
274      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
275           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
276      }      }
277      return ConvertResult(result);      return result.Produce();
278  }  }
279    
280  /**  /**
# Line 302  String LSCPServer::GetStreamCount(uint u Line 283  String LSCPServer::GetStreamCount(uint u
283   */   */
284  String LSCPServer::GetBufferFill(fill_response_t ResponseType, uint uiSamplerChannel) {  String LSCPServer::GetBufferFill(fill_response_t ResponseType, uint uiSamplerChannel) {
285      dmsg(2,("LSCPServer: GetBufferFill(ResponseType=%d, SamplerChannel=%d)\n", ResponseType, uiSamplerChannel));      dmsg(2,("LSCPServer: GetBufferFill(ResponseType=%d, SamplerChannel=%d)\n", ResponseType, uiSamplerChannel));
286      result_t result;      LSCPResultSet result;
287      try {      try {
288          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
289          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
290          Engine* pEngine = pSamplerChannel->GetEngine();          Engine* pEngine = pSamplerChannel->GetEngine();
291          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");
292          if (!pEngine->DiskStreamSupported()) return "NA\r\n";          if (!pEngine->DiskStreamSupported()) return "NA\r\n"; //FIXME: Update resultset class to support "NA"
293          switch (ResponseType) {          switch (ResponseType) {
294              case fill_response_bytes:              case fill_response_bytes:
295                  return ToString(pEngine->DiskStreamBufferFillBytes()) + "\r\n"; // success                  result.Add(pEngine->DiskStreamBufferFillBytes());
296              case fill_response_percentage:              case fill_response_percentage:
297                  return ToString(pEngine->DiskStreamBufferFillPercentage()) + "\r\n"; // success                  result.Add(pEngine->DiskStreamBufferFillPercentage());
298              default:              default:
299                  throw LinuxSamplerException("Unknown fill response type");                  throw LinuxSamplerException("Unknown fill response type");
300          }          }
301      }      }
302      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
303           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
304      }      }
305      return ConvertResult(result);      return result.Produce();
306  }  }
307    
308  /**  /**
# Line 333  String LSCPServer::GetBufferFill(fill_re Line 311  String LSCPServer::GetBufferFill(fill_re
311   */   */
312  String LSCPServer::SetAudioOutputType(AudioOutputDevice::type_t AudioOutputType, uint uiSamplerChannel) {  String LSCPServer::SetAudioOutputType(AudioOutputDevice::type_t AudioOutputType, uint uiSamplerChannel) {
313      dmsg(2,("LSCPServer: SetAudioOutputType(AudioOutputType=%d, SamplerChannel=%d)\n", AudioOutputType, uiSamplerChannel));      dmsg(2,("LSCPServer: SetAudioOutputType(AudioOutputType=%d, SamplerChannel=%d)\n", AudioOutputType, uiSamplerChannel));
314      result_t result;      LSCPResultSet result;
315      try {      try {
316          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
317          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
318          pSamplerChannel->SetAudioOutputDevice(AudioOutputType);          pSamplerChannel->SetAudioOutputDevice(AudioOutputType);
         result.type = result_type_success;  
319      }      }
320      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
321           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
322      }      }
323      return ConvertResult(result);      return result.Produce();
324  }  }
325    
326  /**  /**
# Line 355  String LSCPServer::SetAudioOutputType(Au Line 329  String LSCPServer::SetAudioOutputType(Au
329   */   */
330  String LSCPServer::SetAudioOutputChannel(uint AudioOutputChannel, uint uiSamplerChannel) {  String LSCPServer::SetAudioOutputChannel(uint AudioOutputChannel, uint uiSamplerChannel) {
331      dmsg(2,("LSCPServer: SetAudioOutputChannel(AudioOutputChannel=%d, SamplerChannel=%d)\n", AudioOutputChannel, uiSamplerChannel));      dmsg(2,("LSCPServer: SetAudioOutputChannel(AudioOutputChannel=%d, SamplerChannel=%d)\n", AudioOutputChannel, uiSamplerChannel));
332      return "ERR:0:Not implemented yet.\r\n";      return "ERR:0:Not implemented yet.\r\n"; //FIXME: Add support for this in resultset class?
333  }  }
334    
335  String LSCPServer::SetMIDIInputType(MidiInputDevice::type_t MidiInputType, uint uiSamplerChannel) {  String LSCPServer::SetMIDIInputType(MidiInputDevice::type_t MidiInputType, uint uiSamplerChannel) {
336      dmsg(2,("LSCPServer: SetMIDIInputType(MidiInputType=%d, SamplerChannel=%d)\n", MidiInputType, uiSamplerChannel));      dmsg(2,("LSCPServer: SetMIDIInputType(MidiInputType=%d, SamplerChannel=%d)\n", MidiInputType, uiSamplerChannel));
337      result_t result;      LSCPResultSet result;
338      try {      try {
339          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
340          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
341          pSamplerChannel->SetMidiInputDevice(MidiInputType);          pSamplerChannel->SetMidiInputDevice(MidiInputType);
         result.type = result_type_success;  
342      }      }
343      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
344           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
345      }      }
346      return ConvertResult(result);      return result.Produce();
347  }  }
348    
349  /**  /**
# Line 382  String LSCPServer::SetMIDIInputType(Midi Line 352  String LSCPServer::SetMIDIInputType(Midi
352   */   */
353  String LSCPServer::SetMIDIInputPort(String MIDIInputPort, uint uiSamplerChannel) {  String LSCPServer::SetMIDIInputPort(String MIDIInputPort, uint uiSamplerChannel) {
354      dmsg(2,("LSCPServer: SetMIDIInputPort(MIDIInputPort=%s, Samplerchannel=%d)\n", MIDIInputPort.c_str(), uiSamplerChannel));      dmsg(2,("LSCPServer: SetMIDIInputPort(MIDIInputPort=%s, Samplerchannel=%d)\n", MIDIInputPort.c_str(), uiSamplerChannel));
355      result_t result;      LSCPResultSet result;
356      try {      try {
357          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
358          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
359          if (!pSamplerChannel->GetMidiInputDevice()) throw LinuxSamplerException("No MIDI input device connected yet");          if (!pSamplerChannel->GetMidiInputDevice()) throw LinuxSamplerException("No MIDI input device connected yet");
360          pSamplerChannel->GetMidiInputDevice()->SetInputPort(MIDIInputPort.c_str());          pSamplerChannel->GetMidiInputDevice()->SetInputPort(MIDIInputPort.c_str());
         result.type = result_type_success;  
361      }      }
362      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
363           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
364      }      }
365      return ConvertResult(result);      return result.Produce();
366  }  }
367    
368  /**  /**
# Line 405  String LSCPServer::SetMIDIInputPort(Stri Line 371  String LSCPServer::SetMIDIInputPort(Stri
371   */   */
372  String LSCPServer::SetMIDIInputChannel(uint MIDIChannel, uint uiSamplerChannel) {  String LSCPServer::SetMIDIInputChannel(uint MIDIChannel, uint uiSamplerChannel) {
373      dmsg(2,("LSCPServer: SetMIDIInputChannel(MIDIChannel=%d, SamplerChannel=%d)\n", MIDIChannel, uiSamplerChannel));      dmsg(2,("LSCPServer: SetMIDIInputChannel(MIDIChannel=%d, SamplerChannel=%d)\n", MIDIChannel, uiSamplerChannel));
374      result_t result;      LSCPResultSet result;
375      try {      try {
376          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
377          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
378          if (!pSamplerChannel->GetMidiInputDevice()) throw LinuxSamplerException("No MIDI input device connected yet");          if (!pSamplerChannel->GetMidiInputDevice()) throw LinuxSamplerException("No MIDI input device connected yet");
379          MidiInputDevice::type_t oldtype = pSamplerChannel->GetMidiInputDevice()->Type();          MidiInputDevice::type_t oldtype = pSamplerChannel->GetMidiInputDevice()->Type();
380          pSamplerChannel->SetMidiInputDevice(oldtype, (MidiInputDevice::midi_chan_t) MIDIChannel);          pSamplerChannel->SetMidiInputDevice(oldtype, (MidiInputDevice::midi_chan_t) MIDIChannel);
   
         result.type = result_type_success;  
381      }      }
382      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
383           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
384      }      }
385      return ConvertResult(result);      return result.Produce();
386  }  }
387    
388  /**  /**
# Line 430  String LSCPServer::SetMIDIInputChannel(u Line 391  String LSCPServer::SetMIDIInputChannel(u
391   */   */
392  String LSCPServer::SetVolume(double Volume, uint uiSamplerChannel) {  String LSCPServer::SetVolume(double Volume, uint uiSamplerChannel) {
393      dmsg(2,("LSCPServer: SetVolume(Volume=%f, SamplerChannel=%d)\n", Volume, uiSamplerChannel));      dmsg(2,("LSCPServer: SetVolume(Volume=%f, SamplerChannel=%d)\n", Volume, uiSamplerChannel));
394      result_t result;      LSCPResultSet result;
395      try {      try {
396          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
397          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
398          Engine* pEngine = pSamplerChannel->GetEngine();          Engine* pEngine = pSamplerChannel->GetEngine();
399          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");
400          pEngine->Volume(Volume);          pEngine->Volume(Volume);
         result.type = result_type_success;  
401      }      }
402      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
403           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
404      }      }
405      return ConvertResult(result);      return result.Produce();
406  }  }
407    
408  /**  /**
# Line 453  String LSCPServer::SetVolume(double Volu Line 410  String LSCPServer::SetVolume(double Volu
410   */   */
411  String LSCPServer::ResetChannel(uint uiSamplerChannel) {  String LSCPServer::ResetChannel(uint uiSamplerChannel) {
412      dmsg(2,("LSCPServer: ResetChannel(SamplerChannel=%d)\n", uiSamplerChannel));      dmsg(2,("LSCPServer: ResetChannel(SamplerChannel=%d)\n", uiSamplerChannel));
413      result_t result;      LSCPResultSet result;
414      try {      try {
415          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);          SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
416          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");          if (!pSamplerChannel) throw LinuxSamplerException("Index out of bounds");
417          Engine* pEngine = pSamplerChannel->GetEngine();          Engine* pEngine = pSamplerChannel->GetEngine();
418          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");          if (!pEngine) throw LinuxSamplerException("No engine loaded on channel");
419          pEngine->Reset();          pEngine->Reset();
         result.type = result_type_success;  
420      }      }
421      catch (LinuxSamplerException e) {      catch (LinuxSamplerException e) {
422           e.PrintMessage();           result.Error(e);
          result.type    = result_type_error;  
          result.code    = LSCP_ERR_UNKNOWN;  
          result.message = e.Message();  
423      }      }
424      return ConvertResult(result);      return result.Produce();
425  }  }
426    
427  /**  /**

Legend:
Removed from v.119  
changed lines
  Added in v.120

  ViewVC Help
Powered by ViewVC