Changeset 516
- Timestamp:
- 08/10/07 12:07:16 (16 years ago)
- Files:
-
- trunk/libffado/src/bebob/bebob_avdevice.cpp (modified) (7 diffs)
- trunk/libffado/src/bebob/bebob_avdevice.h (modified) (2 diffs)
- trunk/libffado/src/bebob/bebob_avdevice_subunit.cpp (modified) (3 diffs)
- trunk/libffado/src/bebob/bebob_avplug.cpp (modified) (3 diffs)
- trunk/libffado/src/bebob/bebob_functionblock.cpp (modified) (1 diff)
- trunk/libffado/src/bounce/bounce_avdevice.h (modified) (1 diff)
- trunk/libffado/src/devicemanager.cpp (modified) (7 diffs)
- trunk/libffado/src/devicemanager.h (modified) (1 diff)
- trunk/libffado/src/dice/dice_avdevice.h (modified) (2 diffs)
- trunk/libffado/src/iavdevice.h (modified) (1 diff)
- trunk/libffado/src/libutil/OptionContainer.cpp (modified) (1 diff)
- trunk/libffado/src/libutil/serialize.cpp (modified) (10 diffs)
- trunk/libffado/src/libutil/serialize.h (modified) (5 diffs)
- trunk/libffado/src/maudio/maudio_avdevice.h (modified) (2 diffs)
- trunk/libffado/src/metrichalo/mh_avdevice.h (modified) (2 diffs)
- trunk/libffado/src/motu/motu_avdevice.h (modified) (2 diffs)
- trunk/libffado/src/rme/rme_avdevice.h (modified) (2 diffs)
- trunk/libffado/src/ser.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/bebob/bebob_avdevice.cpp
r488 r516 792 792 793 793 int 794 AvDevice::getSamplingFrequency( ) { 794 AvDevice::getSamplingFrequency( ) 795 { 795 796 AvPlug* inputPlug = getPlugById( m_pcrPlugs, AvPlug::eAPD_Input, 0 ); 796 797 if ( !inputPlug ) { … … 814 815 815 816 int 816 AvDevice::getConfigurationIdSampleRate( )817 { 818 ExtendedStreamFormatCmd extStreamFormatCmd( *m_p1394Service );817 AvDevice::getConfigurationIdSampleRate( Ieee1394Service& ieee1394Service, int nodeId ) 818 { 819 ExtendedStreamFormatCmd extStreamFormatCmd( ieee1394Service ); 819 820 UnitPlugAddress unitPlugAddress( UnitPlugAddress::ePT_PCR, 820 m_nodeId );821 nodeId ); 821 822 extStreamFormatCmd.setPlugAddress( PlugAddress( PlugAddress::ePD_Input, 822 823 PlugAddress::ePAM_Unit, 823 824 unitPlugAddress ) ); 824 825 825 extStreamFormatCmd.setNodeId( m_nodeId );826 extStreamFormatCmd.setNodeId( nodeId ); 826 827 extStreamFormatCmd.setCommandType( AVCCommand::eCT_Status ); 827 828 extStreamFormatCmd.setVerbose( true ); … … 848 849 849 850 int 850 AvDevice::getConfigurationIdNumberOfChannel( PlugAddress::EPlugDirection ePlugDirection ) 851 { 852 ExtendedPlugInfoCmd extPlugInfoCmd( *m_p1394Service ); 851 AvDevice::getConfigurationIdNumberOfChannel( Ieee1394Service& ieee1394Service, 852 int nodeId, 853 PlugAddress::EPlugDirection ePlugDirection ) 854 { 855 ExtendedPlugInfoCmd extPlugInfoCmd( ieee1394Service ); 853 856 UnitPlugAddress unitPlugAddress( UnitPlugAddress::ePT_PCR, 854 m_nodeId );857 nodeId ); 855 858 extPlugInfoCmd.setPlugAddress( PlugAddress( ePlugDirection, 856 859 PlugAddress::ePAM_Unit, 857 860 unitPlugAddress ) ); 858 extPlugInfoCmd.setNodeId( m_nodeId );861 extPlugInfoCmd.setNodeId( nodeId ); 859 862 extPlugInfoCmd.setCommandType( AVCCommand::eCT_Status ); 860 863 extPlugInfoCmd.setVerbose( true ); … … 883 886 884 887 int 885 AvDevice::getConfigurationIdSyncMode() 886 { 887 SignalSourceCmd signalSourceCmd( *m_p1394Service ); 888 AvDevice::getConfigurationIdSyncMode( Ieee1394Service& ieee1394Service, 889 int nodeId ) 890 { 891 SignalSourceCmd signalSourceCmd( ieee1394Service ); 888 892 SignalUnitAddress signalUnitAddr; 889 893 signalUnitAddr.m_plugId = 0x01; 890 894 signalSourceCmd.setSignalDestination( signalUnitAddr ); 891 signalSourceCmd.setNodeId( m_nodeId );895 signalSourceCmd.setNodeId( nodeId ); 892 896 signalSourceCmd.setSubunitType( AVCCommand::eST_Unit ); 893 897 signalSourceCmd.setSubunitId( 0xff ); … … 919 923 920 924 int 921 AvDevice::getConfigurationId( )925 AvDevice::getConfigurationId( Ieee1394Service& ieee1394Service, int nodeId ) 922 926 { 923 927 // create a unique configuration id. 924 928 int id = 0; 925 id = getConfigurationIdSampleRate( );926 id |= ( getConfigurationIdNumberOfChannel( PlugAddress::ePD_Input )927 + getConfigurationIdNumberOfChannel( PlugAddress::ePD_Output ) ) << 8;928 id |= getConfigurationIdSyncMode( ) << 16;929 id = getConfigurationIdSampleRate( ieee1394Service, nodeId ); 930 id |= ( getConfigurationIdNumberOfChannel( ieee1394Service, nodeId, PlugAddress::ePD_Input ) 931 + getConfigurationIdNumberOfChannel( ieee1394Service, nodeId, PlugAddress::ePD_Output ) ) << 8; 932 id |= getConfigurationIdSyncMode( ieee1394Service, nodeId ) << 16; 929 933 930 934 return id; … … 1526 1530 Glib::ustring description; 1527 1531 1528 result = deser.read( strstrm.str() + "m_source", sourceId ); 1529 result &= deser.read( strstrm.str() + "m_destination", destinationId ); 1530 result &= deser.read( strstrm.str() + "m_description", description ); 1532 if ( deser.isExisting( strstrm.str() + "m_source" ) ) { 1533 result = deser.read( strstrm.str() + "m_source", sourceId ); 1534 result &= deser.read( strstrm.str() + "m_destination", destinationId ); 1535 result &= deser.read( strstrm.str() + "m_description", description ); 1536 } else { 1537 result = false; 1538 } 1531 1539 1532 1540 if ( result ) { … … 1600 1608 Ieee1394Service& ieee1394Service ) 1601 1609 { 1602 1603 1610 ConfigRom *configRom = 1604 1611 ConfigRom::deserialize( basePath + "m_pConfigRom/", deser, ieee1394Service ); trunk/libffado/src/bebob/bebob_avdevice.h
r488 r516 69 69 70 70 static bool probe( ConfigRom& configRom ); 71 static int getConfigurationId( Ieee1394Service& ieee1394Service, int nodeId ); 71 72 virtual bool discover(); 72 73 73 74 virtual bool setSamplingFrequency( ESamplingFrequency samplingFrequency ); 74 75 virtual int getSamplingFrequency( ); 75 virtual int getConfigurationId( );76 76 77 77 virtual int getStreamCount(); … … 174 174 AvDevice& avDevice, 175 175 SyncInfoVector& vec ); 176 int getConfigurationIdSampleRate(); 177 int getConfigurationIdNumberOfChannel( PlugAddress::EPlugDirection ePlugDirection ); 178 int getConfigurationIdSyncMode(); 176 static int getConfigurationIdSampleRate( Ieee1394Service& ieee1394service, int nodeId ); 177 static int getConfigurationIdNumberOfChannel( Ieee1394Service& ieee1394service, 178 int nodeId, 179 PlugAddress::EPlugDirection ePlugDirection ); 180 static int getConfigurationIdSyncMode( Ieee1394Service& ieee1394service, 181 int nodeId ); 179 182 180 183 protected: trunk/libffado/src/bebob/bebob_avdevice_subunit.cpp
r451 r516 211 211 bool result; 212 212 AVCCommand::ESubunitType sbType; 213 214 if ( !deser.isExisting( basePath + "m_sbType" ) ) { 215 return 0; 216 } 217 213 218 result = deser.read( basePath + "m_sbType", sbType ); 214 219 … … 271 276 { 272 277 debugOutput(DEBUG_LEVEL_NORMAL, "Discovering Audio Subunit...\n"); 273 278 274 279 if ( !AvDeviceSubunit::discover() ) { 275 280 return false; … … 347 352 #ifdef DEBUG 348 353 if (getDebugLevel() >= DEBUG_LEVEL_NORMAL) { 349 354 350 355 for ( FunctionBlockVector::iterator it = m_functions.begin(); 351 356 it != m_functions.end(); trunk/libffado/src/bebob/bebob_avplug.cpp
r447 r516 1713 1713 AvPlugManager& plugManager ) 1714 1714 { 1715 if ( !deser.isExisting( basePath + "m_subunitType" ) ) { 1716 return 0; 1717 } 1718 1715 1719 AvPlug* pPlug = new AvPlug; 1716 1720 if ( !pPlug ) { … … 1981 1985 strstrm << plug->getFunctionBlockType(); 1982 1986 } 1983 1987 1984 1988 if ( plug->getPlugDirection() == AvPlug::eAPD_Input ) { 1985 1989 printf( "\t\"(%d) %s\" -> \"(%s, ID %d)\"\n", … … 2213 2217 AvDevice& avDevice ) 2214 2218 { 2219 if ( !deser.isExisting( basePath + "m_srcPlug" ) ) { 2220 return 0; 2221 } 2222 2215 2223 AvPlugConnection* pConnection = new AvPlugConnection; 2216 2224 if ( !pConnection ) { trunk/libffado/src/bebob/bebob_functionblock.cpp
r451 r516 188 188 strstrm << basePath << i; 189 189 190 result &= deser.read( strstrm.str(), plugId ); 191 BeBoB::AvPlug* pPlug = avDevice.getPlugManager().getPlug( plugId ); 192 193 if ( pPlug ) { 194 vec.push_back( pPlug ); 195 i++; 190 if ( deser.isExisting( strstrm.str() ) ) { 191 result &= deser.read( strstrm.str(), plugId ); 192 BeBoB::AvPlug* pPlug = avDevice.getPlugManager().getPlug( plugId ); 193 194 if ( result && pPlug ) { 195 vec.push_back( pPlug ); 196 i++; 197 } else { 198 bFinished = true; 199 } 196 200 } else { 197 201 bFinished = true; trunk/libffado/src/bounce/bounce_avdevice.h
r479 r516 75 75 76 76 static bool probe( ConfigRom& configRom ); 77 static int getConfigurationId( ); 77 78 virtual bool discover(); 78 79 79 80 virtual bool setSamplingFrequency( ESamplingFrequency samplingFrequency ); 80 81 virtual int getSamplingFrequency( ); 81 virtual int getConfigurationId( );82 82 83 83 virtual bool prepare(); trunk/libffado/src/devicemanager.cpp
r490 r516 216 216 // such this case and we can safely skip it. But it might 217 217 // be there is a real software problem on our side. 218 // This should be handled more carefuly.218 // This should be handlede more carefuly. 219 219 debugOutput( DEBUG_LEVEL_NORMAL, 220 220 "Could not read config rom from device (node id %d). " … … 224 224 } 225 225 226 IAvDevice* avDevice = getDriverForDevice( configRom, 227 nodeId ); 226 bool isFromCache = false; 227 IAvDevice* avDevice = loadFromCache( *configRom ); 228 if ( avDevice ) { 229 debugOutput( DEBUG_LEVEL_VERBOSE, "could load from cache\n" ); 230 isFromCache = true; 231 } else { 232 avDevice = getDriverForDevice( configRom, nodeId ); 233 } 234 228 235 if ( avDevice ) { 229 236 debugOutput( DEBUG_LEVEL_NORMAL, 230 "d iscover: driver found for device %d\n",237 "driver found for device %d\n", 231 238 nodeId ); 232 239 233 240 avDevice->setVerboseLevel( m_verboseLevel ); 234 241 235 if ( !avDevice->discover() ) { 236 debugError( "discover: could not discover device\n" ); 237 delete avDevice; 238 continue; 242 if ( !isFromCache ) { 243 if ( !avDevice->discover() ) { 244 debugError( "could not discover device\n" ); 245 delete avDevice; 246 continue; 247 } 239 248 } 240 249 … … 256 265 if ( m_verboseLevel >= DEBUG_LEVEL_VERBOSE ) { 257 266 avDevice->showDevice(); 267 } 268 269 if ( !isFromCache ) { 270 if ( !saveCache( avDevice ) ) { 271 debugWarning( "Could not create cached version of AVC model\n" ); 272 } 258 273 } 259 274 … … 291 306 if ( avDevice ) { 292 307 debugOutput( DEBUG_LEVEL_NORMAL, 293 "d iscover: driver found for device %d\n",308 "driver found for device %d\n", 294 309 nodeId ); 295 310 … … 297 312 298 313 if ( !avDevice->discover() ) { 299 debugError( " discover:could not discover device\n" );314 debugError( "could not discover device\n" ); 300 315 delete avDevice; 301 316 return false; … … 542 557 543 558 char* configId; 544 asprintf(&configId, "%08x", pBeBoBDevice->getConfigurationId() ); 559 asprintf(&configId, "%08x", BeBoB::AvDevice::getConfigurationId( *m_1394Service, 560 pAvDevice->getNodeId() ) ); 545 561 if ( !configId ) { 546 562 debugError( "Could not create id string\n" ); … … 552 568 553 569 Util::XMLSerialize ser( sFileName ); 554 return pBeBoBDevice->serialize( "/", ser ); 555 } 556 557 bool 558 DeviceManager::loadCache( Glib::ustring cachePath ) 559 { 560 for ( fb_nodeid_t nodeId = 0; 561 nodeId < m_1394Service->getNodeCount(); 562 ++nodeId ) 563 { 564 ConfigRom* pConfigRom = new ConfigRom( *m_1394Service, nodeId ); 565 if ( !pConfigRom->initialize() ) { 566 // \todo If a PHY on the bus is in power safe mode then 567 // the config rom is missing. So this might be just 568 // such this case and we can safely skip it. But it might 569 // be there is a real software problem on our side. 570 // This should be handled more carefuly. 571 debugOutput( DEBUG_LEVEL_NORMAL, 572 "Could not read config rom from device (node id %d). " 573 "Skip device discovering for this node\n", 574 nodeId ); 575 delete pConfigRom; 576 continue; 577 } 578 579 Glib::ustring sFileName = getCachePath() + pConfigRom->getGuidString() + ".xml"; 580 581 if ( access( sFileName.c_str(), R_OK ) == 0 ) { 582 debugOutput( DEBUG_LEVEL_NORMAL, "load from %s\n", sFileName.c_str() ); 583 Util::XMLDeserialize deser( sFileName ); 584 585 BeBoB::AvDevice* pBeBoBDevice = BeBoB::AvDevice::deserialize( "/", deser, *m_1394Service ); 586 if ( pBeBoBDevice ) { 587 debugOutput( DEBUG_LEVEL_NORMAL, "loadCache: could create valid bebob driver from %s\n", sFileName.c_str() ); 588 pBeBoBDevice->getConfigRom().setNodeId( pConfigRom->getNodeId() ); 589 m_avDevices.push_back( pBeBoBDevice ); 590 } 591 } 592 593 // throw away this config rom instance, the deserialize code has created it's own from 594 // the cache. 595 delete pConfigRom; 596 } 597 598 return true; 599 } 570 return pBeBoBDevice->serialize( "", ser ); 571 } 572 573 IAvDevice* 574 DeviceManager::loadFromCache( const ConfigRom& configRom ) 575 { 576 Glib::ustring sDevicePath = getCachePath() + configRom.getGuidString(); 577 char* configId; 578 asprintf(&configId, "%08x", 579 BeBoB::AvDevice::getConfigurationId(*m_1394Service, 580 configRom.getNodeId()) ); 581 if ( !configId ) { 582 debugError( "could not create id string\n" ); 583 return false; 584 } 585 Glib::ustring sFileName = sDevicePath + "/" + configId + ".xml"; 586 free( configId ); 587 debugOutput( DEBUG_LEVEL_NORMAL, "filename %s\n", sFileName.c_str() ); 588 589 Util::XMLDeserialize deser( sFileName, m_verboseLevel ); 590 591 BeBoB::AvDevice* pBeBoBDevice = BeBoB::AvDevice::deserialize( "", 592 deser, 593 *m_1394Service ); 594 if ( pBeBoBDevice ) { 595 debugOutput( DEBUG_LEVEL_NORMAL, "could create valid bebob driver from %s\n", sFileName.c_str() ); 596 pBeBoBDevice->getConfigRom().setNodeId( configRom.getNodeId() ); 597 } 598 599 return pBeBoBDevice; 600 } 601 trunk/libffado/src/devicemanager.h
r478 r516 70 70 71 71 bool buildCache(); 72 bool loadCache( Glib::ustring cachePath = "");72 IAvDevice* loadFromCache( const ConfigRom& configRom ); 73 73 74 74 Streaming::StreamProcessor *getSyncSource(); trunk/libffado/src/dice/dice_avdevice.h
r479 r516 62 62 63 63 static bool probe( ConfigRom& configRom ); 64 static int getConfigurationId( ); 64 65 virtual bool discover(); 65 66 … … 68 69 virtual bool setSamplingFrequency( ESamplingFrequency samplingFrequency ); 69 70 virtual int getSamplingFrequency( ); 70 virtual int getConfigurationId( );71 71 72 72 virtual int getStreamCount(); trunk/libffado/src/iavdevice.h
r479 r516 75 75 */ 76 76 virtual int getSamplingFrequency( ) = 0; 77 78 /**79 * @brief get a unique configuration identifier for current device setup80 *81 * Since each different setup (such as different sample frequency)82 * can change the corresponding AV/C model, it is necessary to83 * distinguish between those models in case where caching of84 * AV/C models is enabled.85 *86 * @return a unique configuration identifier as integer87 */88 virtual int getConfigurationId( ) = 0;89 77 90 78 /** trunk/libffado/src/libutil/OptionContainer.cpp
r445 r516 445 445 strstrm << basePath << "/" << "Option" << i; 446 446 447 Option pOption = Option::deserialize( strstrm.str() + "/", 448 deser ); 449 if ( pOption.getType() != Option::EInvalid ) { 450 result &= container.addOption(pOption); 451 i++; 447 if ( deser.isExisting( strstrm.str() ) ) { 448 Option pOption = Option::deserialize( strstrm.str() + "/", 449 deser ); 450 if ( pOption.getType() != Option::EInvalid ) { 451 result &= container.addOption(pOption); 452 i++; 453 } else { 454 bFinished = true; 455 } 452 456 } else { 453 457 bFinished = true; trunk/libffado/src/libutil/serialize.cpp
r445 r516 47 47 ///////////////////////////////// 48 48 49 IMPL_DEBUG_MODULE( Util::XMLSerialize, XMLSerialize, DEBUG_LEVEL_NORMAL ); 50 IMPL_DEBUG_MODULE( Util::XMLDeserialize, XMLDeserialize, DEBUG_LEVEL_NORMAL ); 51 49 52 Util::XMLSerialize::XMLSerialize( Glib::ustring fileName ) 50 53 : IOSerialize() 51 54 , m_filepath( fileName ) 55 , m_verboseLevel( 0 ) 52 56 { 53 57 try { … … 58 62 } 59 63 64 65 Util::XMLSerialize::XMLSerialize( Glib::ustring fileName, int verboseLevel ) 66 : IOSerialize() 67 , m_filepath( fileName ) 68 , m_verboseLevel( verboseLevel ) 69 { 70 try { 71 m_doc.create_root_node( "ffado_cache" ); 72 } catch ( const exception& ex ) { 73 cout << "Exception caught: " << ex.what(); 74 } 75 } 60 76 61 77 Util::XMLSerialize::~XMLSerialize() … … 74 90 75 91 { 92 debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "write %s = %d\n", 93 strMemberName.c_str(), value ); 94 76 95 vector<string> tokens; 77 96 tokenize( strMemberName, tokens, "/" ); 78 97 79 98 if ( tokens.size() == 0 ) { 99 debugWarning( "token size is 0\n" ); 80 100 return false; 81 101 } … … 98 118 Glib::ustring str) 99 119 { 120 debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "write %s = %s\n", 121 strMemberName.c_str(), str.c_str() ); 122 100 123 vector<string> tokens; 101 124 tokenize( strMemberName, tokens, "/" ); 102 125 103 126 if ( tokens.size() == 0 ) { 127 debugWarning( "token size is 0\n" ); 104 128 return false; 105 129 } … … 160 184 : IODeserialize() 161 185 , m_filepath( fileName ) 186 , m_verboseLevel( 0 ) 162 187 { 163 188 try { … … 171 196 } 172 197 198 Util::XMLDeserialize::XMLDeserialize( Glib::ustring fileName, int verboseLevel ) 199 : IODeserialize() 200 , m_filepath( fileName ) 201 , m_verboseLevel( verboseLevel ) 202 { 203 try { 204 m_parser.set_substitute_entities(); //We just want the text to 205 //be resolved/unescaped 206 //automatically. 207 m_parser.parse_file( m_filepath ); 208 } catch ( const exception& ex ) { 209 cout << "Exception caught: " << ex.what(); 210 } 211 } 173 212 174 213 Util::XMLDeserialize::~XMLDeserialize() … … 181 220 182 221 { 222 debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "lookup %s\n", strMemberName.c_str() ); 223 183 224 xmlpp::Document *pDoc=m_parser.get_document(); 184 225 if(!pDoc) { 226 debugWarning( "no document found\n" ); 185 227 return false; 186 228 } 187 229 xmlpp::Node* pNode = pDoc->get_root_node(); 230 231 debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "pNode = %s\n", pNode->get_name().c_str() ); 188 232 189 233 xmlpp::NodeSet nodeSet = pNode->find( strMemberName ); … … 198 242 value = strtoll( pElement->get_child_text()->get_content().c_str(), 199 243 &tail, 0 ); 244 debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "found %s = %d\n", 245 strMemberName.c_str(), value ); 200 246 return true; 201 247 } 202 return false; 203 } 204 248 debugWarning( "no such a node %s\n", strMemberName.c_str() ); 249 return false; 250 } 251 252 debugWarning( "no such a node %s\n", strMemberName.c_str() ); 205 253 return false; 206 254 } … … 210 258 Glib::ustring& str ) 211 259 { 260 debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "lookup %s\n", strMemberName.c_str() ); 261 212 262 xmlpp::Document *pDoc=m_parser.get_document(); 213 263 if(!pDoc) { 264 debugWarning( "no document found\n" ); 214 265 return false; 215 266 } … … 222 273 { 223 274 const xmlpp::Element* pElement = dynamic_cast< const xmlpp::Element* >( *it ); 224 if ( pElement && pElement->has_child_text() ) { 225 str = pElement->get_child_text()->get_content(); 275 if ( pElement ) { 276 if ( pElement->has_child_text() ) { 277 str = pElement->get_child_text()->get_content(); 278 } else { 279 str = ""; 280 } 281 debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "found %s = %s\n", 282 strMemberName.c_str(), str.c_str() ); 226 283 return true; 227 284 } 228 return false; 229 } 230 285 debugWarning( "no such a node %s\n", strMemberName.c_str() ); 286 return false; 287 } 288 289 debugWarning( "no such a node %s\n", strMemberName.c_str() ); 231 290 return false; 232 291 } trunk/libffado/src/libutil/serialize.h
r445 r516 24 24 #ifndef bebob_serialize_h 25 25 #define bebob_serialize_h 26 27 #include "debugmodule/debugmodule.h" 26 28 27 29 #include <libxml++/libxml++.h> … … 62 64 public: 63 65 XMLSerialize( Glib::ustring fileName ); 66 XMLSerialize( Glib::ustring fileName, int verboseLevel ); 64 67 virtual ~XMLSerialize(); 65 68 … … 71 74 Glib::ustring m_filepath; 72 75 xmlpp::Document m_doc; 76 int m_verboseLevel; 77 78 DECLARE_DEBUG_MODULE; 73 79 74 80 xmlpp::Node* getNodePath( xmlpp::Node* pRootNode, … … 79 85 public: 80 86 XMLDeserialize( Glib::ustring fileName ); 87 XMLDeserialize( Glib::ustring fileName, int verboseLevel ); 81 88 virtual ~XMLDeserialize(); 82 89 … … 91 98 Glib::ustring m_filepath; 92 99 xmlpp::DomParser m_parser; 100 int m_verboseLevel; 101 102 DECLARE_DEBUG_MODULE; 93 103 }; 94 104 trunk/libffado/src/maudio/maudio_avdevice.h
r479 r516 59 59 60 60 static bool probe( ConfigRom& configRom ); 61 static int getConfigurationId( ); 61 62 virtual bool discover(); 62 63 … … 65 66 virtual bool setSamplingFrequency( ESamplingFrequency samplingFrequency ); 66 67 virtual int getSamplingFrequency( ); 67 virtual int getConfigurationId( );68 68 69 69 virtual bool prepare(); trunk/libffado/src/metrichalo/mh_avdevice.h
r479 r516 53 53 54 54 static bool probe( ConfigRom& configRom ); 55 static int getConfigurationId(); 55 56 virtual bool discover(); 56 57 … … 59 60 virtual bool setSamplingFrequency( ESamplingFrequency samplingFrequency ); 60 61 virtual int getSamplingFrequency( ); 61 virtual int getConfigurationId();62 62 63 63 virtual int getStreamCount(); trunk/libffado/src/motu/motu_avdevice.h
r479 r516 100 100 101 101 static bool probe( ConfigRom& configRom ); 102 static int getConfigurationId( ); 102 103 virtual bool discover(); 103 104 … … 106 107 virtual bool setSamplingFrequency( ESamplingFrequency samplingFrequency ); 107 108 virtual int getSamplingFrequency( ); 108 virtual int getConfigurationId( );109 109 110 110 virtual int getStreamCount(); trunk/libffado/src/rme/rme_avdevice.h
r479 r516 55 55 56 56 static bool probe( ConfigRom& configRom ); 57 static int getConfigurationId( ); 57 58 virtual bool discover(); 58 59 … … 61 62 virtual bool setSamplingFrequency( ESamplingFrequency samplingFrequency ); 62 63 virtual int getSamplingFrequency( ); 63 virtual int getConfigurationId( );64 64 65 65 virtual int getStreamCount(); trunk/libffado/src/ser.cpp
r478 r516 49 49 50 50 devMgr.setVerboseLevel( 4 ); 51 return devMgr.loadCache( pFileName ); 51 //return devMgr.loadCache( pFileName ); 52 return false; 52 53 } 53 54