/[svn]/linuxsampler/trunk/src/mididriver/MidiInputDeviceFactory.cpp
ViewVC logotype

Annotation of /linuxsampler/trunk/src/mididriver/MidiInputDeviceFactory.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 153 - (hide annotations) (download)
Mon Jun 28 04:21:11 2004 UTC (19 years, 10 months ago) by senkov
File size: 4246 byte(s)
* Updated MIDI infrastructure similar to what was previously
done with the AUDIO
* Implemented Alsa driver using new infrastructure
* TODO: MacOS drivers!

1 senkov 153 /***************************************************************************
2     * *
3     * LinuxSampler - modular, streaming capable sampler *
4     * *
5     * Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck *
6     * *
7     * This program is free software; you can redistribute it and/or modify *
8     * it under the terms of the GNU General Public License as published by *
9     * the Free Software Foundation; either version 2 of the License, or *
10     * (at your option) any later version. *
11     * *
12     * This program is distributed in the hope that it will be useful, *
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15     * GNU General Public License for more details. *
16     * *
17     * You should have received a copy of the GNU General Public License *
18     * along with this program; if not, write to the Free Software *
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
20     * MA 02111-1307 USA *
21     ***************************************************************************/
22    
23     #include "MidiInputDeviceFactory.h"
24    
25     namespace LinuxSampler {
26    
27     std::map<String, MidiInputDeviceFactory::InnerFactory*> MidiInputDeviceFactory::InnerFactories;
28    
29     MidiInputDevice* MidiInputDeviceFactory::Create(String DriverName, std::map<String,String>& Parameters) throw (LinuxSamplerException) {
30     if (!InnerFactories[DriverName]) throw LinuxSamplerException("There is no midi input driver '" + DriverName + "'.");
31     return InnerFactories[DriverName]->Create(Parameters);
32     }
33    
34     std::vector<String> MidiInputDeviceFactory::AvailableDrivers() {
35     std::vector<String> result;
36     std::map<String, InnerFactory*>::iterator iter = InnerFactories.begin();
37     while (iter != InnerFactories.end()) {
38     result.push_back(iter->first);
39     iter++;
40     }
41     return result;
42     }
43    
44     String MidiInputDeviceFactory::AvailableDriversAsString() {
45     std::vector<String> drivers = AvailableDrivers();
46     String result;
47     std::vector<String>::iterator iter = drivers.begin();
48     for (; iter != drivers.end(); iter++) {
49     if (result != "") result += ",";
50     result += *iter;
51     }
52     return result;
53     }
54    
55     std::map<String,DeviceCreationParameter*> MidiInputDeviceFactory::GetAvailableDriverParameters(String DriverName) throw (LinuxSamplerException) {
56     if (!InnerFactories[DriverName]) throw LinuxSamplerException("There is no midi input driver '" + DriverName + "'.");
57     return InnerFactories[DriverName]->AvailableParameters();
58     }
59    
60     DeviceCreationParameter* MidiInputDeviceFactory::GetDriverParameter(String DriverName, String ParameterName) throw (LinuxSamplerException) {
61     std::map<String,DeviceCreationParameter*> parameters = GetAvailableDriverParameters(DriverName);
62     if (!parameters[ParameterName]) throw LinuxSamplerException("Midi input driver '" + DriverName + "' does not have a parameter '" + ParameterName + "'.");
63     return parameters[ParameterName];
64     }
65    
66     String MidiInputDeviceFactory::GetDriverDescription(String DriverName) throw (LinuxSamplerException) {
67     if (!InnerFactories[DriverName]) throw LinuxSamplerException("There is no midi input driver '" + DriverName + "'.");
68     return InnerFactories[DriverName]->Description();
69     }
70    
71     String MidiInputDeviceFactory::GetDriverVersion(String DriverName) throw (LinuxSamplerException) {
72     if (!InnerFactories[DriverName]) throw LinuxSamplerException("There is no midi input driver '" + DriverName + "'.");
73     return InnerFactories[DriverName]->Version();
74     }
75    
76     } // namespace LinuxSampler

  ViewVC Help
Powered by ViewVC