/[svn]/linuxsampler/trunk/src/drivers/audio/AudioOutputDeviceFactory.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/drivers/audio/AudioOutputDeviceFactory.h

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

revision 1247 by schoenebeck, Tue Jun 27 22:57:37 2006 UTC revision 1248 by persson, Fri Jun 22 10:10:06 2007 UTC
# Line 60  namespace LinuxSampler { Line 60  namespace LinuxSampler {
60                        AudioOutputDeviceFactory::InnerFactories[Driver_T::Name()] = new AudioOutputDeviceFactory::InnerFactoryTemplate<Driver_T>;                        AudioOutputDeviceFactory::InnerFactories[Driver_T::Name()] = new AudioOutputDeviceFactory::InnerFactoryTemplate<Driver_T>;
61                        AudioOutputDeviceFactory::ParameterFactories[Driver_T::Name()] = new DeviceParameterFactory();                        AudioOutputDeviceFactory::ParameterFactories[Driver_T::Name()] = new DeviceParameterFactory();
62                    }                    }
63                      ~InnerFactoryRegistrator() {
64                          std::map<String, InnerFactory*>::iterator iter = AudioOutputDeviceFactory::InnerFactories.find(Driver_T::Name());
65                          delete iter->second;
66                          AudioOutputDeviceFactory::InnerFactories.erase(iter);
67    
68                          std::map<String, DeviceParameterFactory*>::iterator iterpf = AudioOutputDeviceFactory::ParameterFactories.find(Driver_T::Name());
69                          delete iterpf->second;
70                          AudioOutputDeviceFactory::ParameterFactories.erase(iterpf);
71                      }
72            };            };
73    
74            template <class Driver_T, class Parameter_T>            template <class Driver_T, class Parameter_T>
75            class ParameterRegistrator {            class ParameterRegistrator {
76                public:                public:
77                    ParameterRegistrator() {                    ParameterRegistrator() {
78                            DeviceParameterFactory::Register<Parameter_T>(AudioOutputDeviceFactory::ParameterFactories[Driver_T::Name()]);                        DeviceParameterFactory::Register<Parameter_T>(AudioOutputDeviceFactory::ParameterFactories[Driver_T::Name()]);
79                    }                    }
80                      ~ParameterRegistrator() {
81                          DeviceParameterFactory::Unregister<Parameter_T>(AudioOutputDeviceFactory::ParameterFactories[Driver_T::Name()]);
82                      }
83            };            };
84    
85            static AudioOutputDevice*                        Create(String DriverName, std::map<String,String> Parameters) throw (Exception);            static AudioOutputDevice*                        Create(String DriverName, std::map<String,String> Parameters) throw (Exception);

Legend:
Removed from v.1247  
changed lines
  Added in v.1248

  ViewVC Help
Powered by ViewVC