/[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 1005 by schoenebeck, Fri Dec 29 20:06:14 2006 UTC revision 1026 by schoenebeck, Sun Jan 14 17:10:59 2007 UTC
# Line 3  Line 3 
3   *   LinuxSampler - modular, streaming capable sampler                     *   *   LinuxSampler - modular, streaming capable sampler                     *
4   *                                                                         *   *                                                                         *
5   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *
6   *   Copyright (C) 2005, 2006 Christian Schoenebeck                        *   *   Copyright (C) 2005 - 2007 Christian Schoenebeck                       *
7   *                                                                         *   *                                                                         *
8   *   This library is free software; you can redistribute it and/or modify  *   *   This library is free software; you can redistribute it and/or modify  *
9   *   it under the terms of the GNU General Public License as published by  *   *   it under the terms of the GNU General Public License as published by  *
# Line 1502  String LSCPServer::SetChannelSolo(bool b Line 1502  String LSCPServer::SetChannelSolo(bool b
1502    
1503          bool oldSolo = pEngineChannel->GetSolo();          bool oldSolo = pEngineChannel->GetSolo();
1504          bool hadSoloChannel = HasSoloChannel();          bool hadSoloChannel = HasSoloChannel();
1505            
1506          pEngineChannel->SetSolo(bSolo);          pEngineChannel->SetSolo(bSolo);
1507            
1508          if(!oldSolo && bSolo) {          if(!oldSolo && bSolo) {
1509              if(pEngineChannel->GetMute() == -1) pEngineChannel->SetMute(0);              if(pEngineChannel->GetMute() == -1) pEngineChannel->SetMute(0);
1510              if(!hadSoloChannel) MuteNonSoloChannels();              if(!hadSoloChannel) MuteNonSoloChannels();
1511          }          }
1512            
1513          if(oldSolo && !bSolo) {          if(oldSolo && !bSolo) {
1514              if(!HasSoloChannel()) UnmuteChannels();              if(!HasSoloChannel()) UnmuteChannels();
1515              else if(!pEngineChannel->GetMute()) pEngineChannel->SetMute(-1);              else if(!pEngineChannel->GetMute()) pEngineChannel->SetMute(-1);
# Line 1698  String LSCPServer::ListMidiInstrumentMap Line 1698  String LSCPServer::ListMidiInstrumentMap
1698          for (; iter != mappings.end(); iter++) {          for (; iter != mappings.end(); iter++) {
1699              if (s.size()) s += ",";              if (s.size()) s += ",";
1700              s += "{" + ToString(MidiMapID) + ","              s += "{" + ToString(MidiMapID) + ","
1701                       + ToString((int(iter->first.midi_bank_msb) << 7) & int(iter->first.midi_bank_lsb)) + ","                       + ToString((int(iter->first.midi_bank_msb) << 7) | int(iter->first.midi_bank_lsb)) + ","
1702                       + ToString(int(iter->first.midi_prog)) + "}";                       + ToString(int(iter->first.midi_prog)) + "}";
1703          }          }
1704          result.Add(s);          result.Add(s);
# Line 1720  String LSCPServer::ListAllMidiInstrument Line 1720  String LSCPServer::ListAllMidiInstrument
1720              for (; iter != mappings.end(); iter++) {              for (; iter != mappings.end(); iter++) {
1721                  if (s.size()) s += ",";                  if (s.size()) s += ",";
1722                  s += "{" + ToString(maps[i]) + ","                  s += "{" + ToString(maps[i]) + ","
1723                           + ToString((int(iter->first.midi_bank_msb) << 7) & int(iter->first.midi_bank_lsb)) + ","                           + ToString((int(iter->first.midi_bank_msb) << 7) | int(iter->first.midi_bank_lsb)) + ","
1724                           + ToString(int(iter->first.midi_prog)) + "}";                           + ToString(int(iter->first.midi_prog)) + "}";
1725              }              }
1726          }          }
# Line 1979  String LSCPServer::GetFxSendInfo(uint ui Line 1979  String LSCPServer::GetFxSendInfo(uint ui
1979    
1980          // success          // success
1981          result.Add("NAME", pFxSend->Name());          result.Add("NAME", pFxSend->Name());
1982            result.Add("MIDI_CONTROLLER", pFxSend->MidiController());
1983            result.Add("LEVEL", ToString(pFxSend->Level()));
1984          result.Add("AUDIO_OUTPUT_ROUTING", AudioRouting);          result.Add("AUDIO_OUTPUT_ROUTING", AudioRouting);
1985      } catch (Exception e) {      } catch (Exception e) {
1986          result.Error(e);          result.Error(e);
# Line 2009  String LSCPServer::SetFxSendAudioOutputC Line 2011  String LSCPServer::SetFxSendAudioOutputC
2011      } catch (Exception e) {      } catch (Exception e) {
2012          result.Error(e);          result.Error(e);
2013      }      }
2014        return result.Produce();
2015    }
2016    
2017    String LSCPServer::SetFxSendMidiController(uint uiSamplerChannel, uint FxSendID, uint MidiController) {
2018        dmsg(2,("LSCPServer: SetFxSendMidiController()\n"));
2019        LSCPResultSet result;
2020        try {
2021            SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
2022            if (!pSamplerChannel) throw Exception("Invalid sampler channel number " + ToString(uiSamplerChannel));
2023    
2024            EngineChannel* pEngineChannel = pSamplerChannel->GetEngineChannel();
2025            if (!pEngineChannel) throw Exception("There is no engine deployed on this sampler channel yet");
2026    
2027            FxSend* pFxSend = NULL;
2028            for (int i = 0; i < pEngineChannel->GetFxSendCount(); i++) {
2029                if (pEngineChannel->GetFxSend(i)->Id() == FxSendID) {
2030                    pFxSend = pEngineChannel->GetFxSend(i);
2031                    break;
2032                }
2033            }
2034            if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");
2035    
2036            pFxSend->SetMidiController(MidiController);
2037        } catch (Exception e) {
2038            result.Error(e);
2039        }
2040        return result.Produce();
2041    }
2042    
2043    String LSCPServer::SetFxSendLevel(uint uiSamplerChannel, uint FxSendID, double dLevel) {
2044        dmsg(2,("LSCPServer: SetFxSendLevel()\n"));
2045        LSCPResultSet result;
2046        try {
2047            SamplerChannel* pSamplerChannel = pSampler->GetSamplerChannel(uiSamplerChannel);
2048            if (!pSamplerChannel) throw Exception("Invalid sampler channel number " + ToString(uiSamplerChannel));
2049    
2050            EngineChannel* pEngineChannel = pSamplerChannel->GetEngineChannel();
2051            if (!pEngineChannel) throw Exception("There is no engine deployed on this sampler channel yet");
2052    
2053            FxSend* pFxSend = NULL;
2054            for (int i = 0; i < pEngineChannel->GetFxSendCount(); i++) {
2055                if (pEngineChannel->GetFxSend(i)->Id() == FxSendID) {
2056                    pFxSend = pEngineChannel->GetFxSend(i);
2057                    break;
2058                }
2059            }
2060            if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");
2061    
2062            pFxSend->SetLevel((float)dLevel);
2063        } catch (Exception e) {
2064            result.Error(e);
2065        }
2066      return result.Produce();      return result.Produce();
2067  }  }
2068    

Legend:
Removed from v.1005  
changed lines
  Added in v.1026

  ViewVC Help
Powered by ViewVC