Пример #1
0
void ControlReaderThread::setupRequest(void *data)
{
    struct usb_functionfs_event *e = (struct usb_functionfs_event *)data;

    /* USB Still Image Capture Device Definition, Section 5 */
    /* www.usb.org/developers/devclass_docs/usb_still_img10.pdf */

    //qDebug() << "bRequestType:" << e->u.setup.bRequestType;
    //qDebug() << "bRequest:" << e->u.setup.bRequest;
    //qDebug() << "wValue:" << e->u.setup.wValue;
    //qDebug() << "wIndex:" << e->u.setup.wIndex;
    //qDebug() << "wLength:" << e->u.setup.wLength;

    switch(e->u.setup.bRequest) {
    case PTP_REQ_GET_DEVICE_STATUS:
        if(e->u.setup.bRequestType == 0xa1)
            sendStatus(m_status);
        else
            stall((e->u.setup.bRequestType & USB_DIR_IN)>0);
        break;
    case PTP_REQ_CANCEL:
        emit cancelTransaction();
        break;
    case PTP_REQ_DEVICE_RESET:
        emit deviceReset();
        break;
    //case PTP_REQ_GET_EXTENDED_EVENT_DATA:
    default:
        stall((e->u.setup.bRequestType & USB_DIR_IN)>0);
        break;
    }
}
Пример #2
0
void CharacterComponent::setBuySell(BuySell *t)
{
    if (t)
    {
        cancelTransaction();
        mTransactionHandler = t;
        mTransaction = TRANS_BUYSELL;
    }
    else
    {
        assert(mTransaction == TRANS_NONE || mTransaction == TRANS_BUYSELL);
        mTransaction = TRANS_NONE;
    }
}
Пример #3
0
void CharacterComponent::setTrading(Trade *t)
{
    if (t)
    {
        cancelTransaction();
        mTransactionHandler = t;
        mTransaction = TRANS_TRADE;
    }
    else
    {
        assert(mTransaction == TRANS_NONE || mTransaction == TRANS_TRADE);
        mTransaction = TRANS_NONE;
    }
}