Changeset 57

Show
Ignore:
Timestamp:
01/23/05 09:09:19 (18 years ago)
Author:
wagi
Message:

Use Ieee1394Service::avcExecuteTransaction instead of AvDevice::avcExecuteTransaction

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/freebob/src/avdescriptor.cpp

    r43 r57  
    7373        //fprintf(stderr, "Opening descriptor\n"); 
    7474 
    75         response =  cParent->avcExecuteTransaction(request, 2, 2); 
     75        response =  Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 2, 2); 
    7676 
    7777        if ((response[0]&0xFF000000)==AVC1394_RESPONSE_ACCEPTED) { 
     
    101101        //fprintf(stderr, "Opening descriptor\n"); 
    102102 
    103         response =  cParent->avcExecuteTransaction(request, 2, 2); 
     103        response =  Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 2, 2); 
    104104 
    105105        if ((response[0]&0xFF000000)==AVC1394_RESPONSE_ACCEPTED) { 
     
    131131        //fprintf(stderr, "Opening descriptor\n"); 
    132132 
    133         response =  cParent->avcExecuteTransaction(request, 2, 2); 
     133        response =  Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 2, 2); 
    134134 
    135135        if ((response[0]&0xFF000000)==AVC1394_RESPONSE_ACCEPTED) { // should always be accepted according to spec 
     
    160160        request[1] = 0xFFFF0000 | (0x02); 
    161161        request[2] = (((0)&0xFFFF) << 16) |0x0000FFFF; 
    162         response =  cParent->avcExecuteTransaction(request, 3, 3); 
     162        response =  Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 3, 3); 
    163163 
    164164        iLength=response[2] & 0xFFFF; 
     
    192192                request[2] = ((0) << 16) |0x0000FFFF; 
    193193 
    194                 response =  cParent->avcExecuteTransaction(request, 3, 3); 
     194                response =  Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 3, 3); 
    195195                data_length_read=(response[1]&0xFFFF); 
    196196                read_result_status=((response[1]>>24)&0xFF); 
     
    217217                request[2] = (((bytes_read)&0xFFFF) << 16) |0x0000FFFF; 
    218218 
    219                 response =  cParent->avcExecuteTransaction(request, 3, 3); 
     219                response =  Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 3, 3); 
    220220                data_length_read=(response[1]&0xFFFF); 
    221221                read_result_status=((response[1]>>24)&0xFF); 
     
    245245        request[0] = AVC1394_CTYPE_STATUS | qTarget | AVC1394_COMMAND_OPEN_DESCRIPTOR | (iType & 0xFF); 
    246246        request[1] = 0xFFFFFFFF; 
    247         response =  cParent->avcExecuteTransaction(request, 2, 2); 
     247        response =  Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 2, 2); 
    248248 
    249249        if (((response[0] & 0xFF000000)==AVC1394_RESPONSE_NOT_IMPLEMENTED) || ((response[1] & 0xFF000000)==0x04)) { 
  • trunk/freebob/src/avdevice.cpp

    r56 r57  
    160160    AvDeviceSubunit *tmpAvDeviceSubunit=NULL; 
    161161 
     162    Ieee1394Service* p1394Service = Ieee1394Service::instance(); 
     163 
    162164    // check the number of I/O plugs 
    163165    request[0] = AVC1394_CTYPE_STATUS 
     
    167169                 | 0x0000; 
    168170    request[1] = 0xFFFFFFFF; 
    169     response = avcExecuteTransaction( request, 2, 2 ); 
     171    response = p1394Service->avcExecuteTransaction( m_iNodeId, request, 2, 2 ); 
    170172    request[1] = 0x02020606; 
    171173    response = request; 
     
    187189                 | 0x01; 
    188190    request[1] = 0xFFFFFFFF; 
    189     response = avcExecuteTransaction( request, 2, 2 ); 
     191    response = p1394Service->avcExecuteTransaction( m_iNodeId, request, 2, 2 ); 
    190192    if ( response != NULL ) { 
    191193        m_iNbAsyncDestinationPlugs 
     
    221223                     | ((i<<4) & 0xF0) | 0x07; 
    222224        request[1] = 0xFFFFFFFF; 
    223         response = avcExecuteTransaction( request, 6, 2 ); 
     225        response = p1394Service->avcExecuteTransaction( m_iNodeId, request, 6, 2 ); 
    224226 
    225227        table_entries=response[1]; /// XXX buggy code! response could be 0! 
     
    315317} 
    316318 
    317 /* Function to execute an AVC transaction, i.e. send command/status 
    318  * and get response main purpose is wrapping the avc1394 function call 
    319  * to output some debugging comments. 
    320  */ 
    321 quadlet_t* 
    322 AvDevice::avcExecuteTransaction( quadlet_t* request, 
    323                                  unsigned int request_len, 
    324                                  unsigned int response_len ) 
    325 { 
    326     quadlet_t* response; 
    327     unsigned char* request_pos; 
    328     unsigned int i; 
    329  
    330     response = avc1394_transaction_block( m_handle, 
    331                                           m_iNodeId, 
    332                                           request, 
    333                                           request_len, 
    334                                           2 ); 
    335     if ( request ) { 
    336         debugPrint( DEBUG_LEVEL_TRANSFERS, 
    337                     "------- TRANSACTION START -------\n" ); 
    338         debugPrint( DEBUG_LEVEL_TRANSFERS,"  REQUEST:     " ); 
    339         /* request is in machine byte order. this function is for 
    340          * intel architecure */ 
    341         for ( i = 0; i < request_len; i++ ) { 
    342             request_pos = (unsigned char *)(request+i); 
    343             debugPrintShort( DEBUG_LEVEL_TRANSFERS, 
    344                              "0x%02X%02X%02X%02X ", 
    345                              *(request_pos), 
    346                              *(request_pos+1), 
    347                              *(request_pos+2), 
    348                              *(request_pos+3)); 
    349         } 
    350         debugPrintShort( DEBUG_LEVEL_TRANSFERS, "\n" ); 
    351         debugPrint( DEBUG_LEVEL_TRANSFERS, "      => " ); 
    352         debugPrintShort( DEBUG_LEVEL_TRANSFERS, "                     " ); 
    353  
    354         request_pos = (unsigned char *)(request); 
    355  
    356         debugPrintShort( DEBUG_LEVEL_TRANSFERS, 
    357                          "subunit_type=%02X  subunit_id=%02X  opcode=%02X", 
    358                          ((*(request_pos+1))>>3)&0x1F, 
    359                          (*(request_pos+1))&0x07, 
    360                          (*(request_pos+2))&0xFF ); 
    361         debugPrintShort (DEBUG_LEVEL_TRANSFERS,"\n"); 
    362     } 
    363  
    364     if ( response ) { 
    365         /* response is in order of receiving, i.e. msb first */ 
    366         debugPrint(DEBUG_LEVEL_TRANSFERS, "  -> RESPONSE: " ); 
    367         for ( i = 0; i < response_len; i++ ) { 
    368             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "0x%08X ", response[i] ); 
    369         } 
    370  
    371         debugPrintShort( DEBUG_LEVEL_TRANSFERS,"\n" ); 
    372         debugPrint( DEBUG_LEVEL_TRANSFERS,"      => " ); 
    373         switch (response[0]&0xFF000000) { 
    374         case AVC1394_RESPONSE_NOT_IMPLEMENTED: 
    375             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Not Implemented      " ); 
    376             break; 
    377         case AVC1394_RESPONSE_ACCEPTED: 
    378             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Accepted             " ); 
    379             break; 
    380         case AVC1394_RESPONSE_REJECTED: 
    381             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Rejected             " ); 
    382             break; 
    383         case AVC1394_RESPONSE_IN_TRANSITION: 
    384             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "In Transition        " ); 
    385             break; 
    386         case AVC1394_RESPONSE_IMPLEMENTED: 
    387             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Implemented / Stable " ); 
    388             break; 
    389         case AVC1394_RESPONSE_CHANGED: 
    390             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Changed              " ); 
    391             break; 
    392         case AVC1394_RESPONSE_INTERIM: 
    393             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Interim              " ); 
    394             break; 
    395         default: 
    396             debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Unknown response     " ); 
    397             break; 
    398         } 
    399         debugPrintShort( DEBUG_LEVEL_TRANSFERS, 
    400                          "subunit_type=%02X  subunit_id=%02X  opcode=%02X", 
    401                          (response[0]>>19)&0x1F, 
    402                          (response[0]>>16)&0x07, 
    403                          (response[0]>>8)&0xFF ); 
    404         debugPrintShort( DEBUG_LEVEL_TRANSFERS, "\n" ); 
    405     } 
    406     debugPrint( DEBUG_LEVEL_TRANSFERS, "------- TRANSACTION END -------\n" ); 
    407     return response; 
    408 } 
    409319 
    410320FBReturnCodes AvDevice::setInputPlugSignalFormat(unsigned char plug, unsigned char fmt, quadlet_t fdf) { 
     
    415325                                        | AVC1394_COMMAND_INPUT_PLUG_SIGNAL_FORMAT | plug; 
    416326        request[1] = (0x80000000) | ((fmt & 0x3F)<<24) | (fdf & 0x00FFFFFF); 
    417         response = avcExecuteTransaction(request, 2, 2); 
     327        response = Ieee1394Service::instance()->avcExecuteTransaction( m_iNodeId, request, 2, 2); 
    418328        if (response != NULL) { 
    419329 
     
    429339                                        | AVC1394_COMMAND_INPUT_PLUG_SIGNAL_FORMAT | plug; 
    430340        request[1] = 0xFFFFFFFF; 
    431         response = avcExecuteTransaction(request, 2, 2); 
     341        response = Ieee1394Service::instance()->avcExecuteTransaction( m_iNodeId, request, 2, 2); 
    432342        if (response != NULL) { 
    433343                *fmt=((response[1] >> 24) & 0x3F); 
     
    444354                                        | AVC1394_COMMAND_OUTPUT_PLUG_SIGNAL_FORMAT | plug; 
    445355        request[1] = (0x80000000) | ((fmt & 0x3F)<<24) | (fdf & 0x00FFFFFF); 
    446         response = avcExecuteTransaction(request, 2, 2); 
     356        response = Ieee1394Service::instance()->avcExecuteTransaction(m_iNodeId, request, 2, 2); 
    447357        if (response != NULL) { 
    448358 
     
    458368                                        | AVC1394_COMMAND_OUTPUT_PLUG_SIGNAL_FORMAT | plug; 
    459369        request[1] = 0xFFFFFFFF; 
    460         response = avcExecuteTransaction(request, 2, 2); 
     370        response = Ieee1394Service::instance()->avcExecuteTransaction(m_iNodeId, request, 2, 2); 
    461371        if (response != NULL) { 
    462372                *fmt=((response[1] >> 24) & 0x3F); 
     
    493403        request[1]=0xFFFEFF00 | ((i & 0xFF)); 
    494404 
    495         response = avcExecuteTransaction(request, 2, 2); 
     405        response = Ieee1394Service::instance()->avcExecuteTransaction(m_iNodeId, request, 2, 2); 
    496406 
    497407        if ( response ) { 
     
    526436        request[1]=0xFFFEFF00 | ((i & 0xFF)|0x80); 
    527437 
    528         response = avcExecuteTransaction(request, 2, 2); 
     438        response = Ieee1394Service::instance()->avcExecuteTransaction(m_iNodeId, request, 2, 2); 
    529439 
    530440        if ( response ) { 
     
    559469        request[1] = 0xFFFEFF00 | ((i & 0xFF)); 
    560470 
    561         response = avcExecuteTransaction(request, 2, 2); 
     471        response = Ieee1394Service::instance()->avcExecuteTransaction(m_iNodeId, request, 2, 2); 
    562472 
    563473        if ( response ) { 
     
    593503        request[1]=0xFFFEFF00 | ((i & 0xFF)|0x80); 
    594504 
    595         response = avcExecuteTransaction(request, 2, 2); 
     505        response = Ieee1394Service::instance()->avcExecuteTransaction(m_iNodeId, request, 2, 2); 
    596506 
    597507        if ( response ) { 
  • trunk/freebob/src/avdevice.h

    r55 r57  
    5252 
    5353    void execute( EStates state ); 
    54  
    55     quadlet_t * avcExecuteTransaction( quadlet_t *request,  
    56                                        unsigned int request_len,  
    57                                        unsigned int response_len ); 
    5854     
    5955    FBReturnCodes initialize(); 
  • trunk/freebob/src/avdevicemusicsubunit.cpp

    r43 r57  
    4545                request[1]=0xFFFFFFFF; 
    4646                request[2]= (ipcr<<24)| 0xFFFEFF; 
    47                 response = cParent->avcExecuteTransaction(request, 3, 4); 
     47                response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 3, 4); 
    4848 
    4949                if ((response != NULL) && ((response[0]&0xFF000000)==0x0C000000)) { 
     
    7676                request[2] = 0x0000FFFF; 
    7777                request[3] = 0xFFFFFFFF; 
    78                 response = cParent->avcExecuteTransaction(request, 1, 4); 
     78                response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 1, 4); 
    7979                if (response != NULL) { 
    8080 
     
    106106                request[2] = 0x0000FFFF; 
    107107                request[3] = 0xFFFFFFFF; 
    108                 response = cParent->avcExecuteTransaction(request, 1, 4); 
     108                response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 1, 4); 
    109109                if (response != NULL) { 
    110110 
     
    140140        request[0] = AVC1394_CTYPE_STATUS | ((iTarget & 0x1F) << 19) | ((iId & 0x07) << 16) 
    141141                                        | (0xC0 << 8) | 0xFF; 
    142         response = cParent->avcExecuteTransaction(request, 1, 4); 
     142        response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 1, 4); 
    143143 
    144144        if (response != NULL) { 
  • trunk/freebob/src/avdevicesubunit.cpp

    r43 r57  
    4444        //request[1] = ((iTarget & 0x1F) << 27) | ((iId & 0x07) << 24) | 0x00FF7F; 
    4545        request[1]=0xFFFEFF00 | opcr; 
    46         response = cParent->avcExecuteTransaction(request, 2, 4); 
     46        response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 2, 4); 
    4747        if ((response != NULL) && ((response[0]&0xFF000000)==0x0C000000)) { 
    4848            unsigned char output_status=(response[0]&0xE0) >> 5; 
     
    6161        //request[1] = ((iTarget & 0x1F) << 27) | ((iId & 0x07) << 24) | 0x00FF7F; 
    6262        request[1]=0xFFFEFF00 | opcr; 
    63         response = cParent->avcExecuteTransaction(request, 2, 4); 
     63        response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 2, 4); 
    6464        if ((response != NULL) && ((response[0]&0xFF000000)==0x0C000000)) { 
    6565            unsigned char output_status=(response[0]&0xE0) >> 5; 
     
    110110                 | AVC1394_COMMAND_PLUG_INFO | 0x00; 
    111111    request[1] = 0xFFFFFFFF; 
    112     response = cParent->avcExecuteTransaction(request, 2, 2); 
     112    response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 2, 2); 
    113113    if (response != NULL) { 
    114114        iNbDestinationPlugs= (unsigned char) ((response[1]>>24) & 0xff); 
     
    154154    request[2] = 0xFFFFFFFF; 
    155155    request[3] = 0xFFFFFFFF; 
    156     response = cParent->avcExecuteTransaction(request, 4, 4); 
     156    response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 4, 4); 
    157157    if (response != NULL) { 
    158158        if((AVC1394_MASK_RESPONSE(response[0]) == AVC1394_RESPONSE_ACCEPTED) || (AVC1394_MASK_RESPONSE(response[0]) == AVC1394_RESPONSE_IMPLEMENTED))  { 
     
    183183    request[2] = 0xFFFFFFFF; 
    184184    request[3] = 0xFFFFFFFF; 
    185     response = cParent->avcExecuteTransaction(request, 4, 4); 
     185    response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 4, 4); 
    186186    if (response != NULL) { 
    187187        if((AVC1394_MASK_RESPONSE(response[0]) == AVC1394_RESPONSE_ACCEPTED) || (AVC1394_MASK_RESPONSE(response[0]) == AVC1394_RESPONSE_IMPLEMENTED))  { 
     
    214214    request[2] = 0xFFFFFFFF; 
    215215    request[3] = 0xFFFFFFFF; 
    216     response = cParent->avcExecuteTransaction(request, 4, 4); 
     216    response = Ieee1394Service::instance()->avcExecuteTransaction(cParent->getNodeId(), request, 4, 4); 
    217217    if (response != NULL) { 
    218218        if((AVC1394_MASK_RESPONSE(response[0]) == AVC1394_RESPONSE_ACCEPTED) || (AVC1394_MASK_RESPONSE(response[0]) == AVC1394_RESPONSE_IMPLEMENTED))  { 
  • trunk/freebob/src/ieee1394service.cpp

    r55 r57  
    317317    printf( "bus id = 0x%08x\n", iBusId ); 
    318318    printf( "bus options:\n" ); 
    319     printf( "    isochronous resource manager capable: %d\n", busOptions.irmc ); 
    320     printf ("    cycle master capable                : %d\n", busOptions.cmc ); 
    321     printf ("    isochronous capable                 : %d\n", busOptions.isc ); 
    322     printf ("    bus manager capable                 : %d\n", busOptions.bmc ); 
    323     printf ("    cycle master clock accuracy         : %d ppm\n", busOptions.cyc_clk_acc ); 
    324     printf( "    maximum asynchronous record size    : %d bytes\n", busOptions.max_rec ); 
     319    printf( "  isochronous resource manager capable: %d\n", busOptions.irmc ); 
     320    printf ("  cycle master capable                : %d\n", busOptions.cmc ); 
     321    printf ("  isochronous capable                 : %d\n", busOptions.isc ); 
     322    printf ("  bus manager capable                 : %d\n", busOptions.bmc ); 
     323    printf ("  cycle master clock accuracy         : %d ppm\n", busOptions.cyc_clk_acc ); 
     324    printf( "  maximum asynchronous record size    : %d bytes\n", busOptions.max_rec ); 
    325325    printf("GUID: 0x%08x%08x\n", (quadlet_t) (oGuid>>32), 
    326326           (quadlet_t) (oGuid & 0xffffffff) ); 
    327327    printf( "directory:\n"); 
    328     printf( "    node capabilities    : 0x%08x\n", pRomDir->node_capabilities ); 
    329     printf( "    vendor id            : 0x%08x\n", pRomDir->vendor_id ); 
    330     printf( "    unit spec id         : 0x%08x\n", pRomDir->unit_spec_id ); 
    331     printf( "    unit software version: 0x%08x\n", pRomDir->unit_sw_version ); 
    332     printf( "    model id             : 0x%08x\n", pRomDir->model_id ); 
    333     printf( "    textual leaves       : %s\n",     pRomDir->label ); 
     328    printf( "  node capabilities    : 0x%08x\n", pRomDir->node_capabilities ); 
     329    printf( "  vendor id            : 0x%08x\n", pRomDir->vendor_id ); 
     330    printf( "  unit spec id         : 0x%08x\n", pRomDir->unit_spec_id ); 
     331    printf( "  unit software version: 0x%08x\n", pRomDir->unit_sw_version ); 
     332    printf( "  model id             : 0x%08x\n", pRomDir->model_id ); 
     333    printf( "  textual leaves       : %s\n",     pRomDir->label ); 
    334334} 
    335335 
     
    405405    return m_iGenerationCount; 
    406406} 
     407 
     408/* Function to execute an AVC transaction, i.e. send command/status 
     409 * and get response main purpose is wrapping the avc1394 function call 
     410 * to output some debugging comments. 
     411 */ 
     412quadlet_t* 
     413Ieee1394Service::avcExecuteTransaction( int node_id, 
     414                                        quadlet_t* request, 
     415                                        unsigned int request_len, 
     416                                        unsigned int response_len ) 
     417{ 
     418    quadlet_t* response; 
     419    unsigned char* request_pos; 
     420    unsigned int i; 
     421 
     422    response = avc1394_transaction_block( m_handle, 
     423                                          node_id, 
     424                                          request, 
     425                                          request_len, 
     426                                          2 ); 
     427    if ( request ) { 
     428        debugPrint( DEBUG_LEVEL_TRANSFERS, 
     429                    "------- TRANSACTION START -------\n" ); 
     430        debugPrint( DEBUG_LEVEL_TRANSFERS,"  REQUEST:     " ); 
     431        /* request is in machine byte order. this function is for 
     432         * intel architecure */ 
     433        for ( i = 0; i < request_len; i++ ) { 
     434            request_pos = (unsigned char *)(request+i); 
     435            debugPrintShort( DEBUG_LEVEL_TRANSFERS, 
     436                             "0x%02X%02X%02X%02X ", 
     437                             *(request_pos), 
     438                             *(request_pos+1), 
     439                             *(request_pos+2), 
     440                             *(request_pos+3)); 
     441        } 
     442        debugPrintShort( DEBUG_LEVEL_TRANSFERS, "\n" ); 
     443        debugPrint( DEBUG_LEVEL_TRANSFERS, "      => " ); 
     444        debugPrintShort( DEBUG_LEVEL_TRANSFERS, "                     " ); 
     445 
     446        request_pos = (unsigned char *)(request); 
     447 
     448        debugPrintShort( DEBUG_LEVEL_TRANSFERS, 
     449                         "subunit_type=%02X  subunit_id=%02X  opcode=%02X", 
     450                         ((*(request_pos+1))>>3)&0x1F, 
     451                         (*(request_pos+1))&0x07, 
     452                         (*(request_pos+2))&0xFF ); 
     453        debugPrintShort (DEBUG_LEVEL_TRANSFERS,"\n"); 
     454    } 
     455 
     456    if ( response ) { 
     457        /* response is in order of receiving, i.e. msb first */ 
     458        debugPrint(DEBUG_LEVEL_TRANSFERS, "  -> RESPONSE: " ); 
     459        for ( i = 0; i < response_len; i++ ) { 
     460            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "0x%08X ", response[i] ); 
     461        } 
     462 
     463        debugPrintShort( DEBUG_LEVEL_TRANSFERS,"\n" ); 
     464        debugPrint( DEBUG_LEVEL_TRANSFERS,"      => " ); 
     465        switch (response[0]&0xFF000000) { 
     466        case AVC1394_RESPONSE_NOT_IMPLEMENTED: 
     467            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Not Implemented      " ); 
     468            break; 
     469        case AVC1394_RESPONSE_ACCEPTED: 
     470            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Accepted             " ); 
     471            break; 
     472        case AVC1394_RESPONSE_REJECTED: 
     473            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Rejected             " ); 
     474            break; 
     475        case AVC1394_RESPONSE_IN_TRANSITION: 
     476            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "In Transition        " ); 
     477            break; 
     478        case AVC1394_RESPONSE_IMPLEMENTED: 
     479            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Implemented / Stable " ); 
     480            break; 
     481        case AVC1394_RESPONSE_CHANGED: 
     482            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Changed              " ); 
     483            break; 
     484        case AVC1394_RESPONSE_INTERIM: 
     485            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Interim              " ); 
     486            break; 
     487        default: 
     488            debugPrintShort( DEBUG_LEVEL_TRANSFERS, "Unknown response     " ); 
     489            break; 
     490        } 
     491        debugPrintShort( DEBUG_LEVEL_TRANSFERS, 
     492                         "subunit_type=%02X  subunit_id=%02X  opcode=%02X", 
     493                         (response[0]>>19)&0x1F, 
     494                         (response[0]>>16)&0x07, 
     495                         (response[0]>>8)&0xFF ); 
     496        debugPrintShort( DEBUG_LEVEL_TRANSFERS, "\n" ); 
     497    } 
     498    debugPrint( DEBUG_LEVEL_TRANSFERS, "------- TRANSACTION END -------\n" ); 
     499    return response; 
     500} 
  • trunk/freebob/src/ieee1394service.h

    r44 r57  
    6262    unsigned int getGenerationCount(); 
    6363 
     64    quadlet_t * avcExecuteTransaction( int node_id, 
     65                                       quadlet_t *request,  
     66                                       unsigned int request_len,  
     67                                       unsigned int response_len ); 
     68 
    6469 protected: 
    6570    static int resetHandler( raw1394handle_t handle,