Changeset 525

Show
Ignore:
Timestamp:
08/19/07 16:02:18 (14 years ago)
Author:
jwoithe
Message:

The new device cache code breaks things for non-AVC interfaces such as the MOTU. Make certain that the cache code (which uses AVC commands) is only used by BeBoB devices. The solution in this patch may need revisiting but at least it restores functionality for now.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/devicemanager.cpp

    r516 r525  
    538538        return true; 
    539539    } 
     540    // FIXME: the above test doesn't have the desired effect - MOTU devices 
     541    // are still allowed to proceed.  Therefore for the moment include a 
     542    // further check. 
     543    // If the device isn't a BeBoB device we can't assume it will accept AVC 
     544    // commands (for example, trying to send AVC commands to a MOTU via 
     545    // libiec61883 gives an endless stream of "send oops" messages).  
     546    // Therefore only proceed if the device is a known BeBoB device. 
     547    if (!BeBoB::AvDevice::probe(pAvDevice->getConfigRom())) { 
     548        return true; 
     549    } 
    540550 
    541551    // the path looks like this: 
     
    576586    Glib::ustring sDevicePath = getCachePath() + configRom.getGuidString(); 
    577587    char* configId; 
     588    // If the device isn't a BeBoB device we can't assume it will accept AVC 
     589    // commands (for example, trying to send AVC commands to a MOTU via 
     590    // libiec61883 gives an endless stream of "send oops" messages).  
     591    // Therefore only proceed if the device is a known BeBoB device. 
     592    if (!BeBoB::AvDevice::probe((ConfigRom&)configRom)) { 
     593        return false; 
     594    } 
    578595    asprintf(&configId, "%08x", 
    579596    BeBoB::AvDevice::getConfigurationId(*m_1394Service,