Home Handling Bluetooth Headphone Event with QmKeys in Harmattan

Handling Bluetooth Headphone Event with QmKeys in Harmattan

This Article Is from Qt ,Maemo and some other stuff
Currently I am working on upgrade of Audiobook reader bluetooth-headphone-event-with.html application. As part of upgrade I am planing to support bluthooth headset support. In this upgrade I am planning to support only play/pause event.
Harmattan has QmSystem Qt library that provide events for various system activity. I used QmKeys API from QmSystem to capture and handle handling-bluetooth-headphone-event-with.htm bluetooth headset event.
This is first time I am using QmSystem Library so I thought to put whatever I learned in blogpost in hope that it might help someone.
Following is my code to capture bluetooth headset event. It can be used to capture other system key event as well like Powekey, Volume key, Camera , keyboard slider and others.
First add qmsystem2 to CONFIG Qt project file.

CONFIG += qmsystem2

And also you need to include qmkeys.h.

#include <qmkeys.h>

. Then need to create instace of QmKeys and connect its keyEvent SIGNAL to our SLOT.

mQmkeys = new MeeGo::QmKeys(this);
connect(mQmkeys, SIGNAL(keyEvent(MeeGo::QmKeys::Key, MeeGo::QmKeys::State)),
       this, SLOT(keyEvent(MeeGo::QmKeys::Key, MeeGo::QmKeys::State)));

Now our slot keyEvent will get called when ever there is key event. I am instrested only in play/pause event so following code list only those event.

void HeadsetKeyListener::keyEvent(MeeGo::QmKeys::Key key,
    MeeGo::QmKeys::State state) {
    if( state != MeeGo::QmKeys::KeyDown ) {
        return;
    }
    switch( key) {
    case MeeGo::QmKeys::Play:
        emit playPauseClicked();
        break;
    case MeeGo::QmKeys::Pause:
        emit playPauseClicked();
        break;
    }
}

 
Source Qt ,Maemo and some other stuff

About ReadWrite’s Editorial Process

The ReadWrite Editorial policy involves closely monitoring the gambling and blockchain industries for major developments, new product and brand launches, game releases and other newsworthy events. Editors assign relevant stories to in-house staff writers with expertise in each particular topic area. Before publication, articles go through a rigorous round of editing for accuracy, clarity, and to ensure adherence to ReadWrite's style guidelines.