Changeset 370

Show
Ignore:
Timestamp:
01/06/07 02:51:12 (16 years ago)
Author:
wagi
Message:

Don't cache node id everywhere, config rom holds an updated version of the node id

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libfreebob/src/bebob/bebob_avdevice.cpp

    r368 r370  
    4646    : m_pConfigRom( configRom ) 
    4747    , m_1394Service( &ieee1394service ) 
    48     , m_nodeId( nodeId ) 
    4948    , m_verboseLevel( verboseLevel ) 
    5049    , m_plugManager( verboseLevel ) 
     
    6463    : m_pConfigRom( 0 ) 
    6564    , m_1394Service( 0 ) 
    66     , m_nodeId( -1 ) 
    6765    , m_verboseLevel( 0 ) 
    6866    , m_plugManager( 0 ) 
     
    131129    {0x000f1b, 0x00010064},  // ESI, Quatafire 610 
    132130 
     131    {0x00130e, 0x00000003},  // Focusrite, Pro26IO (Saffire 26) 
     132 
    133133    {0x0040ab, 0x00010048},  // EDIROL, FA-101 
    134134    {0x0040ab, 0x00010049},  // EDIROL, FA-66 
    135  
    136     {0x00130e, 0x00000003},  // Focusrite, Pro26IO (Saffire 26) 
    137135}; 
    138136 
     
    196194 
    197195    PlugInfoCmd plugInfoCmd( m_1394Service ); 
    198     plugInfoCmd.setNodeId( m_nodeId ); 
     196    plugInfoCmd.setNodeId( m_pConfigRom->getNodeId() ); 
    199197    plugInfoCmd.setCommandType( AVCCommand::eCT_Status ); 
    200198    plugInfoCmd.setVerbose( m_verboseLevel ); 
     
    254252    { 
    255253        AvPlug* plug  = new AvPlug( *m_1394Service, 
    256                                     m_nodeId
     254                                    *m_pConfigRom
    257255                                    m_plugManager, 
    258256                                    AVCCommand::eST_Unit, 
     
    287285    { 
    288286        AvPlug* plug  = new AvPlug( *m_1394Service, 
    289                                     m_nodeId
     287                                    *m_pConfigRom
    290288                                    m_plugManager, 
    291289                                    AVCCommand::eST_Unit, 
     
    530528 
    531529    subUnitInfoCmd.m_page = 0; 
    532     subUnitInfoCmd.setNodeId( m_nodeId ); 
     530    subUnitInfoCmd.setNodeId( m_pConfigRom->getNodeId() ); 
    533531    subUnitInfoCmd.setVerbose( m_verboseLevel ); 
    534532    if ( !subUnitInfoCmd.fire() ) { 
     
    784782            unitPlugAddress ) ); 
    785783 
    786     extStreamFormatCmd.setNodeId( m_nodeId ); 
     784    extStreamFormatCmd.setNodeId( m_pConfigRom->getNodeId() ); 
    787785    extStreamFormatCmd.setCommandType( AVCCommand::eCT_Status ); 
    788786 
     
    11471145            iso_channel = iec61883_cmp_connect( 
    11481146                m_1394Service->getHandle(), 
    1149                 m_nodeId | 0xffc0, 
     1147                m_pConfigRom->getNodeId() | 0xffc0, 
    11501148                &plug, 
    11511149                raw1394_get_local_id (m_1394Service->getHandle()), 
     
    11621160                raw1394_get_local_id (m_1394Service->getHandle()), 
    11631161                &hostplug, 
    1164                 m_nodeId | 0xffc0, 
     1162                m_pConfigRom->getNodeId() | 0xffc0, 
    11651163                &plug, 
    11661164                &m_transmitProcessorBandwidth); 
     
    12031201            iec61883_cmp_disconnect( 
    12041202                m_1394Service->getHandle(), 
    1205                 m_nodeId | 0xffc0, 
     1203                m_pConfigRom->getNodeId() | 0xffc0, 
    12061204                plug, 
    12071205                raw1394_get_local_id (m_1394Service->getHandle()), 
     
    12171215                raw1394_get_local_id (m_1394Service->getHandle()), 
    12181216                hostplug, 
    1219                 m_nodeId | 0xffc0, 
     1217                m_pConfigRom->getNodeId() | 0xffc0, 
    12201218                plug, 
    12211219                m_transmitProcessor->getChannel(), 
  • trunk/libfreebob/src/bebob/bebob_avdevice.h

    r368 r370  
    148148    std::auto_ptr<ConfigRom>( m_pConfigRom ); 
    149149    Ieee1394Service* m_1394Service; 
    150     int              m_nodeId; 
    151150    int              m_verboseLevel; 
    152151 
  • trunk/libfreebob/src/bebob/bebob_avdevice_subunit.cpp

    r365 r370  
    135135            static_cast<AVCCommand::ESubunitType>( getSubunitType() ); 
    136136        AvPlug* plug = new AvPlug( *m_avDevice->get1394Service(), 
    137                                    m_avDevice->getConfigRom().getNodeId()
     137                                   m_avDevice->getConfigRom()
    138138                                   m_avDevice->getPlugManager(), 
    139139                                   subunitType, 
  • trunk/libfreebob/src/bebob/bebob_avplug.cpp

    r365 r370  
    11/* bebob_avplug.cpp 
    2  * Copyright (C) 2005,06 by Daniel Wagner 
     2 * Copyright (C) 2005,06,07 by Daniel Wagner 
    33 * 
    44 * This file is part of FreeBoB. 
     
    2020 
    2121#include "bebob/bebob_avplug.h" 
     22#include "configrom.h" 
    2223 
    2324#include "libfreebobavc/ieee1394service.h" 
     
    3233 
    3334AvPlug::AvPlug( Ieee1394Service& ieee1394Service, 
    34                 int nodeId
     35                ConfigRom& configRom
    3536                AvPlugManager& plugManager, 
    3637                AVCCommand::ESubunitType subunitType, 
     
    4344                int verboseLevel ) 
    4445    : m_1394Service( &ieee1394Service ) 
    45     , m_nodeId( nodeId
     46    , m_pConfigRom( &configRom
    4647    , m_subunitType( subunitType ) 
    4748    , m_subunitId( subunitId ) 
     
    6364                 "functionBlockId = %d, addressType = %d, " 
    6465                 "direction = %d, id = %d\n", 
    65                  m_nodeId
     66                 m_pConfigRom->getNodeId()
    6667                 m_subunitType, 
    6768                 m_subunitId, 
     
    7576AvPlug::AvPlug( const AvPlug& rhs ) 
    7677    : m_1394Service( rhs.m_1394Service ) 
    77     , m_nodeId( rhs.m_nodeId
     78    , m_pConfigRom( rhs.m_pConfigRom
    7879    , m_subunitType( rhs.m_subunitType ) 
    7980    , m_subunitId( rhs.m_subunitId ) 
     
    106107    if ( !discoverPlugType() ) { 
    107108        debugError( "discover: Could not discover plug type (%d,%d,%d,%d,%d)\n", 
    108                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     109                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    109110        return false; 
    110111    } 
     
    112113    if ( !discoverName() ) { 
    113114        debugError( "Could not discover name (%d,%d,%d,%d,%d)\n", 
    114                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     115                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    115116        return false; 
    116117    } 
     
    119120        debugError( "Could not discover number of channels " 
    120121                    "(%d,%d,%d,%d,%d)\n", 
    121                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     122                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    122123        return false; 
    123124    } 
     
    126127        debugError( "Could not discover channel positions " 
    127128                    "(%d,%d,%d,%d,%d)\n", 
    128                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     129                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    129130        return false; 
    130131    } 
     
    133134        debugError( "Could not discover channel name " 
    134135                    "(%d,%d,%d,%d,%d)\n", 
    135                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     136                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    136137        return false; 
    137138    } 
     
    140141        debugError( "Could not discover channel name " 
    141142                    "(%d,%d,%d,%d,%d)\n", 
    142                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     143                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    143144        return false; 
    144145    } 
     
    147148        debugError( "Could not discover stream format " 
    148149                    "(%d,%d,%d,%d,%d)\n", 
    149                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     150                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    150151        return false; 
    151152    } 
     
    154155        debugError( "Could not discover supported stream formats " 
    155156                    "(%d,%d,%d,%d,%d)\n", 
    156                     m_nodeId, m_subunitType, m_subunitId, m_direction, m_id ); 
     157                    m_pConfigRom->getNodeId(), m_subunitType, m_subunitId, m_direction, m_id ); 
    157158        return false; 
    158159    } 
     
    987988    } 
    988989 
    989     extPlugInfoCmd.setNodeId( m_nodeId ); 
     990    extPlugInfoCmd.setNodeId( m_pConfigRom->getNodeId() ); 
    990991    extPlugInfoCmd.setCommandType( AVCCommand::eCT_Status ); 
    991992    extPlugInfoCmd.setSubunitId( m_subunitId ); 
     
    10621063    } 
    10631064 
    1064     extStreamFormatInfoCmd.setNodeId( m_nodeId ); 
     1065    extStreamFormatInfoCmd.setNodeId( m_pConfigRom->getNodeId() ); 
    10651066    extStreamFormatInfoCmd.setCommandType( AVCCommand::eCT_Status ); 
    10661067    extStreamFormatInfoCmd.setSubunitId( m_subunitId ); 
     
    11011102    } 
    11021103 
    1103     signalSourceCmd.setNodeId( m_nodeId ); 
     1104    signalSourceCmd.setNodeId( m_pConfigRom->getNodeId() ); 
    11041105    signalSourceCmd.setSubunitType( AVCCommand::eST_Unit  ); 
    11051106    signalSourceCmd.setSubunitId( 0xff ); 
  • trunk/libfreebob/src/bebob/bebob_avplug.h

    r336 r370  
    11/* bebob_avplug.h 
    2  * Copyright (C) 2005,06 by Daniel Wagner 
     2 * Copyright (C) 2005,06,07 by Daniel Wagner 
    33 * 
    44 * This file is part of FreeBoB. 
     
    3333 
    3434class Ieee1394Service; 
     35class ConfigRom; 
    3536 
    3637namespace BeBoB { 
     
    7172    // \todo This constructors sucks. too many parameters. fix it. 
    7273    AvPlug( Ieee1394Service& ieee1394Service, 
    73             int m_nodeId
     74            ConfigRom& configRom
    7475            AvPlugManager& plugManager, 
    7576            AVCCommand::ESubunitType subunitType, 
     
    132133 
    133134    void showPlug() const; 
    134      
    135      
     135 
     136 
    136137    struct ChannelInfo { 
    137138        stream_position_t          m_streamPosition; 
     
    197198private: 
    198199    Ieee1394Service*             m_1394Service; 
    199     int                          m_nodeId
     200    ConfigRom*                   m_pConfigRom
    200201    AVCCommand::ESubunitType     m_subunitType; 
    201202    subunit_id_t                 m_subunitId; 
  • trunk/libfreebob/src/bebob/bebob_avplug_xml.cpp

    r336 r370  
    11/* bebob_avplug_xml.cpp 
    2  * Copyright (C) 2006 by Daniel Wagner 
     2 * Copyright (C) 2006,07 by Daniel Wagner 
    33 * 
    44 * This file is part of FreeBoB. 
     
    2222 
    2323#include "bebob/bebob_avplug.h" 
     24#include "configrom.h" 
    2425 
    2526#include "libfreebobavc/ieee1394service.h" 
     
    8687    free( result ); 
    8788 
    88     asprintf( &result, "%d",  m_nodeId); 
     89    asprintf( &result, "%d",  m_pConfigRom->getNodeId() ); 
    8990    if ( !xmlNewChild( connection,  0, 
    9091                       BAD_CAST "Node",  BAD_CAST result ) ) { 
  • trunk/libfreebob/src/bebob/bebob_functionblock.cpp

    r341 r370  
    11/* bebob_functionblock.cpp 
    2  * Copyright (C) 2006 by Daniel Wagner 
     2 * Copyright (C) 2006,07 by Daniel Wagner 
    33 * 
    44 * This file is part of FreeBoB. 
     
    101101        AvPlug* plug = new AvPlug( 
    102102            *( m_subunit->getAvDevice().get1394Service() ), 
    103             m_subunit->getAvDevice().getConfigRom().getNodeId()
     103            m_subunit->getAvDevice().getConfigRom()
    104104            m_subunit->getAvDevice().getPlugManager(), 
    105105            m_subunit->getSubunitType(),