Пример #1
0
void QBBVirtualKeyboard::close()
{
    if (mFd) {
        // any reads will fail after we close the fd, which is basically what we want.
        ::close(mFd);
    }

    // Wait for the thread to die (should be immediate), then continue the cleanup.
    wait();

    if (mFd) {
        mFd = -1;
    }


    if(mDecoder)
    {
        pps_decoder_cleanup(mDecoder);
        delete mDecoder;
        mDecoder = NULL;
    }

    if(mEncoder)
    {
        pps_encoder_cleanup(mEncoder);
        delete mEncoder;
        mEncoder = NULL;
    }

    delete [] mBuffer;
    mBuffer = NULL;
}
Пример #2
0
void QQnxVirtualKeyboardPps::close()
{
    delete m_readNotifier;
    m_readNotifier = 0;

    if (m_fd != -1) {
        ::close(m_fd);
        m_fd = -1;
    }

    if (m_decoder) {
        pps_decoder_cleanup(m_decoder);
        delete m_decoder;
        m_decoder = 0;
    }

    if (m_encoder) {
        pps_encoder_cleanup(m_encoder);
        delete m_encoder;
        m_encoder = 0;
    }

    delete [] m_buffer;
    m_buffer = 0;
}
Пример #3
0
bool endCtrlMessage(pps_encoder_t *encoder)
{
    qCDebug(QT_BT_QNX) << "writing" << pps_encoder_buffer(encoder);
    if (pps_encoder_buffer(encoder) != 0) {
        int res = qt_safe_write(ppsCtrlFD, pps_encoder_buffer(encoder), pps_encoder_length(encoder));
        if (res == -1) {
            qCWarning(QT_BT_QNX) << Q_FUNC_INFO << "Error when writing to control FD. Is Bluetooth powerd on?"
                       << errno << ppsCtrlFD << count;
            return false;
        }
    }

    pps_encoder_cleanup( encoder );
    return true;
}
Пример #4
0
QByteArray QPpsObjectPrivate::encode(const QVariantMap &ppsData, bool *ok)
{
    pps_encoder_t encoder;
    pps_encoder_initialize(&encoder, false);

    encodeObject(&encoder, ppsData, ok);
    const char *rawData = 0;
    if (*ok) {
        // rawData points to a memory owned by encoder.
        // The memory will be freed when pps_encoder_cleanup is called.
        rawData = pps_encoder_buffer(&encoder);
        if (!rawData) {
            qWarning() << "QPpsObjectPrivate::encode: pps_encoder_buffer failed";
            *ok = false;
        }
    }

    pps_encoder_cleanup(&encoder);
    return QByteArray(rawData);
}