diff --git a/src/UiItems.js b/src/UiItems.js
index f65f4b9..0f49157 100644
--- a/src/UiItems.js
+++ b/src/UiItems.js
@@ -3,6 +3,7 @@ import React from "react";
import Toggle from "material-ui/Toggle";
import SelectField from 'material-ui/SelectField';
import MenuItem from 'material-ui/MenuItem';
+import Slider from 'material-ui/Slider';
import Config from "./config";
import R from "ramda";
@@ -72,3 +73,19 @@ export const dropDown = (state: State, props: ControlUI) => (
{R.values(R.mapObjIndexed(dropDownItem(props.topic), props.options))}
);
+
+const onSliderChange = (state: State, props: ControlUI) =>
+ (event, value) => {
+ if (state.mqtt != null) {
+ state.mqtt.publish(Config.topics[props.topic].command, value.toString());
+ }
+ };
+
+export const slider = (state: State, props: ControlUI) => (
+
+);
diff --git a/src/config.js b/src/config.js
index ad23351..1d077f5 100644
--- a/src/config.js
+++ b/src/config.js
@@ -32,6 +32,13 @@ const config : Config = {
values: { off: "blackout", yellow: "yellow", purple: "purple",
blue: "blue", green: "green", red: "red", random: "random",
cycle: "cycle-random" }
+ },
+ onkyo_volume: {
+ state: "/service/onkyo/status/volume",
+ command: "/service/onkyo/set/volume",
+ value: 0,
+ values: {},
+ parseState: msg => JSON.parse(msg.toString()).val
}
},
controls: {
@@ -109,6 +116,20 @@ const config : Config = {
enableCondition: val => val != "off"
}
]
+ },
+ onkyo: {
+ name: "Onkyo",
+ position: [350, 350],
+ icon: "",
+ ui: [
+ {
+ type: "slider",
+ text: "Volume",
+ topic: "onkyo_volume",
+ min: 0,
+ max: 100
+ }
+ ]
}
}
};
diff --git a/types/types.js b/types/types.js
index f2afd18..f0eb277 100644
--- a/types/types.js
+++ b/types/types.js
@@ -10,7 +10,7 @@ declare type Topic = {
declare type Topics = Map;
declare type ControlUI = {
- type: "toggle" | "dropDown",
+ type: "toggle" | "dropDown" | "slider",
text: string,
topic: string,
@@ -22,7 +22,12 @@ declare type ControlUI = {
toggled?: (val: any) => boolean,
// DROPDOWN optional properties
- options?: Map //options for dropDown
+ options?: Map, //options for dropDown
+
+ // SLIDER optional properties
+ min?: number,
+ max?: number,
+ step?: number
};
declare type Control = {