/[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 1047 by schoenebeck, Mon Feb 19 19:38:04 2007 UTC revision 1130 by iliev, Sun Mar 25 18:59:14 2007 UTC
# Line 75  LSCPServer::LSCPServer(Sampler* pSampler Line 75  LSCPServer::LSCPServer(Sampler* pSampler
75      LSCPEvent::RegisterEvent(LSCPEvent::event_stream_count, "STREAM_COUNT");      LSCPEvent::RegisterEvent(LSCPEvent::event_stream_count, "STREAM_COUNT");
76      LSCPEvent::RegisterEvent(LSCPEvent::event_buffer_fill, "BUFFER_FILL");      LSCPEvent::RegisterEvent(LSCPEvent::event_buffer_fill, "BUFFER_FILL");
77      LSCPEvent::RegisterEvent(LSCPEvent::event_channel_info, "CHANNEL_INFO");      LSCPEvent::RegisterEvent(LSCPEvent::event_channel_info, "CHANNEL_INFO");
78        LSCPEvent::RegisterEvent(LSCPEvent::event_fx_send_count, "FX_SEND_COUNT");
79        LSCPEvent::RegisterEvent(LSCPEvent::event_fx_send_info, "FX_SEND_INFO");
80      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_map_count, "MIDI_INSTRUMENT_MAP_COUNT");      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_map_count, "MIDI_INSTRUMENT_MAP_COUNT");
81      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_map_info, "MIDI_INSTRUMENT_MAP_INFO");      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_map_info, "MIDI_INSTRUMENT_MAP_INFO");
82      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_count, "MIDI_INSTRUMENT_COUNT");      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_count, "MIDI_INSTRUMENT_COUNT");
83      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_info, "MIDI_INSTRUMENT_INFO");      LSCPEvent::RegisterEvent(LSCPEvent::event_midi_instr_info, "MIDI_INSTRUMENT_INFO");
84      LSCPEvent::RegisterEvent(LSCPEvent::event_misc, "MISCELLANEOUS");      LSCPEvent::RegisterEvent(LSCPEvent::event_misc, "MISCELLANEOUS");
85      LSCPEvent::RegisterEvent(LSCPEvent::event_total_voice_count, "TOTAL_VOICE_COUNT");      LSCPEvent::RegisterEvent(LSCPEvent::event_total_voice_count, "TOTAL_VOICE_COUNT");
86        LSCPEvent::RegisterEvent(LSCPEvent::event_global_info, "GLOBAL_INFO");
87      hSocket = -1;      hSocket = -1;
88  }  }
89    
# Line 88  LSCPServer::~LSCPServer() { Line 91  LSCPServer::~LSCPServer() {
91      if (hSocket >= 0) close(hSocket);      if (hSocket >= 0) close(hSocket);
92  }  }
93    
94    void LSCPServer::LscpChannelCountListener::ChannelCountChanged(int NewCount) {
95        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_channel_count, NewCount));
96    }
97    
98    void LSCPServer::LscpAudioDeviceCountListener::AudioDeviceCountChanged(int NewCount) {
99        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_audio_device_count, NewCount));
100    }
101    
102    void LSCPServer::LscpMidiDeviceCountListener::MidiDeviceCountChanged(int NewCount) {
103        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_midi_device_count, NewCount));
104    }
105    
106    void LSCPServer::LscpMidiInstrumentCountListener::MidiInstrumentCountChanged(int MapId, int NewCount) {
107        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_midi_instr_count, MapId, NewCount));
108    }
109    
110    void LSCPServer::LscpMidiInstrumentInfoListener::MidiInstrumentInfoChanged(int MapId, int Bank, int Program) {
111        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_midi_instr_info, MapId, Bank, Program));
112    }
113    
114    void LSCPServer::LscpMidiInstrumentMapCountListener::MidiInstrumentMapCountChanged(int NewCount) {
115        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_midi_instr_map_count, NewCount));
116    }
117    
118    void LSCPServer::LscpMidiInstrumentMapInfoListener::MidiInstrumentMapInfoChanged(int MapId) {
119        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_midi_instr_map_info, MapId));
120    }
121    
122    void LSCPServer::LscpFxSendCountListener::FxSendCountChanged(int ChannelId, int NewCount) {
123        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_fx_send_count, ChannelId, NewCount));
124    }
125    
126    void LSCPServer::LscpVoiceCountListener::VoiceCountChanged(int ChannelId, int NewCount) {
127        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_voice_count, ChannelId, NewCount));
128    }
129    
130    void LSCPServer::LscpStreamCountListener::StreamCountChanged(int ChannelId, int NewCount) {
131        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_stream_count, ChannelId, NewCount));
132    }
133    
134    void LSCPServer::LscpBufferFillListener::BufferFillChanged(int ChannelId, String FillData) {
135        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_buffer_fill, ChannelId, FillData));
136    }
137    
138    void LSCPServer::LscpTotalVoiceCountListener::TotalVoiceCountChanged(int NewCount) {
139        LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_total_voice_count, NewCount));
140    }
141    
142    
143  /**  /**
144   * Blocks the calling thread until the LSCP Server is initialized and   * Blocks the calling thread until the LSCP Server is initialized and
145   * accepting socket connections, if the server is already initialized then   * accepting socket connections, if the server is already initialized then
# Line 128  int LSCPServer::Main() { Line 180  int LSCPServer::Main() {
180    
181      listen(hSocket, 1);      listen(hSocket, 1);
182      Initialized.Set(true);      Initialized.Set(true);
183        
184        // Registering event listeners
185        pSampler->AddChannelCountListener(&channelCountListener);
186        pSampler->AddAudioDeviceCountListener(&audioDeviceCountListener);
187        pSampler->AddMidiDeviceCountListener(&midiDeviceCountListener);
188        pSampler->AddVoiceCountListener(&voiceCountListener);
189        pSampler->AddStreamCountListener(&streamCountListener);
190        pSampler->AddBufferFillListener(&bufferFillListener);
191        pSampler->AddTotalVoiceCountListener(&totalVoiceCountListener);
192        pSampler->AddFxSendCountListener(&fxSendCountListener);
193        MidiInstrumentMapper::AddMidiInstrumentCountListener(&midiInstrumentCountListener);
194        MidiInstrumentMapper::AddMidiInstrumentInfoListener(&midiInstrumentInfoListener);
195        MidiInstrumentMapper::AddMidiInstrumentMapCountListener(&midiInstrumentMapCountListener);
196        MidiInstrumentMapper::AddMidiInstrumentMapInfoListener(&midiInstrumentMapInfoListener);
197    
198      // now wait for client connections and handle their requests      // now wait for client connections and handle their requests
199      sockaddr_in client;      sockaddr_in client;
# Line 148  int LSCPServer::Main() { Line 214  int LSCPServer::Main() {
214                  if ((*itEngineChannel)->StatusChanged()) {                  if ((*itEngineChannel)->StatusChanged()) {
215                      SendLSCPNotify(LSCPEvent(LSCPEvent::event_channel_info, (*itEngineChannel)->iSamplerChannelIndex));                      SendLSCPNotify(LSCPEvent(LSCPEvent::event_channel_info, (*itEngineChannel)->iSamplerChannelIndex));
216                  }                  }
217    
218                    for (int i = 0; i < (*itEngineChannel)->GetFxSendCount(); i++) {
219                        FxSend* fxs = (*itEngineChannel)->GetFxSend(i);
220                        if(fxs != NULL && fxs->IsInfoChanged()) {
221                            int chn = (*itEngineChannel)->iSamplerChannelIndex;
222                            LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_fx_send_info, chn, fxs->Id()));
223                            fxs->SetInfoChanged(false);
224                        }
225                    }
226              }              }
227          }          }
228    
# Line 670  String LSCPServer::GetChannelInfo(uint u Line 745  String LSCPServer::GetChannelInfo(uint u
745          String AudioRouting;          String AudioRouting;
746          int Mute = 0;          int Mute = 0;
747          bool Solo = false;          bool Solo = false;
748          String MidiInstrumentMap;          String MidiInstrumentMap = "NONE";
749    
750          if (pEngineChannel) {          if (pEngineChannel) {
751              EngineName          = pEngineChannel->EngineName();              EngineName          = pEngineChannel->EngineName();
# Line 2010  String LSCPServer::SetFxSendAudioOutputC Line 2085  String LSCPServer::SetFxSendAudioOutputC
2085          if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");          if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");
2086    
2087          pFxSend->SetDestinationChannel(FxSendChannel, DeviceChannel);          pFxSend->SetDestinationChannel(FxSendChannel, DeviceChannel);
2088            LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_fx_send_info, uiSamplerChannel, FxSendID));
2089      } catch (Exception e) {      } catch (Exception e) {
2090          result.Error(e);          result.Error(e);
2091      }      }
# Line 2036  String LSCPServer::SetFxSendMidiControll Line 2112  String LSCPServer::SetFxSendMidiControll
2112          if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");          if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");
2113    
2114          pFxSend->SetMidiController(MidiController);          pFxSend->SetMidiController(MidiController);
2115            LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_fx_send_info, uiSamplerChannel, FxSendID));
2116      } catch (Exception e) {      } catch (Exception e) {
2117          result.Error(e);          result.Error(e);
2118      }      }
# Line 2062  String LSCPServer::SetFxSendLevel(uint u Line 2139  String LSCPServer::SetFxSendLevel(uint u
2139          if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");          if (!pFxSend) throw Exception("There is no FxSend with that ID on the given sampler channel");
2140    
2141          pFxSend->SetLevel((float)dLevel);          pFxSend->SetLevel((float)dLevel);
2142            LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_fx_send_info, uiSamplerChannel, FxSendID));
2143      } catch (Exception e) {      } catch (Exception e) {
2144          result.Error(e);          result.Error(e);
2145      }      }
# Line 2141  String LSCPServer::SetGlobalVolume(doubl Line 2219  String LSCPServer::SetGlobalVolume(doubl
2219      try {      try {
2220          if (dVolume < 0) throw Exception("Volume may not be negative");          if (dVolume < 0) throw Exception("Volume may not be negative");
2221          GLOBAL_VOLUME = dVolume; // see common/global.cpp          GLOBAL_VOLUME = dVolume; // see common/global.cpp
2222            LSCPServer::SendLSCPNotify(LSCPEvent(LSCPEvent::event_global_info, "VOLUME", GLOBAL_VOLUME));
2223      } catch (Exception e) {      } catch (Exception e) {
2224          result.Error(e);          result.Error(e);
2225      }      }

Legend:
Removed from v.1047  
changed lines
  Added in v.1130

  ViewVC Help
Powered by ViewVC