Index: /trunk/libffado/src/devicemanager.h =================================================================== --- /trunk/libffado/src/devicemanager.h (revision 777) +++ /trunk/libffado/src/devicemanager.h (revision 826) @@ -72,5 +72,5 @@ bool isSpecStringValid(std::string s); - bool discover(); + bool discover(bool userCache=true); bool initStreaming(); bool prepareStreaming(); Index: /trunk/libffado/src/devicemanager.cpp =================================================================== --- /trunk/libffado/src/devicemanager.cpp (revision 807) +++ /trunk/libffado/src/devicemanager.cpp (revision 826) @@ -212,5 +212,5 @@ bool -DeviceManager::discover( ) +DeviceManager::discover( bool useCache ) { bool slaveMode=false; @@ -298,5 +298,5 @@ avDevice->setVerboseLevel( getDebugLevel() ); bool isFromCache = false; - if ( avDevice->loadFromCache() ) { + if ( useCache && avDevice->loadFromCache() ) { debugOutput( DEBUG_LEVEL_VERBOSE, "could load from cache\n" ); isFromCache = true; Index: /trunk/libffado/tests/test-ffado.cpp =================================================================== --- /trunk/libffado/tests/test-ffado.cpp (revision 795) +++ /trunk/libffado/tests/test-ffado.cpp (revision 826) @@ -71,4 +71,5 @@ long int verbose; long int port; + long int use_cache; long int node_id; long int node_id_set; @@ -82,4 +83,5 @@ {"verbose", 'v', "level", 0, "Produce verbose output" }, + {"cache", 'c', "enable", 0, "Use AVC model cache (default=enabled)" }, @@ -113,4 +115,13 @@ } break; + case 'c': + if (arg) { + arguments->use_cache = strtol( arg, &tail, 0 ); + if ( errno ) { + fprintf( stderr, "Could not parse 'cache' argument\n" ); + return ARGP_ERR_UNKNOWN; + } + } + break; case 'p': if (arg) { @@ -179,4 +190,5 @@ arguments.silent = 0; arguments.verbose = 0; + arguments.use_cache = 1; arguments.port = 0; arguments.node_id = 0; @@ -214,5 +226,5 @@ m_deviceManager->setVerboseLevel(arguments.verbose); } - if ( !m_deviceManager->discover() ) { + if ( !m_deviceManager->discover(arguments.use_cache) ) { fprintf( stderr, "Could not discover devices\n" ); delete m_deviceManager; @@ -245,5 +257,5 @@ m_deviceManager->setVerboseLevel(arguments.verbose); } - if ( !m_deviceManager->discover() ) { + if ( !m_deviceManager->discover(arguments.use_cache) ) { fprintf( stderr, "Could not discover devices\n" ); delete m_deviceManager; @@ -302,5 +314,5 @@ m_deviceManager->setVerboseLevel(arguments.verbose); } - if ( !m_deviceManager->discover() ) { + if ( !m_deviceManager->discover(arguments.use_cache) ) { fprintf( stderr, "Could not discover devices\n" ); delete m_deviceManager;