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

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

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

revision 1135 by iliev, Thu Mar 29 09:40:45 2007 UTC revision 1535 by iliev, Mon Dec 3 13:59:03 2007 UTC
# Line 24  Line 24 
24  #ifndef __LSCPSERVER_H_  #ifndef __LSCPSERVER_H_
25  #define __LSCPSERVER_H_  #define __LSCPSERVER_H_
26    
27    #if defined(WIN32)
28    #include <windows.h>
29    typedef int socklen_t;
30    #else
31  #include <unistd.h>  #include <unistd.h>
32  #include <sys/types.h>  #include <sys/types.h>
33  #include <sys/socket.h>  #include <sys/socket.h>
# Line 33  Line 37 
37  #include <netinet/tcp.h>  #include <netinet/tcp.h>
38  #include <arpa/inet.h>  #include <arpa/inet.h>
39  #include <netdb.h>  #include <netdb.h>
40    #endif
41    
42  #include <list>  #include <list>
43    
# Line 44  Line 49 
49  #include "../common/Thread.h"  #include "../common/Thread.h"
50  #include "../common/Mutex.h"  #include "../common/Mutex.h"
51  #include "../common/Condition.h"  #include "../common/Condition.h"
52    #include "../common/global_private.h"
53    
54  #include "../drivers/midi/MidiInstrumentMapper.h"  #include "../drivers/midi/MidiInstrumentMapper.h"
55    
56    #if HAVE_SQLITE3
57    #include "../db/InstrumentsDb.h"
58    #endif
59    
60  /// TCP Port on which the server should listen for connection requests.  /// TCP Port on which the server should listen for connection requests.
61  #define LSCP_ADDR INADDR_ANY  #define LSCP_ADDR INADDR_ANY
62  #define LSCP_PORT 8888  #define LSCP_PORT 8888
# Line 154  class LSCPServer : public Thread { Line 164  class LSCPServer : public Thread {
164          String SetFxSendAudioOutputChannel(uint uiSamplerChannel, uint FxSendID, uint FxSendChannel, uint DeviceChannel);          String SetFxSendAudioOutputChannel(uint uiSamplerChannel, uint FxSendID, uint FxSendChannel, uint DeviceChannel);
165          String SetFxSendMidiController(uint uiSamplerChannel, uint FxSendID, uint MidiController);          String SetFxSendMidiController(uint uiSamplerChannel, uint FxSendID, uint MidiController);
166          String SetFxSendLevel(uint uiSamplerChannel, uint FxSendID, double dLevel);          String SetFxSendLevel(uint uiSamplerChannel, uint FxSendID, double dLevel);
167            String AddDbInstrumentDirectory(String Dir);
168            String RemoveDbInstrumentDirectory(String Dir, bool Force = false);
169            String GetDbInstrumentDirectoryCount(String Dir, bool Recursive = false);
170            String GetDbInstrumentDirectories(String Dir, bool Recursive = false);
171            String GetDbInstrumentDirectoryInfo(String Dir);
172            String SetDbInstrumentDirectoryName(String Dir, String Name);
173            String MoveDbInstrumentDirectory(String Dir, String Dst);
174            String CopyDbInstrumentDirectory(String Dir, String Dst);
175            String SetDbInstrumentDirectoryDescription(String Dir, String Desc);
176            String FindDbInstrumentDirectories(String Dir, std::map<String,String> Parameters, bool Recursive = true);
177            String AddDbInstruments(String DbDir, String FilePath, int Index = -1, bool bBackground = false);
178            String AddDbInstruments(String ScanMode, String DbDir, String FsDir, bool bBackground = false);
179            String RemoveDbInstrument(String Instr);
180            String GetDbInstrumentCount(String Dir, bool Recursive = false);
181            String GetDbInstruments(String Dir, bool Recursive = false);
182            String GetDbInstrumentInfo(String Instr);
183            String SetDbInstrumentName(String Instr, String Name);
184            String MoveDbInstrument(String Instr, String Dst);
185            String CopyDbInstrument(String Instr, String Dst);
186            String SetDbInstrumentDescription(String Instr, String Desc);
187            String FindDbInstruments(String Dir, std::map<String,String> Parameters, bool Recursive = true);
188            String FormatInstrumentsDb();
189            String EditSamplerChannelInstrument(uint uiSamplerChannel);
190            String GetDbInstrumentsJobInfo(int JobId);
191          String ResetChannel(uint uiSamplerChannel);          String ResetChannel(uint uiSamplerChannel);
192          String ResetSampler();          String ResetSampler();
193          String GetServerInfo();          String GetServerInfo();
# Line 161  class LSCPServer : public Thread { Line 195  class LSCPServer : public Thread {
195          String GetTotalVoiceCountMax();          String GetTotalVoiceCountMax();
196          String GetGlobalVolume();          String GetGlobalVolume();
197          String SetGlobalVolume(double dVolume);          String SetGlobalVolume(double dVolume);
198            String GetFileInstruments(String Filename);
199            String ListFileInstruments(String Filename);
200            String GetFileInstrumentInfo(String Filename, uint InstrumentID);
201          String SubscribeNotification(LSCPEvent::event_t);          String SubscribeNotification(LSCPEvent::event_t);
202          String UnsubscribeNotification(LSCPEvent::event_t);          String UnsubscribeNotification(LSCPEvent::event_t);
         String QueryDatabase(String query);  
