Switch GFE optimizations from a menu to a toggle

This commit is contained in:
Cameron Gutman 2017-09-05 21:04:59 -07:00
parent f32a35607b
commit 9b4e7b661b
2 changed files with 26 additions and 31 deletions

View File

@ -21,23 +21,6 @@
<div class="mdl-layout-spacer"></div> <div class="mdl-layout-spacer"></div>
<!-- Navigation --> <!-- Navigation -->
<nav class="mdl-navigation"> <nav class="mdl-navigation">
<div class="nav-menu-parent">
<div id="optimizeMenu">
<button id="selectOptimize" data-value="1" class="mdl-button mdl-js-button">
GFE Optimization
</button>
</div>
<ul class="optimizeMenu mdl-menu mdl-menu--bottom-right mdl-js-menu mdl-js-ripple-effect"
for="selectOptimize">
<li class="mdl-menu__item" data-value="1">GFE Optimization</li>
<li class="mdl-menu__item" data-value="0">No GFE Optimization</li>
</ul>
<div id="optimizeTooltip" class="mdl-tooltip" for="optimizeMenu">
Allow Geforce Experience to optimize game settings for stream
</div>
</div>
<div class="nav-menu-parent"> <div class="nav-menu-parent">
<div id="resolutionMenu"> <div id="resolutionMenu">
<button id="selectResolution" data-value="1280:720" class="mdl-button mdl-js-button"> <button id="selectResolution" data-value="1280:720" class="mdl-button mdl-js-button">
@ -96,6 +79,16 @@
Remote audio Remote audio
</div> </div>
<div class="nav-menu-parent">
<label id="optimizeGamesBtn" class="mdl-icon-toggle mdl-js-icon-toggle mdl-js-ripple-effect" for="optimizeGamesSwitch">
<input type="checkbox" id="optimizeGamesSwitch" class="mdl-icon-toggle__input">
<i class="mdl-icon-toggle__label material-icons">timeline</i>
</label>
<div id="optimizeGamesTooltip" class="mdl-tooltip" for="optimizeGamesBtn">
Allow GeForce Experience to optimize game settings for streaming
</div>
</div>
<button type="button" class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" id="quitCurrentApp" aria-label="Quit current app"> <button type="button" class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" id="quitCurrentApp" aria-label="Quit current app">
<i class="material-icons">remove_circle_outline</i> <i class="material-icons">remove_circle_outline</i>
Quit Current App Quit Current App

View File

@ -12,11 +12,11 @@ function attachListeners() {
changeUiModeForNaClLoad(); changeUiModeForNaClLoad();
$('.resolutionMenu li').on('click', saveResolution); $('.resolutionMenu li').on('click', saveResolution);
$('.optimizeMenu li').on('click', saveOptimize);
$('.framerateMenu li').on('click', saveFramerate); $('.framerateMenu li').on('click', saveFramerate);
$('#bitrateSlider').on('input', updateBitrateField); // input occurs every notch you slide $('#bitrateSlider').on('input', updateBitrateField); // input occurs every notch you slide
//$('#bitrateSlider').on('change', saveBitrate); //FIXME: it seems not working //$('#bitrateSlider').on('change', saveBitrate); //FIXME: it seems not working
$("#remoteAudioEnabledSwitch").on('click', saveRemoteAudio); $("#remoteAudioEnabledSwitch").on('click', saveRemoteAudio);
$('#optimizeGamesSwitch').on('click', saveOptimize);
$('#addHostCell').on('click', addHost); $('#addHostCell').on('click', addHost);
$('#backIcon').on('click', showHostsAndSettingsMode); $('#backIcon').on('click', showHostsAndSettingsMode);
$('#quitCurrentApp').on('click', stopGameWithConfirmation); $('#quitCurrentApp').on('click', stopGameWithConfirmation);
@ -568,7 +568,7 @@ function startGame(host, appID) {
} }
var frameRate = $('#selectFramerate').data('value').toString(); var frameRate = $('#selectFramerate').data('value').toString();
var optimize = $('#selectOptimize').data('value').toString(); var optimize = $("#optimizeGamesSwitch").parent().hasClass('is-checked') ? 1 : 0;
var streamWidth = $('#selectResolution').data('value').split(':')[0]; var streamWidth = $('#selectResolution').data('value').split(':')[0];
var streamHeight = $('#selectResolution').data('value').split(':')[1]; var streamHeight = $('#selectResolution').data('value').split(':')[1];
// we told the user it was in Mbps. We're dirty liars and use Kbps behind their back. // we told the user it was in Mbps. We're dirty liars and use Kbps behind their back.
@ -718,10 +718,13 @@ function saveResolution() {
} }
function saveOptimize() { function saveOptimize() {
var chosenOptimize = $(this).data('value'); // MaterialDesignLight uses the mouseup trigger, so we give it some time to change the class name before
$('#selectOptimize').text($(this).text()).data('value', chosenOptimize); // checking the new state
storeData('optimize', chosenOptimize, null); setTimeout(function() {
updateDefaultBitrate(); var chosenOptimize = $("#optimizeGamesSwitch").parent().hasClass('is-checked');
console.log('%c[index.js, saveOptimize]', 'color: green;', 'Saving optimize state : ' + chosenOptimize);
storeData('optimize', chosenOptimize, null);
}, 100);
} }
function saveFramerate() { function saveFramerate() {
@ -829,17 +832,16 @@ function onWindowLoad(){
} }
}); });
// load stored optimization prefs // load stored optimization prefs
chrome.storage.sync.get('optimize', function(previousValue) { chrome.storage.sync.get('optimize', function(previousValue) {
if(previousValue.optimize != null) { if(previousValue.optimize == null) {
$('.optimizeMenu li').each(function () { document.querySelector('#optimizeGamesBtn').MaterialIconToggle.uncheck();
if ($(this).data('value') === previousValue.optimize) { } else if (previousValue.optimize == false) {
$('#selectOptimize').text($(this).text()).data('value', previousValue.optimize); document.querySelector('#optimizeGamesBtn').MaterialIconToggle.uncheck();
} } else {
}); document.querySelector('#optimizeGamesBtn').MaterialIconToggle.check();
} }
}); });
// load stored bitrate prefs // load stored bitrate prefs
chrome.storage.sync.get('bitrate', function(previousValue) { chrome.storage.sync.get('bitrate', function(previousValue) {