Changeset 942
- Timestamp:
- 03/12/08 12:54:46 (16 years ago)
- Files:
-
- trunk/libffado/src/devicemanager.cpp (modified) (9 diffs)
- trunk/libffado/src/devicemanager.h (modified) (2 diffs)
- trunk/libffado/src/DeviceStringParser.cpp (added)
- trunk/libffado/src/DeviceStringParser.h (added)
- trunk/libffado/src/SConscript (modified) (1 diff)
- trunk/libffado/tests/SConscript (modified) (1 diff)
- trunk/libffado/tests/test-devicestringparser.cpp (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/devicemanager.cpp
r932 r942 27 27 #include "devicemanager.h" 28 28 #include "ffadodevice.h" 29 #include "DeviceStringParser.h" 29 30 30 31 #include "libieee1394/configrom.h" … … 82 83 : Control::Container("devicemanager") 83 84 , m_processorManager( new Streaming::StreamProcessorManager() ) 85 , m_deviceStringParser( new DeviceStringParser() ) 84 86 { 85 87 addOption(Util::OptionContainer::Option("slaveMode",false)); … … 115 117 delete *it; 116 118 } 119 120 delete m_deviceStringParser; 117 121 } 118 122 … … 188 192 if(isSpecStringValid(spec)) { 189 193 debugOutput(DEBUG_LEVEL_VERBOSE, "Adding spec string %s\n", spec.c_str()); 190 m_SpecStrings.push_back(spec); 194 assert(m_deviceStringParser); 195 m_deviceStringParser->parseString(spec); 191 196 return true; 192 197 } else { … … 198 203 bool 199 204 DeviceManager::isSpecStringValid(std::string s) { 200 return true; 205 assert(m_deviceStringParser); 206 return m_deviceStringParser->isValidString(s); 201 207 } 202 208 … … 239 245 } 240 246 m_avDevices.clear(); 247 248 assert(m_deviceStringParser); 249 // show the spec strings we're going to use 250 if(getDebugLevel() >= DEBUG_LEVEL_VERBOSE) { 251 m_deviceStringParser->show(); 252 } 241 253 242 254 if (!slaveMode) { … … 282 294 } 283 295 } 284 if 296 if(already_in_vector) { 285 297 debugWarning("Device with GUID %s already discovered on other port, skipping device...\n", 286 298 configRom->getGuidString().c_str()); … … 288 300 } 289 301 290 if( 302 if(getDebugLevel() >= DEBUG_LEVEL_VERBOSE) { 291 303 configRom->printConfigRomDebug(); 292 304 } 293 305 306 // if spec strings are given, only add those devices 307 // that match the spec string(s). 308 // if no (valid) spec strings are present, grab all 309 // supported devices. 310 if(m_deviceStringParser->countDeviceStrings() && 311 !m_deviceStringParser->match(*configRom.get())) { 312 debugOutput(DEBUG_LEVEL_VERBOSE, "Device doesn't match any of the spec strings. skipping...\n"); 313 continue; 314 } 315 316 // find a driver 294 317 FFADODevice* avDevice = getDriverForDevice( configRom, 295 318 nodeId ); … … 770 793 Control::Element::setVerboseLevel(l); 771 794 m_processorManager->setVerboseLevel(l); 795 m_deviceStringParser->setVerboseLevel(l); 772 796 for ( FFADODeviceVectorIterator it = m_avDevices.begin(); 773 797 it != m_avDevices.end(); trunk/libffado/src/devicemanager.h
r932 r942 43 43 class Ieee1394Service; 44 44 class FFADODevice; 45 class DeviceStringParser; 46 45 47 namespace Streaming { 46 48 class StreamProcessor; … … 126 128 private: 127 129 Streaming::StreamProcessorManager* m_processorManager; 130 DeviceStringParser* m_deviceStringParser; 128 131 protected: 129 std::vector<std::string> m_SpecStrings;132 std::vector<std::string> m_SpecStrings; 130 133 131 134 bool m_thread_realtime; trunk/libffado/src/SConscript
r939 r942 35 35 ffadodevice.cpp \ 36 36 debugmodule/debugmodule.cpp \ 37 DeviceStringParser.cpp \ 37 38 libavc/streamformat/avc_extended_stream_format.cpp \ 38 39 libavc/musicsubunit/avc_descriptor_music.cpp \ trunk/libffado/tests/SConscript
r939 r942 53 53 "test-bufferops" : "test-bufferops.cpp", 54 54 "test-watchdog" : "test-watchdog.cpp", 55 "test-devicestringparser" : "test-devicestringparser.cpp", 55 56 "dumpiso_mod" : "dumpiso_mod.cpp" 56 57 }