203          String SetEcho(yyparse_param_t* pSession, double boolean_value);          String SetEcho(yyparse_param_t* pSession, double boolean_value);
204          void   AnswerClient(String ReturnMessage);          void   AnswerClient(String ReturnMessage);
205    
# Line 174  class LSCPServer : public Thread { Line 210  class LSCPServer : public Thread {
210          static int EventSubscribers( std::list<LSCPEvent::event_t> events );          static int EventSubscribers( std::list<LSCPEvent::event_t> events );
211          static void LockRTNotify( void ) { RTNotifyMutex.Lock(); }          static void LockRTNotify( void ) { RTNotifyMutex.Lock(); }
212          static void UnlockRTNotify( void ) { RTNotifyMutex.Unlock(); }          static void UnlockRTNotify( void ) { RTNotifyMutex.Unlock(); }
213        static String FilterEndlines(String s);
214    
215      protected:      protected:
216          int            hSocket;          int            hSocket;
# Line 205  class LSCPServer : public Thread { Line 242  class LSCPServer : public Thread {
242          bool HasSoloChannel();          bool HasSoloChannel();
243          void MuteNonSoloChannels();          void MuteNonSoloChannels();
244          void UnmuteChannels();          void UnmuteChannels();
245            
246            /**
247             * Throws an exception if the specified file is not found or
248             * if directory is specified.
249             */
250            static void VerifyFile(String Filename);
251    
252          static std::map<int,String> bufferedNotifies;          static std::map<int,String> bufferedNotifies;
253          static Mutex NotifyMutex;          static Mutex NotifyMutex;
# Line 234  class LSCPServer : public Thread { Line 277  class LSCPServer : public Thread {
277                   * @param NewCount The new number of sampler channels.                   * @param NewCount The new number of sampler channels.
278                   */                   */
279                  virtual void ChannelCountChanged(int NewCount);                  virtual void ChannelCountChanged(int NewCount);
280            
281                  /**                  /**
282                   * Invoked when the number of audio output devices has changed.                   * Invoked when the number of audio output devices has changed.
283                   * @param NewCount The new number of audio output devices.                   * @param NewCount The new number of audio output devices.
284                   */                   */
285                  virtual void AudioDeviceCountChanged(int NewCount);                  virtual void AudioDeviceCountChanged(int NewCount);
286    
287                  /**                  /**
288                   * Invoked when the number of MIDI input devices has changed.                   * Invoked when the number of MIDI input devices has changed.
289                   * @param NewCount The new number of MIDI input devices.                   * @param NewCount The new number of MIDI input devices.
# Line 253  class LSCPServer : public Thread { Line 296  class LSCPServer : public Thread {
296                   * @param NewCount The new number of MIDI instruments.                   * @param NewCount The new number of MIDI instruments.
297                   */                   */
298                  virtual void MidiInstrumentCountChanged(int MapId, int NewCount);                  virtual void MidiInstrumentCountChanged(int MapId, int NewCount);
299    
300                  /**                  /**
301                   * Invoked when a MIDI instrument in a MIDI instrument map is changed.                   * Invoked when a MIDI instrument in a MIDI instrument map is changed.
302                   * @param MapId The numerical ID of the MIDI instrument map.                   * @param MapId The numerical ID of the MIDI instrument map.
# Line 261  class LSCPServer : public Thread { Line 304  class LSCPServer : public Thread {
304                   * @param Program The MIDI program number of the instrument.                   * @param Program The MIDI program number of the instrument.
305                   */                   */
306                  virtual void MidiInstrumentInfoChanged(int MapId, int Bank, int Program);                  virtual void MidiInstrumentInfoChanged(int MapId, int Bank, int Program);
307        
308                  /**                  /**
309                   * Invoked when the number of MIDI instrument maps has changed.                   * Invoked when the number of MIDI instrument maps has changed.
310                   * @param NewCount The new number of MIDI instruments.                   * @param NewCount The new number of MIDI instruments.
# Line 273  class LSCPServer : public Thread { Line 316  class LSCPServer : public Thread {
316                   * @param MapId The numerical ID of the MIDI instrument map.                   * @param MapId The numerical ID of the MIDI instrument map.
317                   */                   */
318                  virtual void MidiInstrumentMapInfoChanged(int MapId);                  virtual void MidiInstrumentMapInfoChanged(int MapId);
319          
320                  /**                  /**
321                   * Invoked when the number of effect sends                   * Invoked when the number of effect sends
322                   * on the specified sampler channel has changed.                   * on the specified sampler channel has changed.
# Line 312  class LSCPServer : public Thread { Line 355  class LSCPServer : public Thread {
355                   */                   */
356                  virtual void TotalVoiceCountChanged(int NewCount);                  virtual void TotalVoiceCountChanged(int NewCount);
357          } eventHandler;          } eventHandler;
358    
359    #if HAVE_SQLITE3
360            class DbInstrumentsEventHandler : public InstrumentsDb::Listener {
361                public:
362                    virtual void DirectoryCountChanged(String Dir);
363                    virtual void DirectoryInfoChanged(String Dir);
364                    virtual void DirectoryNameChanged(String Dir, String NewName);
365                    virtual void InstrumentCountChanged(String Dir);
366                    virtual void InstrumentInfoChanged(String Instr);
367                    virtual void InstrumentNameChanged(String Instr, String NewName);
368                    virtual void JobStatusChanged(int JobId);
369            } dbInstrumentsEventHandler;
370    #endif // HAVE_SQLITE3
371  };  };
372    
373  #endif // __LSCPSERVER_H_  #endif // __LSCPSERVER_H_

Legend:
Removed from v.1135  
changed lines
  Added in v.1535

  ViewVC Help
Powered by ViewVC