From fb957926dce6eef995d5a3bcbdb8eb390b130088 Mon Sep 17 00:00:00 2001 From: Joseph Scheuhammer Date: Mon, 24 Apr 2017 16:27:56 -0400 Subject: [PATCH 1/6] GPII-2395: XRandR bridge should provide all posible screen resolutions - Modified the node XRandR add-on to return the available screen resolutions as an array of JSON objects, rather than strings. - Refactored the XRandR bridge code into a fluid component. - Updated the unit tests in light of the above. --- .../xrandr/nodexrandr/nodexrandr.cc | 13 +- .../xrandr/nodexrandr/nodexrandr_tests.js | 20 +-- gpii/node_modules/xrandr/package.json | 3 + .../xrandr/test/xrandrSettingsHandlerTests.js | 114 +++++++++++++++--- gpii/node_modules/xrandr/xrandr_bridge.js | 75 ++++++++---- 5 files changed, 164 insertions(+), 61 deletions(-) diff --git a/gpii/node_modules/xrandr/nodexrandr/nodexrandr.cc b/gpii/node_modules/xrandr/nodexrandr/nodexrandr.cc index 124d48a..b9f4d85 100644 --- a/gpii/node_modules/xrandr/nodexrandr/nodexrandr.cc +++ b/gpii/node_modules/xrandr/nodexrandr/nodexrandr.cc @@ -206,15 +206,14 @@ NAN_METHOD(getDisplays) { } v8::Local available_resolutions = Nan::New(); - char *resolution; for (int j=0; jnmode; j++) { XRRModeInfo *mode = find_mode_by_xid(output_info->modes[j], res); - asprintf(&resolution, "%dx%d", mode->width, mode->height); - available_resolutions->Set(j, Nan::Encode(resolution, - strlen(resolution), - Nan::UTF8)); - free(resolution); - resolution = NULL; + v8::Local aResolution = Nan::New(); + aResolution->Set(Nan::New("width").ToLocalChecked(), + Nan::New(mode->width)); + aResolution->Set(Nan::New("height").ToLocalChecked(), + Nan::New(mode->height)); + available_resolutions->Set(j, aResolution); } output->Set(Nan::New("available_resolutions").ToLocalChecked(), available_resolutions); diff --git a/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js b/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js index 56358be..f91588b 100644 --- a/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js +++ b/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js @@ -20,18 +20,6 @@ var fluid = require("universal"), jqUnit = fluid.require("node-jqunit"), xrandr = require("./build/Release/nodexrandr.node"); -var convert = fluid.registerNamespace("gpii.tests.xrandr.convert"); -convert.toString = function (size) { - return size.width + "x" + size.height; -}; -convert.toSize = function (sizeString) { - var wPos = sizeString.indexOf("x"); - return { - width: parseInt(sizeString.substring(0, wPos), 10), - height: parseInt(sizeString.substring(wPos + 1), 10) - }; -}; - jqUnit.module("GPII Xrandr Module"); jqUnit.test("Running tests for Xrandr Bridge", function () { @@ -57,13 +45,13 @@ jqUnit.test("Running tests for Xrandr Bridge", function () { jqUnit.assertFalse("Checking 'setScreenResolution' with impossible size", xrandr.setScreenResolution(-1, -1)); - // Convert the current resolution to a string, and see if there is a - // different available resolution to test setScreenResolution(). + // See if there is a different available resolution to test + // setScreenResolution(). // - var resolution0 = convert.toString(display.resolution); + var resolution0 = display.resolution; var newResolution = fluid.find(display.available_resolutions, function (aResolution) { if (resolution0 !== aResolution) { - return (convert.toSize(aResolution)); + return aResolution; } }, null); if (newResolution !== null) { diff --git a/gpii/node_modules/xrandr/package.json b/gpii/node_modules/xrandr/package.json index db36442..31531cc 100644 --- a/gpii/node_modules/xrandr/package.json +++ b/gpii/node_modules/xrandr/package.json @@ -3,6 +3,9 @@ "description": "The xrandrBridge is a Node.js implementation of Xrandr.", "version": "0.1.0", "author": "Javier Hernández", + "contributors": [{ + "name": "Joseph Scheuhammer" + }], "bugs": "http://wiki.gpii.net/index.php/Main_Page", "homepage": "http://gpii.net/", "dependencies": {}, diff --git a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js index 936929b..daa3278 100644 --- a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js +++ b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js @@ -2,6 +2,7 @@ * GPII Xrandr Settings Handler Tests * * Copyright 2013 Emergya + * Copyright 2016 OCAD University * * Licensed under the New BSD license. You may not use this file except in * compliance with this License. @@ -20,39 +21,118 @@ var fluid = require("universal"), jqUnit = fluid.require("node-jqunit"); require("xrandr"); +var gpii = fluid.registerNamespace("gpii"); var xrandr = fluid.registerNamespace("gpii.xrandr"); +var xrandrTests = fluid.registerNamespace("gpii.xrandr.tests"); -jqUnit.module("GPII Xrandr Module"); +// Mock settings payload +xrandrTests.payload = { + "org.freedesktop.xrandr": [{ + settings: { + "screen-resolution": {"width": 800, "height": 600} + } + }] +}; -jqUnit.test("Running tests for Xrandr Bridge", function () { - // Check if all required methods are available through the - // Xrandr Settings Handler. - // - var methods = ["getScreenResolution", "setScreenResolution", "get", "set"]; - for (var method in methods) { - jqUnit.assertTrue("Checking availability of method '" + method + "'", - (methods[method] in xrandr)); +xrandrTests.getImplTestData = { + "screen-resolution": { + get: "gpii.xrandr.tests.getScreenResolution", } +}; - var payload = { +gpii.xrandr.tests.getScreenResolution = function () { + var anXRandR = xrandr(); + return anXRandR.getScreenResolution(); +}; + +var XRandR = xrandr(); +jqUnit.module("GPII XRandR Module"); + +jqUnit.test("XRandR Bridge: Get connected display", function () { + var connectedDisplay = XRandR.getConnectedDisplay(); + jqUnit.assertNotNull("Getting connected display", connectedDisplay); + jqUnit.assertEquals("Connected display", "connected", connectedDisplay.status); +}); + +jqUnit.test("XRandR Bridge: Get screen resolution", function () { + var screenResolution = XRandR.getScreenResolution(); + jqUnit.assertNotNull("Getting current screen resolution", screenResolution); + jqUnit.assertNotEquals("Current screen width", 0, screenResolution.width); + jqUnit.assertNotEquals("Current screen height", 0, screenResolution.height); +}); + +jqUnit.test("XRandR Bridge: Available screen resolutions", function () { + var availableReesolutions = XRandR.getAvailableResolutions(); + jqUnit.assertNotNull("Available resoiultions array", availableReesolutions); + jqUnit.assertNotEquals("Number of availableReesolutions", + 0, availableReesolutions.length); +}); + +jqUnit.test("XRandR Bridge: Set screen resolution", function () { + var currentRez = XRandR.getScreenResolution(); + var availableRez = XRandR.getAvailableResolutions(); + var newRez = fluid.copy(currentRez); + if (availableRez.length > 1) { + newRez = availableRez[1]; + } + XRandR.setScreenResolution(newRez); + var sctualRez = XRandR.getScreenResolution(); + jqUnit.assertDeepEq("Set to new resolution", newRez, sctualRez); + + XRandR.setScreenResolution(currentRez); + var sctualRez = XRandR.getScreenResolution(); + jqUnit.assertDeepEq("Reset to original resolution", currentRez, sctualRez); +}); + +jqUnit.test("XRandR Bridge: getImpl()", function () { + // Call without passing a settingsRequest. The current screen resolution + // is expected. + var actualSettings = XRandR.getImpl(); + var screenResolution = XRandR.getScreenResolution(); + var expectedSettings = { + "screen-resolution": { + width: screenResolution.width, + height: screenResolution.height + } + }; + jqUnit.assertDeepEq("Return value of getImpl() with no input", + expectedSettings, actualSettings); + + // Call with a test settingsRequest. + var actualSettings = XRandR.getImpl(xrandrTests.getImplTestData); + var screenResolution = XRandR.getScreenResolution(); + jqUnit.assertDeepEq("Return value of getImpl() with an inpur", + expectedSettings, actualSettings); + +}); + +jqUnit.test("XRandR Bridge: get() with mock settings payload", function () { + var actual = XRandR.get(xrandrTests.payload); + var screenResolution = XRandR.getScreenResolution(); + var expected = { "org.freedesktop.xrandr": [{ - settings: { - "screen-resolution": {"width": 800, "height": 600} + "settings": { + "screen-resolution": { + width: screenResolution.width, + height: screenResolution.height + } } }] }; + jqUnit.assertDeepEq("Return value of get", expected, actual); +}); - var returnPayload = xrandr.set(payload); - +jqUnit.test("XRandR Bridge: set() with mock settings payload", function () { + var returnPayload = XRandR.set(xrandrTests.payload); jqUnit.assertDeepEq("The resolution is being setted well", returnPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"].newValue, - payload["org.freedesktop.xrandr"][0].settings["screen-resolution"]); + xrandrTests.payload["org.freedesktop.xrandr"][0].settings["screen-resolution"]); - var newPayload = fluid.copy(payload); + var newPayload = fluid.copy(xrandrTests.payload); newPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"] = returnPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"].oldValue; - var lastPayload = xrandr.set(newPayload); + var lastPayload = XRandR.set(newPayload); jqUnit.assertDeepEq("The resolution is being restored well", returnPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"].oldValue, diff --git a/gpii/node_modules/xrandr/xrandr_bridge.js b/gpii/node_modules/xrandr/xrandr_bridge.js index b54442f..3bf545d 100644 --- a/gpii/node_modules/xrandr/xrandr_bridge.js +++ b/gpii/node_modules/xrandr/xrandr_bridge.js @@ -23,37 +23,70 @@ var xrandr = require("./nodexrandr/build/Release/nodexrandr.node"); fluid.registerNamespace("gpii.xrandr"); -fluid.defaults("gpii.xrandr.getScreenResolution", { - gradeNames: "fluid.function", - argumentMap: { - } -}); - -fluid.defaults("gpii.xrandr.setScreenResolution", { - gradeNames: "fluid.function", - argumentMap: { - value: 0 +fluid.defaults("gpii.xrandr", { + gradeNames: ["fluid.component"], + invokers: { + getConnectedDisplay: { + funcName: "gpii.xrandr.getConnectedDisplay", + args: [] + }, + getScreenResolution: { + funcName: "gpii.xrandr.getScreenResolution", + args: [] + }, + getAvailableResolutions: { + funcName: "gpii.xrandr.getAvailableResolutions", + args: ["{that}"] + }, + setScreenResolution: { + funcName: "gpii.xrandr.setScreenResolution", + args: ["{that}", "{arguments}.0"] + // { width, height } + }, + getImpl: { + funcName: "gpii.xrandr.getImpl", + args: ["{arguments}.0"] + // settingsRequest payload + }, + get: { + funcName: "gpii.xrandr.get", + args: ["{that}", "{arguments}.0"] + // array of settings + }, + set: { + funcName: "gpii.xrandr.set", + args: ["{that}", "{arguments}.0"] + // array of settings + } } }); -gpii.xrandr.getScreenResolution = function () { +gpii.xrandr.getConnectedDisplay = function () { var displayInfo = xrandr.getDisplays(); - var connectedDisplay = fluid.find_if(displayInfo, function (display) { + return fluid.find_if(displayInfo, function (display) { return display.status === "connected"; }, displayInfo[0]); +}; +gpii.xrandr.getScreenResolution = function () { + var connectedDisplay = gpii.xrandr.getConnectedDisplay(); return { width: connectedDisplay.resolution.width, height: connectedDisplay.resolution.height }; }; -gpii.xrandr.setScreenResolution = function (value) { - var current = gpii.xrandr.getScreenResolution(); - if (JSON.stringify(value) === JSON.stringify(current)) { +gpii.xrandr.getAvailableResolutions = function (that) { + var connectedDisplay = that.getConnectedDisplay(); + return connectedDisplay.available_resolutions; +}; + +gpii.xrandr.setScreenResolution = function (that, size) { + var current = that.getScreenResolution(); + if (fluid.model.diff(size, current)) { return true; } else { - return xrandr.setScreenResolution(value.width, value.height); + return xrandr.setScreenResolution(size.width, size.height); } }; @@ -78,11 +111,11 @@ gpii.xrandr.getImpl = function (settingsRequest) { return settings; }; -gpii.xrandr.get = function (settingsarray) { +gpii.xrandr.get = function (that, settingsarray) { var app = fluid.copy(settingsarray); for (var appId in app) { for (var j = 0; j < app[appId].length; j++) { - var settings = gpii.xrandr.getImpl(app[appId][j].settings); + var settings = that.getImpl(app[appId][j].settings); var noOptions = { settings: settings }; app[appId][j] = noOptions; @@ -91,7 +124,7 @@ gpii.xrandr.get = function (settingsarray) { return app; }; -gpii.xrandr.set = function (settingsarray) { +gpii.xrandr.set = function (that, settingsarray) { var app = fluid.copy(settingsarray); for (var appId in app) { for (var j = 0; j < app[appId].length; j++) { @@ -102,8 +135,8 @@ gpii.xrandr.set = function (settingsarray) { var oldValue; if (settingKey === "screen-resolution") { - oldValue = gpii.xrandr.getScreenResolution(); - gpii.xrandr.setScreenResolution(value); + oldValue = that.getScreenResolution(); + that.setScreenResolution(value); } else { var err = "Invalid key: " + settingKey; fluid.fail(err); From 819237e2119b9ab8c8d15b90f12899a1697fd8eb Mon Sep 17 00:00:00 2001 From: Joseph Scheuhammer Date: Tue, 2 May 2017 15:14:34 -0400 Subject: [PATCH 2/6] GPII-2395: XRandR bridge provides all available screen resolutions Modified "screen-resolution" payload to now contain: - "current-resolution" (width and height) - "available-resolution" (array of widths and heights). --- .../xrandr/test/xrandrSettingsHandlerTests.js | 34 ++++++++++--------- gpii/node_modules/xrandr/xrandr_bridge.js | 28 +++++++++++---- 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js index daa3278..97210f1 100644 --- a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js +++ b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js @@ -68,6 +68,16 @@ jqUnit.test("XRandR Bridge: Available screen resolutions", function () { 0, availableReesolutions.length); }); +jqUnit.test("XRandR Bridge: All screen resolutions", function () { + var current = XRandR.getScreenResolution(); + var available = XRandR.getAvailableResolutions(); + var all = XRandR.getAllScreenResolutions(); + jqUnit.assertDeepEq("All screen resolutions contains current resolution", + current, all["current-resolution"]); + jqUnit.assertDeepEq("All screen resolutions contains available resolution", + available, all["available-resolutions"]); +}); + jqUnit.test("XRandR Bridge: Set screen resolution", function () { var currentRez = XRandR.getScreenResolution(); var availableRez = XRandR.getAvailableResolutions(); @@ -88,35 +98,27 @@ jqUnit.test("XRandR Bridge: getImpl()", function () { // Call without passing a settingsRequest. The current screen resolution // is expected. var actualSettings = XRandR.getImpl(); - var screenResolution = XRandR.getScreenResolution(); - var expectedSettings = { - "screen-resolution": { - width: screenResolution.width, - height: screenResolution.height - } - }; + var screenResolutions = XRandR.getAllScreenResolutions(); + var expectedSettings = {}; + fluid.set(expectedSettings, "screen-resolution", screenResolutions); jqUnit.assertDeepEq("Return value of getImpl() with no input", expectedSettings, actualSettings); // Call with a test settingsRequest. var actualSettings = XRandR.getImpl(xrandrTests.getImplTestData); - var screenResolution = XRandR.getScreenResolution(); - jqUnit.assertDeepEq("Return value of getImpl() with an inpur", + jqUnit.assertDeepEq("Return value of getImpl() with an input", expectedSettings, actualSettings); }); jqUnit.test("XRandR Bridge: get() with mock settings payload", function () { var actual = XRandR.get(xrandrTests.payload); - var screenResolution = XRandR.getScreenResolution(); + var screenResolutions = XRandR.getAllScreenResolutions(); + var resolutionsStruct = {}; + fluid.set(resolutionsStruct, "screen-resolution", screenResolutions); var expected = { "org.freedesktop.xrandr": [{ - "settings": { - "screen-resolution": { - width: screenResolution.width, - height: screenResolution.height - } - } + "settings": resolutionsStruct }] }; jqUnit.assertDeepEq("Return value of get", expected, actual); diff --git a/gpii/node_modules/xrandr/xrandr_bridge.js b/gpii/node_modules/xrandr/xrandr_bridge.js index 3bf545d..1781b82 100644 --- a/gpii/node_modules/xrandr/xrandr_bridge.js +++ b/gpii/node_modules/xrandr/xrandr_bridge.js @@ -19,7 +19,7 @@ var fluid = require("universal"); var gpii = fluid.registerNamespace("gpii"); -var xrandr = require("./nodexrandr/build/Release/nodexrandr.node"); +var nodeXrandr = require("./nodexrandr/build/Release/nodexrandr.node"); fluid.registerNamespace("gpii.xrandr"); @@ -32,12 +32,16 @@ fluid.defaults("gpii.xrandr", { }, getScreenResolution: { funcName: "gpii.xrandr.getScreenResolution", - args: [] + args: ["{that}"] }, getAvailableResolutions: { funcName: "gpii.xrandr.getAvailableResolutions", args: ["{that}"] }, + getAllScreenResolutions: { + funcName: "gpii.xrandr.getAllScreenResolutions", + args: [] + }, setScreenResolution: { funcName: "gpii.xrandr.setScreenResolution", args: ["{that}", "{arguments}.0"] @@ -62,14 +66,14 @@ fluid.defaults("gpii.xrandr", { }); gpii.xrandr.getConnectedDisplay = function () { - var displayInfo = xrandr.getDisplays(); + var displayInfo = nodeXrandr.getDisplays(); return fluid.find_if(displayInfo, function (display) { return display.status === "connected"; }, displayInfo[0]); }; -gpii.xrandr.getScreenResolution = function () { - var connectedDisplay = gpii.xrandr.getConnectedDisplay(); +gpii.xrandr.getScreenResolution = function (that) { + var connectedDisplay = that.getConnectedDisplay(); return { width: connectedDisplay.resolution.width, height: connectedDisplay.resolution.height @@ -81,18 +85,28 @@ gpii.xrandr.getAvailableResolutions = function (that) { return connectedDisplay.available_resolutions; }; +gpii.xrandr.getAllScreenResolutions = function () { + var xrandr = gpii.xrandr(); + var currentResolution = xrandr.getScreenResolution(); + var available = xrandr.getAvailableResolutions(); + return { + "current-resolution" : currentResolution, + "available-resolutions": available + }; +}; + gpii.xrandr.setScreenResolution = function (that, size) { var current = that.getScreenResolution(); if (fluid.model.diff(size, current)) { return true; } else { - return xrandr.setScreenResolution(size.width, size.height); + return nodeXrandr.setScreenResolution(size.width, size.height); } }; gpii.xrandr.allSettings = { "screen-resolution": { - get: "gpii.xrandr.getScreenResolution", + get: "gpii.xrandr.getAllScreenResolutions", set: "gpii.xrandr.setScreenResolution" } }; From 9347ffe59259ca56b20e7fcd547b61959360c964 Mon Sep 17 00:00:00 2001 From: Joseph Scheuhammer Date: Fri, 19 May 2017 10:42:37 -0400 Subject: [PATCH 3/6] GPII-2395: XRandR bridge provides all available screen resolutions Modified to be analagous to the Windows display settings handler. --- .../xrandr/test/xrandrSettingsHandlerTests.js | 20 +++++++++---------- gpii/node_modules/xrandr/xrandr_bridge.js | 12 +++++------ 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js index 97210f1..ba7fffb 100644 --- a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js +++ b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js @@ -73,7 +73,7 @@ jqUnit.test("XRandR Bridge: All screen resolutions", function () { var available = XRandR.getAvailableResolutions(); var all = XRandR.getAllScreenResolutions(); jqUnit.assertDeepEq("All screen resolutions contains current resolution", - current, all["current-resolution"]); + current, all["screen-resolution"]); jqUnit.assertDeepEq("All screen resolutions contains available resolution", available, all["available-resolutions"]); }); @@ -98,27 +98,25 @@ jqUnit.test("XRandR Bridge: getImpl()", function () { // Call without passing a settingsRequest. The current screen resolution // is expected. var actualSettings = XRandR.getImpl(); - var screenResolutions = XRandR.getAllScreenResolutions(); - var expectedSettings = {}; - fluid.set(expectedSettings, "screen-resolution", screenResolutions); + var expectedSettings = XRandR.getAllScreenResolutions(); jqUnit.assertDeepEq("Return value of getImpl() with no input", - expectedSettings, actualSettings); + expectedSettings["screen-resolution"], + actualSettings["screen-resolution"]); // Call with a test settingsRequest. var actualSettings = XRandR.getImpl(xrandrTests.getImplTestData); jqUnit.assertDeepEq("Return value of getImpl() with an input", - expectedSettings, actualSettings); - + expectedSettings["screen-resolution"], + actualSettings["screen-resolution"]); }); jqUnit.test("XRandR Bridge: get() with mock settings payload", function () { var actual = XRandR.get(xrandrTests.payload); - var screenResolutions = XRandR.getAllScreenResolutions(); - var resolutionsStruct = {}; - fluid.set(resolutionsStruct, "screen-resolution", screenResolutions); + var screenResolution = {}; + fluid.set(screenResolution, "screen-resolution", XRandR.getScreenResolution()); var expected = { "org.freedesktop.xrandr": [{ - "settings": resolutionsStruct + "settings": screenResolution }] }; jqUnit.assertDeepEq("Return value of get", expected, actual); diff --git a/gpii/node_modules/xrandr/xrandr_bridge.js b/gpii/node_modules/xrandr/xrandr_bridge.js index 1781b82..6c6220c 100644 --- a/gpii/node_modules/xrandr/xrandr_bridge.js +++ b/gpii/node_modules/xrandr/xrandr_bridge.js @@ -2,6 +2,7 @@ * GPII Node.js Xrandr Bridge * * Copyright 2013 Emergya + * Copyright 2017 Inclusive Design Reserach Centre, OCAD University * * Licensed under the New BSD license. You may not use this file except in * compliance with this License. @@ -32,7 +33,7 @@ fluid.defaults("gpii.xrandr", { }, getScreenResolution: { funcName: "gpii.xrandr.getScreenResolution", - args: ["{that}"] + args: [] }, getAvailableResolutions: { funcName: "gpii.xrandr.getAvailableResolutions", @@ -72,8 +73,8 @@ gpii.xrandr.getConnectedDisplay = function () { }, displayInfo[0]); }; -gpii.xrandr.getScreenResolution = function (that) { - var connectedDisplay = that.getConnectedDisplay(); +gpii.xrandr.getScreenResolution = function () { + var connectedDisplay = gpii.xrandr.getConnectedDisplay(); return { width: connectedDisplay.resolution.width, height: connectedDisplay.resolution.height @@ -90,7 +91,7 @@ gpii.xrandr.getAllScreenResolutions = function () { var currentResolution = xrandr.getScreenResolution(); var available = xrandr.getAvailableResolutions(); return { - "current-resolution" : currentResolution, + "screen-resolution" : currentResolution, "available-resolutions": available }; }; @@ -106,7 +107,7 @@ gpii.xrandr.setScreenResolution = function (that, size) { gpii.xrandr.allSettings = { "screen-resolution": { - get: "gpii.xrandr.getAllScreenResolutions", + get: "gpii.xrandr.getScreenResolution", set: "gpii.xrandr.setScreenResolution" } }; @@ -130,7 +131,6 @@ gpii.xrandr.get = function (that, settingsarray) { for (var appId in app) { for (var j = 0; j < app[appId].length; j++) { var settings = that.getImpl(app[appId][j].settings); - var noOptions = { settings: settings }; app[appId][j] = noOptions; } From d0a0ee4b86944c120ccd90b15412a9807f0f7fdc Mon Sep 17 00:00:00 2001 From: Joseph Scheuhammer Date: Wed, 5 Jul 2017 14:18:58 -0400 Subject: [PATCH 4/6] GPII-2395: XRandR bridge provides all available screen resolutions. Remvoed {that} parameter from get() and set() functions. --- gpii/node_modules/xrandr/xrandr_bridge.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gpii/node_modules/xrandr/xrandr_bridge.js b/gpii/node_modules/xrandr/xrandr_bridge.js index 6c6220c..84ab20b 100644 --- a/gpii/node_modules/xrandr/xrandr_bridge.js +++ b/gpii/node_modules/xrandr/xrandr_bridge.js @@ -55,13 +55,13 @@ fluid.defaults("gpii.xrandr", { }, get: { funcName: "gpii.xrandr.get", - args: ["{that}", "{arguments}.0"] - // array of settings + args: ["{arguments}.0"] + // array of settings }, set: { funcName: "gpii.xrandr.set", - args: ["{that}", "{arguments}.0"] - // array of settings + args: ["{arguments}.0"] + // array of settings } } }); @@ -126,11 +126,11 @@ gpii.xrandr.getImpl = function (settingsRequest) { return settings; }; -gpii.xrandr.get = function (that, settingsarray) { +gpii.xrandr.get = function (settingsarray) { var app = fluid.copy(settingsarray); for (var appId in app) { for (var j = 0; j < app[appId].length; j++) { - var settings = that.getImpl(app[appId][j].settings); + var settings = gpii.xrandr.getImpl(app[appId][j].settings); var noOptions = { settings: settings }; app[appId][j] = noOptions; } @@ -138,7 +138,7 @@ gpii.xrandr.get = function (that, settingsarray) { return app; }; -gpii.xrandr.set = function (that, settingsarray) { +gpii.xrandr.set = function (settingsarray) { var app = fluid.copy(settingsarray); for (var appId in app) { for (var j = 0; j < app[appId].length; j++) { @@ -146,11 +146,12 @@ gpii.xrandr.set = function (that, settingsarray) { for (var settingKey in settings) { var value = settings[settingKey]; + var xrandr = gpii.xrandr(); var oldValue; if (settingKey === "screen-resolution") { - oldValue = that.getScreenResolution(); - that.setScreenResolution(value); + oldValue = xrandr.getScreenResolution(); + xrandr.setScreenResolution(value); } else { var err = "Invalid key: " + settingKey; fluid.fail(err); From df98ed5e137e260124c8e572444e92b9079a7dc6 Mon Sep 17 00:00:00 2001 From: Joseph Scheuhammer Date: Thu, 22 Feb 2018 10:42:35 -0500 Subject: [PATCH 5/6] GPII-2568: Updated references to "universal" with "gpii-universal" --- gpii/node_modules/alsa/alsa_bridge.js | 2 +- gpii/node_modules/alsa/nodealsa/nodealsa_tests.js | 2 +- gpii/node_modules/alsa/test/alsaSettingsHandlerTests.js | 2 +- gpii/node_modules/gsettingsBridge/gsettings_bridge.js | 2 +- gpii/node_modules/gsettingsBridge/tests/gsettingsTests.js | 2 +- gpii/node_modules/orca/orcaSettingsHandler.js | 2 +- gpii/node_modules/orca/test/orcaSettingsHandlerTests.js | 2 +- gpii/node_modules/packagekit/index.js | 2 +- .../packagekit/nodepackagekit/nodepackagekit_test.js | 2 +- gpii/node_modules/packagekit/packageKitDeviceReporter.js | 2 +- gpii/node_modules/packagekit/test/all-tests.js | 2 +- .../packagekit/test/packageKitDeviceReporterTests.js | 2 +- gpii/node_modules/packagekit/test/packageKitModuleTests.js | 2 +- gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js | 2 +- gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js | 2 +- gpii/node_modules/xrandr/xrandr_bridge.js | 2 +- index.js | 2 +- package.json | 4 ++-- tests/AcceptanceTests.js | 6 +++--- 19 files changed, 22 insertions(+), 22 deletions(-) diff --git a/gpii/node_modules/alsa/alsa_bridge.js b/gpii/node_modules/alsa/alsa_bridge.js index a80f5ac..cea1387 100644 --- a/gpii/node_modules/alsa/alsa_bridge.js +++ b/gpii/node_modules/alsa/alsa_bridge.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"); +var fluid = require("gpii-universal"); var gpii = fluid.registerNamespace("gpii"); var alsa = require("./nodealsa/build/Release/nodealsa.node"); diff --git a/gpii/node_modules/alsa/nodealsa/nodealsa_tests.js b/gpii/node_modules/alsa/nodealsa/nodealsa_tests.js index bd6c02c..1d74142 100644 --- a/gpii/node_modules/alsa/nodealsa/nodealsa_tests.js +++ b/gpii/node_modules/alsa/nodealsa/nodealsa_tests.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), jqUnit = fluid.require("node-jqunit"), alsa = require("./build/Release/nodealsa.node"); diff --git a/gpii/node_modules/alsa/test/alsaSettingsHandlerTests.js b/gpii/node_modules/alsa/test/alsaSettingsHandlerTests.js index 0f93256..d940fec 100644 --- a/gpii/node_modules/alsa/test/alsaSettingsHandlerTests.js +++ b/gpii/node_modules/alsa/test/alsaSettingsHandlerTests.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), jqUnit = fluid.require("node-jqunit"); require("alsa"); diff --git a/gpii/node_modules/gsettingsBridge/gsettings_bridge.js b/gpii/node_modules/gsettingsBridge/gsettings_bridge.js index 8ce8681..711677c 100644 --- a/gpii/node_modules/gsettingsBridge/gsettings_bridge.js +++ b/gpii/node_modules/gsettingsBridge/gsettings_bridge.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"); +var fluid = require("gpii-universal"); var gpii = fluid.registerNamespace("gpii"); var nodeGSettings = require("./nodegsettings/build/Release/nodegsettings.node"); diff --git a/gpii/node_modules/gsettingsBridge/tests/gsettingsTests.js b/gpii/node_modules/gsettingsBridge/tests/gsettingsTests.js index d052953..5928882 100644 --- a/gpii/node_modules/gsettingsBridge/tests/gsettingsTests.js +++ b/gpii/node_modules/gsettingsBridge/tests/gsettingsTests.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), gpii = fluid.registerNamespace("gpii"), jqUnit = fluid.require("node-jqunit"); diff --git a/gpii/node_modules/orca/orcaSettingsHandler.js b/gpii/node_modules/orca/orcaSettingsHandler.js index d52337c..683d850 100644 --- a/gpii/node_modules/orca/orcaSettingsHandler.js +++ b/gpii/node_modules/orca/orcaSettingsHandler.js @@ -18,7 +18,7 @@ "use strict"; -var fluid = require("universal"); +var fluid = require("gpii-universal"); var gpii = fluid.registerNamespace("gpii"); var fs = require("fs"); var spawn = require("child_process").spawn; diff --git a/gpii/node_modules/orca/test/orcaSettingsHandlerTests.js b/gpii/node_modules/orca/test/orcaSettingsHandlerTests.js index fef1f70..838b97e 100644 --- a/gpii/node_modules/orca/test/orcaSettingsHandlerTests.js +++ b/gpii/node_modules/orca/test/orcaSettingsHandlerTests.js @@ -17,7 +17,7 @@ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), jqUnit = fluid.require("node-jqunit"); require("orca"); diff --git a/gpii/node_modules/packagekit/index.js b/gpii/node_modules/packagekit/index.js index e497b7d..dddf29e 100644 --- a/gpii/node_modules/packagekit/index.js +++ b/gpii/node_modules/packagekit/index.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"); +var fluid = require("gpii-universal"); require("./packageKitDeviceReporter.js"); diff --git a/gpii/node_modules/packagekit/nodepackagekit/nodepackagekit_test.js b/gpii/node_modules/packagekit/nodepackagekit/nodepackagekit_test.js index df58763..3115834 100644 --- a/gpii/node_modules/packagekit/nodepackagekit/nodepackagekit_test.js +++ b/gpii/node_modules/packagekit/nodepackagekit/nodepackagekit_test.js @@ -14,7 +14,7 @@ https://github.com/gpii/universal/LICENSE.txt "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), jqUnit = fluid.require("node-jqunit"), gpii = fluid.registerNamespace("gpii"), packagekit = require("./build/Release/nodepackagekit.node"); diff --git a/gpii/node_modules/packagekit/packageKitDeviceReporter.js b/gpii/node_modules/packagekit/packageKitDeviceReporter.js index 3f75954..eda347e 100644 --- a/gpii/node_modules/packagekit/packageKitDeviceReporter.js +++ b/gpii/node_modules/packagekit/packageKitDeviceReporter.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"); +var fluid = require("gpii-universal"); var gpii = fluid.registerNamespace("gpii"); var packageKit = require("./nodepackagekit/build/Release/nodepackagekit.node"); diff --git a/gpii/node_modules/packagekit/test/all-tests.js b/gpii/node_modules/packagekit/test/all-tests.js index f5e88b9..d5e54cc 100644 --- a/gpii/node_modules/packagekit/test/all-tests.js +++ b/gpii/node_modules/packagekit/test/all-tests.js @@ -11,7 +11,7 @@ */ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), kettle = fluid.require("kettle"); kettle.loadTestingSupport(); diff --git a/gpii/node_modules/packagekit/test/packageKitDeviceReporterTests.js b/gpii/node_modules/packagekit/test/packageKitDeviceReporterTests.js index 079057e..8bb845d 100644 --- a/gpii/node_modules/packagekit/test/packageKitDeviceReporterTests.js +++ b/gpii/node_modules/packagekit/test/packageKitDeviceReporterTests.js @@ -15,7 +15,7 @@ */ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), gpii = fluid.registerNamespace("gpii"), jqUnit = fluid.require("node-jqunit"); diff --git a/gpii/node_modules/packagekit/test/packageKitModuleTests.js b/gpii/node_modules/packagekit/test/packageKitModuleTests.js index 5d95122..373ffe9 100644 --- a/gpii/node_modules/packagekit/test/packageKitModuleTests.js +++ b/gpii/node_modules/packagekit/test/packageKitModuleTests.js @@ -15,7 +15,7 @@ */ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), jqUnit = fluid.require("node-jqunit"); require("packagekit"); diff --git a/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js b/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js index 56358be..55068af 100644 --- a/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js +++ b/gpii/node_modules/xrandr/nodexrandr/nodexrandr_tests.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), jqUnit = fluid.require("node-jqunit"), xrandr = require("./build/Release/nodexrandr.node"); diff --git a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js index 936929b..34c0810 100644 --- a/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js +++ b/gpii/node_modules/xrandr/test/xrandrSettingsHandlerTests.js @@ -16,7 +16,7 @@ "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), jqUnit = fluid.require("node-jqunit"); require("xrandr"); diff --git a/gpii/node_modules/xrandr/xrandr_bridge.js b/gpii/node_modules/xrandr/xrandr_bridge.js index b54442f..4154afc 100644 --- a/gpii/node_modules/xrandr/xrandr_bridge.js +++ b/gpii/node_modules/xrandr/xrandr_bridge.js @@ -17,7 +17,7 @@ "use strict"; -var fluid = require("universal"); +var fluid = require("gpii-universal"); var gpii = fluid.registerNamespace("gpii"); var xrandr = require("./nodexrandr/build/Release/nodexrandr.node"); diff --git a/index.js b/index.js index cb2ad0b..4aa225b 100644 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ "use strict"; -var fluid = require("universal"); +var fluid = require("gpii-universal"); fluid.module.register("gpii-linux", __dirname, require); diff --git a/package.json b/package.json index ce76527..d0714cb 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bugs": "http://issues.gpii.net/browse/GPII", "homepage": "http://gpii.net/", "dependencies": { - "universal": "GPII/universal#1a3434d970cb484956eb18310683bdfe473123d6" + "gpii-universal": "GPII/universal#36433633d01e59028ffefe0b4fcc59ef7d3886b2" }, "devDependencies": { "grunt": "1.0.1", @@ -15,7 +15,7 @@ "grunt-shell": "1.3.0", "nan": "2.4.0" }, - "license" : "BSD-3-Clause", + "license": "BSD-3-Clause", "keywords": [ "gpii", "accessibility", diff --git a/tests/AcceptanceTests.js b/tests/AcceptanceTests.js index d1ca5f8..19baac2 100644 --- a/tests/AcceptanceTests.js +++ b/tests/AcceptanceTests.js @@ -16,7 +16,7 @@ Seventh Framework Programme (FP7/2007-2013) under grant agreement no. 289016. "use strict"; -var fluid = require("universal"), +var fluid = require("gpii-universal"), gpii = fluid.registerNamespace("gpii"); gpii.loadTestingSupport(); @@ -25,7 +25,7 @@ fluid.registerNamespace("gpii.acceptanceTesting.linux"); require("../index.js"); -var baseDir = fluid.module.resolvePath("%universal/tests/"); -var linuxFiles = fluid.require("%universal/tests/platform/index-linux.js"); +var baseDir = fluid.module.resolvePath("%gpii-universal/tests/"); +var linuxFiles = fluid.require("%gpii-universal/tests/platform/index-linux.js"); gpii.test.runSuitesWithFiltering(linuxFiles, baseDir, ["gpii.test.acceptance.testCaseHolder"]); From 814998dd02d2f481f672971dc610b54ac9525525 Mon Sep 17 00:00:00 2001 From: Joseph Scheuhammer Date: Thu, 22 Feb 2018 14:13:51 -0500 Subject: [PATCH 6/6] GPII-2568: Changed gpii-universal dependency to reference latest npm version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d0714cb..941136c 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bugs": "http://issues.gpii.net/browse/GPII", "homepage": "http://gpii.net/", "dependencies": { - "gpii-universal": "GPII/universal#36433633d01e59028ffefe0b4fcc59ef7d3886b2" + "gpii-universal": "0.3.0-dev.20180221T093422Z.50833c1" }, "devDependencies": { "grunt": "1.0.1",