コード例 #1
0
ファイル: switcher.c プロジェクト: ah-/switcher
int switcherSetMode(SwitcherMode mode) {
    if (switcherConnect == IO_OBJECT_NULL) return 0;
    switch (mode) {
        case modeForceIntegrated:
        case modeForceDiscrete:
            // Disable dynamic switching
            setDynamicSwitchingEnabled(switcherConnect, 0);
            
            // Disable Policy, otherwise gpu switches to Discrete after a bad app closes
            setFeatureInfo(switcherConnect, Policy, 0);
            setSwitchPolicy(switcherConnect, 0);
            
            // Hold up a sec!
            sleep(1);
            
            BOOL integrated = isUsingIntegrated();
            if ((mode==modeForceIntegrated && !integrated) || (mode==modeForceDiscrete && integrated))
                forceSwitch(switcherConnect);
            
            break;
        case modeDynamicSwitching:
            // Set switch policy back, make the MBP think it's an auto switching one once again
            setFeatureInfo(switcherConnect, Policy, 1);
            setSwitchPolicy(switcherConnect, 1);
            
            // Enable dynamic switching
            setDynamicSwitchingEnabled(switcherConnect, 1);
            
            break;
        case modeToggleGPU:
            forceSwitch(switcherConnect);
            
            break;
    }
    return 1;
}
コード例 #2
0
ファイル: window.cpp プロジェクト: qtdevel/qgateway
//------------------------------------------------------------------------------------------------
void Window::addOptionsTab()
{
    QWidget * w = new QWidget;
    switchType = new QComboBox;
    switchType->addItem(tr("auto switching"));
    switchType->addItem(tr("upper gateway in list is more preferrable"));
    switchType->addItem(tr("use any available gateway"));
    switchType->addItem(tr("do not use gateway"));
    connect(switchType, SIGNAL(currentIndexChanged(int)),
            this, SLOT(switchTypeChanged(int)));
    pingHostEdit = new QLineEdit(GOOGLE_DNS);
    pingHostEdit->setValidator(new IP4Validator(this));
    connect(pingHostEdit, SIGNAL(textEdited(const QString &)),
            this, SLOT(pingHostEdited(const QString &)));
    QFormLayout *fl = new QFormLayout;
    fl->addRow(tr("Switching method:"), switchType);
    fl->addRow(tr("IP address to ping:"), pingHostEdit);
    pingTimeout = new QSpinBox;
    pingTimeout->setMinimum(1);
    pingTimeout->setMaximum(1000);
    pingTimeout->setSuffix(tr(" ms."));
    pingTimeout->setMaximumWidth(70);
    connect(pingTimeout, SIGNAL(valueChanged(int)),
            this, SLOT(spinChanged(int)));
    fl->addRow(tr("Maximum of ping timeout:"), pingTimeout);
    connTimeout = new QSpinBox;
    connTimeout->setMinimum(5);
    connTimeout->setSuffix(tr(" sec."));
    connTimeout->setMaximumWidth(70);
    connect(connTimeout, SIGNAL(valueChanged(int)),
            this, SLOT(spinChanged(int)));
    fl->addRow(tr("Switch if connection timeout is:"), connTimeout);
    prioTimeout = new QSpinBox;
    prioTimeout->setMinimum(1);
    prioTimeout->setSuffix(tr(" min."));
    prioTimeout->setMaximumWidth(70);
    connect(prioTimeout, SIGNAL(valueChanged(int)),
            this, SLOT(spinChanged(int)));
    QHBoxLayout * hl = new QHBoxLayout;
    forceSwitchButton = new QPushButton(QIcon(":/images/arrow-circle-double.png"),"");
    forceSwitchButton->setToolTip(tr("Force switching right now"));
    forceSwitchButton->setMaximumWidth(30);
    forceSwitchButton->setAutoDefault(false);
    forceSwitchButton->setFocusPolicy(Qt::NoFocus);
    connect(forceSwitchButton, SIGNAL(clicked()),
            this, SLOT(forceSwitch()));
    hl->addWidget(prioTimeout);
    hl->addWidget(forceSwitchButton);
    fl->addRow(tr("Priority switching after:"), hl);
    runOnStartup = new QCheckBox;
#ifdef Q_OS_WIN
    fl->addRow(tr("Run program on system startup:"), runOnStartup);
#endif
    connect(runOnStartup, SIGNAL(stateChanged(int)),
            this, SLOT(startupChecked(int)));
    showBalloons = new QCheckBox;
    connect(showBalloons, SIGNAL(stateChanged(int)),
            this, SLOT(checkboxChanged(int)));
    fl->addRow(tr("Show balloons:"), showBalloons);
    askOnQuit = new QCheckBox;
    connect(askOnQuit, SIGNAL(stateChanged(int)),
            this, SLOT(checkboxChanged(int)));
    fl->addRow(tr("Ask on quit:"), askOnQuit);
    writeGwOnExit = new QCheckBox;
    connect(writeGwOnExit, SIGNAL(stateChanged(int)),
            this, SLOT(checkboxChanged(int)));
#ifdef Q_OS_WIN
    fl->addRow(tr("Write gateway to registry on exit:"), writeGwOnExit);
#endif
    QVBoxLayout *vl = new QVBoxLayout;
    vl->addLayout(fl);
    vl->addSpacing(15);
    gwInfo = new QLabel;
    vl->addWidget(gwInfo);
    w->setLayout(vl);
    tabs->addTab(w, QIcon(":/images/wrench.png"), tr("Options"));
}