void WifiIconTimer::timerCallback() { if(!launcherComponent) { return; } for( auto button : launcherComponent->topButtons->buttons ) { if (button->getName() == "WiFi") { Image wifiIcon; const auto& conAp = getWifiStatus().connectedAccessPoint(); // wifi on and connected if (getWifiStatus().isConnected() && conAp) { // 0 to 100 float sigStrength = std::max(0, std::min(99, conAp->signalStrength)); // don't include the wifi-off icon as a bin int iconBins = launcherComponent->wifiIconImages.size() - 2; int idx = round( ( iconBins * (sigStrength)/100.0f) ); DBG(__func__ << ": accessing icon " << idx); wifiIcon = launcherComponent->wifiIconImages[idx]; } // wifi on but no connection else if (getWifiStatus().isEnabled()) { wifiIcon = launcherComponent->wifiIconImages[0]; } // wifi off else { wifiIcon = launcherComponent->wifiIconImages.getLast(); } button->setImages(false, false, true, wifiIcon, 1.0f, Colours::transparentWhite, // normal wifiIcon, 1.0f, Colours::transparentWhite, // over wifiIcon, 0.5f, Colours::transparentWhite, // down 0); } } }
void WifiCategoryItemComponent::disableWifiActions() { spinner->show(); icon->setVisible(false); button->setEnabled(getWifiStatus().isEnabled()); toggle->setEnabled(false); updateButtonText(); toggle->setToggleState(getWifiStatus().isEnabled(), NotificationType::dontSendNotification); }
WifiCategoryItemComponent::WifiCategoryItemComponent() : SettingsCategoryItemComponent("wifi"), spinner(new WifiSpinner("SettingsWifiSpinner")) { iconDrawable = Drawable::createFromImageFile(assetFile("wifiIcon.png")); icon->setImages(iconDrawable); bool isEnabled = getWifiStatus().isEnabled(); toggle->setToggleState(isEnabled, NotificationType::dontSendNotification); button->setEnabled(isEnabled); addChildComponent(spinner); updateButtonText(); }
void WifiCategoryItemComponent::updateButtonText() { const auto &status = getWifiStatus(); if (status.isEnabled()) { if (status.isConnected() && status.connectedAccessPoint()) { button->setText(status.connectedAccessPoint()->ssid); } else { button->setText("Not Connected"); } } else { button->setText("WiFi Off"); } }
SettingsPageComponent::SettingsPageComponent(LauncherComponent* lc) { bgColor = Colour(0xffd23c6d); bgImage = createImageFromFile(assetFile("settingsBackground.png")); mainPage = new Component(); addAndMakeVisible(mainPage); mainPage->toBack(); ChildProcess child{}; /* Adding the personalize button */ advancedPage = new AdvancedSettingsPage(lc); advanced = new TextButton("Advanced Settings"); advanced->addListener(this); addAndMakeVisible(advanced); brightness = 8; #if JUCE_LINUX // Get initial brightness value if(child.start("cat /sys/class/backlight/backlight/brightness")) { String result{child.readAllProcessOutput()}; brightness = result.getIntValue(); }; #endif volume = 90; #if JUCE_LINUX // Get initial volume value StringArray cmd{ "amixer","sget","Power Amplifier" }; if(child.start(cmd)) { const String result (child.readAllProcessOutput()); int resultIndex = result.indexOf("[")+1; child.waitForProcessToFinish (5 * 1000); char buff[4]; for (int i = 0; i<4; i++) { char c = result[resultIndex+i]; if( c >= '0' && c <= '9' ) { buff[i]=c; } else { buff[i]=(char)0; } } String newVol = String(buff); volume = newVol.getIntValue(); } #endif ScopedPointer<Drawable> brightLo = Drawable::createFromImageFile(assetFile("brightnessIconLo.png")); ScopedPointer<Drawable> brightHi = Drawable::createFromImageFile(assetFile("brightnessIconHi.png")); screenBrightnessSlider = ScopedPointer<IconSliderComponent>(new IconSliderComponent(*brightLo, *brightHi)); screenBrightnessSlider->addListener(this); screenBrightnessSlider->slider->setValue(1+(brightness-0.09)*10); ScopedPointer<Drawable> volLo = Drawable::createFromImageFile(assetFile("volumeIconLo.png")); ScopedPointer<Drawable> volHi = Drawable::createFromImageFile(assetFile("volumeIconHi.png")); volumeSlider = ScopedPointer<IconSliderComponent>(new IconSliderComponent(*volLo, *volHi)); volumeSlider->addListener(this); volumeSlider->slider->setValue(volume); // create back button backButton = createImageButton( "Back", createImageFromFile(assetFile("backIcon.png"))); backButton->addListener(this); backButton->setAlwaysOnTop(true); addAndMakeVisible(backButton); wifiCategoryItem = new WifiCategoryItemComponent(); wifiCategoryItem->button->addListener(this); addAndMakeVisible(wifiCategoryItem); getWifiStatus().addListener(wifiCategoryItem); addAndMakeVisible(screenBrightnessSlider); addAndMakeVisible(volumeSlider); wifiPage = new SettingsPageWifiComponent(); }
void WifiCategoryItemComponent::enabledStateChanged(bool enabled) { updateButtonText(); enabled ? getWifiStatus().setEnabled() : getWifiStatus().setDisabled(); }