示例#1
0
void EPlaybackWing::applyExtraButtons(const QByteArray& data)
{
    /* Check that there's enough data for flags */
    if (data.size() < EWING_PLAYBACK_BYTE_EXTRA_BUTTONS + 1)
        return;

    if (!(data[EWING_PLAYBACK_BYTE_EXTRA_BUTTONS] & EWING_PLAYBACK_BIT_PAGEUP))
    {
        nextPage();
        sendPageData();
    }
    else if (!(data[EWING_PLAYBACK_BYTE_EXTRA_BUTTONS] & EWING_PLAYBACK_BIT_PAGEDOWN))
    {
        previousPage();
        sendPageData();
    }
    else if (!(data[EWING_PLAYBACK_BYTE_EXTRA_BUTTONS] & EWING_PLAYBACK_BIT_BACK))
    {
        /** @todo */
    }
    else if (!(data[EWING_PLAYBACK_BYTE_EXTRA_BUTTONS] & EWING_PLAYBACK_BIT_GO))
    {
        /** @todo */
    }
}
示例#2
0
EPlaybackWing::EPlaybackWing(QObject* parent, const QHostAddress& address,
                             const QByteArray& data) : EWing(parent, address, data)
{
    m_values = QByteArray(EWING_PLAYBACK_CHANNEL_COUNT, 0);

    /* Playback wing keys seem to be in a somewhat weird order */
    m_channelMap[0] = 7 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[1] = 6 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[2] = 5 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[3] = 4 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[4] = 3 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[5] = 2 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[6] = 1 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[7] = 0 + EWING_PLAYBACK_SLIDER_SIZE;

    m_channelMap[8] = 15 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[9] = 14 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[10] = 13 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[11] = 12 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[12] = 11 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[13] = 10 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[14] = 9 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[15] = 8 + EWING_PLAYBACK_SLIDER_SIZE;

    /* Weird order here */
    m_channelMap[16] = 28 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[17] = 27 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[18] = 21 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[19] = 20 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[20] = 19 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[21] = 18 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[22] = 17 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[23] = 16 + EWING_PLAYBACK_SLIDER_SIZE;

    /* Weird order also here */
    m_channelMap[24] = 31 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[25] = 30 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[26] = 26 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[27] = 25 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[28] = 24 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[29] = 23 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[30] = 22 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[31] = 29 + EWING_PLAYBACK_SLIDER_SIZE;

    m_channelMap[32] = 39 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[33] = 38 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[34] = 37 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[35] = 36 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[36] = 35 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[37] = 34 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[38] = 33 + EWING_PLAYBACK_SLIDER_SIZE;
    m_channelMap[39] = 32 + EWING_PLAYBACK_SLIDER_SIZE;

    /* Take initial values from the first received datagram packet.
       The plugin hasn't yet connected to valueChanged() signal, so this
       won't cause any input events. */
    parseData(data);
    sendPageData();
}
示例#3
0
void ShortcutWing::applyPageButtons(const QByteArray& data)
{
    /* Check that there's enough data for flags */
    if (data.size() < WING_BYTE_FLAGS + 1)
        return;

    if ((data[WING_BYTE_FLAGS] & WING_SHORTCUT_PAGE_UP) == 0)
    {
        nextPage();
        sendPageData();
    }
    else if ((data[WING_BYTE_FLAGS] & WING_SHORTCUT_PAGE_DOWN) == 0)
    {
        previousPage();
        sendPageData();
    }
}
示例#4
0
ShortcutWing::ShortcutWing(QObject* parent, const QHostAddress& address,
                             const QByteArray& data)
    : Wing(parent, address, data)
{
    m_values = QByteArray(WING_SHORTCUT_CHANNEL_COUNT, 0);

    /* Take initial values from the first received datagram packet.
       The plugin hasn't yet connected to valueChanged() signal, so this
       won't cause any input events. */
    parseData(data);
    sendPageData();
}