void VolumeBarLogic::openConnection ()
{
  if(!mPAThread){
    mPAThread = new pulseaudio_thread();
    connect(mPAThread,SIGNAL(volumeChanged(quint32,quint32)),this,SLOT(stepsUpdated(quint32,quint32)));
    connect(this,SIGNAL(changeVolume(quint32)),mPAThread,SLOT(changeVolume(quint32)));
    mPAThread->start();
    hwkeys->start();
  }
}
/*
 * This function should be called before we're showing the
 * current volume on the screen...
 *
 * Because sometimes we can lost the connection to PulseAudio,
 * and meanwhile PulseAudio volume-values changed, and we
 * didn't get any info about those...
 */
void VolumeBarLogic::ping ()
{
    if ((dbus_conn != NULL) &&
        (dbus_connection_get_is_connected (dbus_conn)))
        return;

    /*
     * Connection lost, re-query the values
     */
    openConnection (true);

    stepsUpdated (currentvolume, currentmax);
}