/[svn]/linuxsampler/trunk/src/drivers/midi/MidiInputDeviceAlsa.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/drivers/midi/MidiInputDeviceAlsa.h

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

revision 212 by schoenebeck, Wed Jul 28 14:17:29 2004 UTC revision 221 by schoenebeck, Fri Aug 20 17:25:19 2004 UTC
# Line 39  namespace LinuxSampler { Line 39  namespace LinuxSampler {
39       */       */
40      class MidiInputDeviceAlsa : public MidiInputDevice, public Thread {      class MidiInputDeviceAlsa : public MidiInputDevice, public Thread {
41          public:          public:
42    
43                /**
44                 * MIDI Port implementation for the ALSA MIDI input driver.
45                 */
46                class MidiInputPortAlsa : public MidiInputPort {
47                    public:
48                        /** MIDI Port Parameter 'NAME'
49                         *
50                         * Used to assign an arbitrary name to the MIDI port.
51                         */
52                        class ParameterName : public MidiInputPort::ParameterName {
53                            public:
54                                ParameterName(MidiInputPort* pPort) throw (LinuxSamplerException);
55                                virtual void OnSetValue(String s) throw (LinuxSamplerException);
56                        };
57    
58                        /** MIDI Port Parameter 'ALSA_SEQ_BINDINGS'
59                         *
60                         * Used to connect to other Alsa sequencer clients.
61                         */
62                        class ParameterAlsaSeqBindings : public DeviceRuntimeParameterStrings {
63                            public:
64                                ParameterAlsaSeqBindings(MidiInputPortAlsa* pPort);
65                                virtual String Description();
66                                virtual bool Fix();
67                                virtual std::vector<String> PossibilitiesAsString();
68                                virtual void OnSetValue(std::vector<String> vS) throw (LinuxSamplerException);
69                            protected:
70                                MidiInputPortAlsa* pPort;
71                        };
72    
73                        void ConnectToAlsaMidiSource(const char* MidiSource);
74                    protected:
75                        MidiInputPortAlsa(MidiInputDeviceAlsa* pDevice) throw (MidiInputException);
76                        ~MidiInputPortAlsa();
77                        friend class MidiInputDeviceAlsa;
78                    private:
79                        MidiInputDeviceAlsa* pDevice;
80                };
81    
82              MidiInputDeviceAlsa(std::map<String,DeviceCreationParameter*> Parameters);              MidiInputDeviceAlsa(std::map<String,DeviceCreationParameter*> Parameters);
83              ~MidiInputDeviceAlsa();              ~MidiInputDeviceAlsa();
84    
85              // derived abstract methods from class 'MidiInputDevice'              // derived abstract methods from class 'MidiInputDevice'
86              void Listen();              void Listen();
87              void StopListen();              void StopListen();
88                virtual String Driver();
89                static String Name();
90                static String Description();
91                static String Version();
92    
93              virtual String Driver();              MidiInputPortAlsa* CreateMidiPort();
   
             static String Name();  
   
             static String Description();  
             static String Version();  
   
             class MidiInputPortAlsa : public MidiInputPort {  
                     public:  
                             void ConnectToAlsaMidiSource(const char* MidiSource);  
   
                             class ParameterAlsaSeqBindings : public DeviceCreationParameterString {  
                                     public:  
                                             ParameterAlsaSeqBindings(MidiInputPortAlsa* pPort) { this->pPort = pPort; InitWithDefault();}  
                                             virtual String Description()                                                    { return "Bindings to other Alsa sequencer clients";   }  
                                             virtual bool   Fix()                                                            { return false;   }  
                                             virtual bool   Mandatory()                                                      { return false;   }  
                                             virtual std::map<String,DeviceCreationParameter*> DependsAsParameters()         { return std::map<String,DeviceCreationParameter*>(); }  
                                             virtual optional<String>    DefaultAsString(std::map<String,String> Parameters)         { return ""; }  
                                             virtual std::vector<String> PossibilitiesAsString(std::map<String,String> Parameters) { return std::vector<String>(); } //TODO  
                                             virtual void             OnSetValue(String s) throw (LinuxSamplerException)     { pPort->ConnectToAlsaMidiSource(s.c_str()); }  
                                     protected:  
                                             MidiInputPortAlsa* pPort;  
                             };  
   
                     protected:  
                             MidiInputPortAlsa(MidiInputDeviceAlsa* pDevice, int portNumber);  
                             ~MidiInputPortAlsa();  
                             friend class MidiInputDeviceAlsa;  
                     private:  
                             MidiInputDeviceAlsa* pDevice;  
             };  
   
             MidiInputPortAlsa* CreateMidiPort( void );  
   
94          protected:          protected:
95              int Main(); ///< Implementation of virtual method from class Thread              int Main(); ///< Implementation of virtual method from class Thread
96          private:          private:

Legend:
Removed from v.212  
changed lines
  Added in v.221

  ViewVC Help
Powered by ViewVC