Example #1
0
static unsigned char eventUpdates(void)
{
	return
		receiverUpdate() +
		clockUpdate() +
		screenUpdate() +
		buttonUpdate() +
		menuUpdate();
}
Example #2
0
VolumeDialogImpl::VolumeDialogImpl( QWidget* parent, Qt::WFlags fl )
    : QDialog( parent, fl ), m_tid(0), m_oldValue(0), m_d(new VolumeDialogImplPrivate)
{
    screenUpdate();

    QColor c(Qt::black);
    c.setAlpha(255);     //XXX: Make fully opaque for now, for  DirectPainter widgets in the background

    setAttribute(Qt::WA_SetPalette, true);

    QPalette p = palette();
    p.setBrush(QPalette::Window, c);
    setPalette(p);

    QVBoxLayout *vBox = new QVBoxLayout(this);
    QHBoxLayout *hBox = new QHBoxLayout;

    volumeWidget = new VolumeWidget(this);

    QIcon icon(":icon/sound");
    QIcon mute(":icon/mute");

    QLabel* volumeLevel = new QLabel(this);
    volumeLevel->setAlignment(Qt::AlignRight | Qt::AlignCenter);
    volumeLevel->setMinimumWidth( fontMetrics().width("100%") );
    volumeLevel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Maximum);
    connect(this, SIGNAL(setText(QString)), volumeLevel, SLOT(setText(QString)));

    volumeWidget->l = new QLabel(this);
    volumeWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
    volumeWidget->l->setPixmap(icon.pixmap(64, 64));
    volumeWidget->m = new QLabel(this);

    volumeWidget->m->hide();
    volumeWidget->m->setPixmap(mute.pixmap(64, 64));

    hBox->addStretch();
    hBox->addWidget(volumeWidget->l);
    hBox->addWidget(volumeWidget->m);
    hBox->addStretch();

    QHBoxLayout *wp = new QHBoxLayout;
    wp->addWidget(volumeWidget);
    wp->addWidget(volumeLevel);

    vBox->addLayout(hBox);
    vBox->addLayout(wp);

    connect(m_d->m_vsVolume, SIGNAL(contentsChanged()), this, SLOT(valueSpaceVolumeChanged()));
    initialized = 0;
    old_slot = 0;

    resetTimer();
}
Example #3
0
void VolumeDialogImpl::valueSpaceVolumeChanged()
{
    QValueSpaceItem vol("/System/Volume/CurrentVolume");
    int volume = vol.value().toInt();

    int slot =   qBound(1,(int)::ceil(volume/(volumeWidget->steps()))+1,10);
    int slot2 =  qBound(1,volume+1,100);

    volumeWidget->setCurrent( slot );
    initialized++;

    resetTimer();

    if(initialized < 3) // Ignore initial emit on connect to valueSpace item
        return;

    if((volume == 0) || (volume == 100)) {
        // Handle press and hold of volume keys at max or min!
        if(m_d->state) {
            m_d->old_volume[3] = m_d->old_volume[2];
            m_d->old_volume[2] = m_d->old_volume[1];
            m_d->old_volume[1] = m_d->old_volume[0];
            m_d->old_volume[0] = volume;
            if(!((m_d->old_volume[1] == volume) && (m_d->old_volume[2] == volume) &&
                        (m_d->old_volume[3] == volume)))
                return;
        } else {
            m_d->state = true;
            return;
        }
    } else if(volume == m_d->old_volume[0]) {
        return;
    } else {
        m_d->old_volume[3] = m_d->old_volume[2];
        m_d->old_volume[2] = m_d->old_volume[1];
        m_d->old_volume[1] = m_d->old_volume[0];
        m_d->old_volume[0] = volume;
    }

    screenUpdate();

    if(!m_d->firstUpdate) {
        // Ignore the first actual update as that would be startup
        m_d->firstUpdate = true;
        return;
    }

    QString str;
    str.setNum(volume);
    old_slot = slot2;
    emit setText(str+"%");
    if(volume > 0)
    {
        volumeWidget->m->hide();
        volumeWidget->l->show();
    }
    else
    {
        volumeWidget->l->hide();
        volumeWidget->m->show();
        volumeWidget->setCurrent( 1 );
    }
    this->show();
}