From: <tr...@ff...> - 2010-01-10 20:53:02
|
Author: arnonym Date: 2010-01-10 12:59:02 -0800 (Sun, 10 Jan 2010) New Revision: 1789 Modified: trunk/libffado/src/devicemanager.cpp trunk/libffado/src/ffadodevice.cpp trunk/libffado/src/ffadodevice.h Log: Use the GUID as the id and get rid of setId(). This is part of making the port names unique and persistent per device. Modified: trunk/libffado/src/devicemanager.cpp =================================================================== --- trunk/libffado/src/devicemanager.cpp 2010-01-06 22:26:22 UTC (rev 1788) +++ trunk/libffado/src/devicemanager.cpp 2010-01-10 20:59:02 UTC (rev 1789) @@ -704,16 +704,6 @@ m_avDevices = sorted; } - // set device id's - i = 0; - for ( FFADODeviceVectorIterator it = m_avDevices.begin(); - it != m_avDevices.end(); - ++it ) - { - if ( !(*it)->setId( i++ ) ) { - debugError( "setting Id failed\n" ); - } - } showDeviceInfo(); } else { // slave mode @@ -767,9 +757,6 @@ return false; } - if ( !avDevice->setId( m_avDevices.size() ) ) { - debugError( "setting Id failed\n" ); - } if ( getDebugLevel() >= DEBUG_LEVEL_VERBOSE ) { avDevice->showDevice(); } Modified: trunk/libffado/src/ffadodevice.cpp =================================================================== --- trunk/libffado/src/ffadodevice.cpp 2010-01-06 22:26:22 UTC (rev 1788) +++ trunk/libffado/src/ffadodevice.cpp 2010-01-10 20:59:02 UTC (rev 1789) @@ -44,7 +44,7 @@ , m_pConfigRom( configRom ) , m_pDeviceManager( d ) { - addOption(Util::OptionContainer::Option("id",std::string("dev?"))); + addOption(Util::OptionContainer::Option("id",m_pConfigRom->getGuidString())); std::ostringstream nodestr; nodestr << "node" << getConfigRom().getNodeId(); @@ -166,20 +166,6 @@ } bool -FFADODevice::setId( unsigned int id) -{ - Util::MutexLockHelper lock(m_DeviceMutex); - bool retval; - // FIXME: decent ID system nescessary - std::ostringstream idstr; - idstr << "dev" << id; - debugOutput( DEBUG_LEVEL_VERBOSE, "Set id to %s...\n", idstr.str().c_str()); - - retval=setOption("id",idstr.str()); - return retval; -} - -bool FFADODevice::setNickname( std::string name) { return false; Modified: trunk/libffado/src/ffadodevice.h =================================================================== --- trunk/libffado/src/ffadodevice.h 2010-01-06 22:26:22 UTC (rev 1788) +++ trunk/libffado/src/ffadodevice.h 2010-01-10 20:59:02 UTC (rev 1789) @@ -276,36 +276,6 @@ virtual enum eStreamingState getStreamingState(); /** - * @brief This is called by the device manager to give the device a unique ID. - * - * The purpose of this is to allow for unique port naming - * in case there are multiple identical devices on the bus. - * Some audio API's (e.g. jack) don't work properly when the - * port names are not unique. - * - * Say you have two devices having a port named OutputLeft. - * This can cause the streaming - * part to present two OutputLeft ports to the audio API, - * which won't work. This ID will allow you to construct - * the port names as 'dev1_OutputLeft' and 'dev2_OutputLeft' - * - * @note Currently this is a simple integer that is equal to - * the position of the device in the devicemanager's - * device list. Therefore it is dependant on the order - * in which the devices are detected. The side-effect - * of this is that it is dependant on the bus topology - * and history (e.g. busresets etc). This makes that - * these ID's are not fixed to a specific physical device. - * At some point, we will replaced this with a GUID based - * approach, which is tied to a physical device and is - * bus & time independant. - * - * @param id - * @return true if successful - */ - bool setId(unsigned int id); - - /** * @brief Outputs the device configuration to stderr/stdout [debug helper] * * This function prints out a (detailed) description of the |