diff --git a/.gitignore b/.gitignore
index 6a2ba52..b3261e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
/RemoteControlPC-Desktop/build/
/RemoteControlPC-Studio/app/build/
/RemoteControlPC-JavaFXML/build/
+RemoteControlPC-JavaFXML/src/out/
+RemoteControlPC-JavaFXML/dist/javadoc/
*~
@@ -13,3 +15,11 @@
/RemoteControlPC-Studio/.idea/workspace.xml
/RemoteControlPC-Studio/.gradle/
+
+RemoteControlPC-JavaFXML/compil\.sh
+
+RemoteControlPC-JavaFXML/run\.sh
+
+RemoteControlPC-Studio/.idea/*
+
+*.html
diff --git a/GPATH b/GPATH
new file mode 100644
index 0000000..948fdb2
Binary files /dev/null and b/GPATH differ
diff --git a/GRTAGS b/GRTAGS
new file mode 100644
index 0000000..b9a76db
Binary files /dev/null and b/GRTAGS differ
diff --git a/GTAGS b/GTAGS
new file mode 100644
index 0000000..9b3aaa3
Binary files /dev/null and b/GTAGS differ
diff --git a/RemoteControlPC-JavaFXML/NirCmd.chm b/RemoteControlPC-JavaFXML/NirCmd.chm
new file mode 100644
index 0000000..458a0cd
Binary files /dev/null and b/RemoteControlPC-JavaFXML/NirCmd.chm differ
diff --git a/RemoteControlPC-JavaFXML/brightness b/RemoteControlPC-JavaFXML/brightness
new file mode 100644
index 0000000..b711394
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/brightness
@@ -0,0 +1 @@
+3520.8428
diff --git a/RemoteControlPC-JavaFXML/brightness.sh b/RemoteControlPC-JavaFXML/brightness.sh
new file mode 100755
index 0000000..e476d9c
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/brightness.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+dbus-send --session --type=method_call --dest="org.gnome.SettingsDaemon.Power" /org/gnome/SettingsDaemon/Power org.freedesktop.DBus.Properties.Set string:"org.gnome.SettingsDaemon.Power.Screen" string:"Brightness" variant:int32:$1
diff --git a/RemoteControlPC-JavaFXML/compil.sh b/RemoteControlPC-JavaFXML/compil.sh
new file mode 100755
index 0000000..2c403c5
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/compil.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+
+
+JAVA_HOME=/usr/local/jdk1.8.0_151/ ant -f build.xml
diff --git a/RemoteControlPC-JavaFXML/dist/NirCmd.chm b/RemoteControlPC-JavaFXML/dist/NirCmd.chm
new file mode 100644
index 0000000..458a0cd
Binary files /dev/null and b/RemoteControlPC-JavaFXML/dist/NirCmd.chm differ
diff --git a/RemoteControlPC-JavaFXML/dist/RemoteControlPC.html b/RemoteControlPC-JavaFXML/dist/RemoteControlPC.html
index 6fb25fd..d4fbac6 100644
--- a/RemoteControlPC-JavaFXML/dist/RemoteControlPC.html
+++ b/RemoteControlPC-JavaFXML/dist/RemoteControlPC.html
@@ -4,7 +4,15 @@
function launchApplication(jnlpfile) {
dtjava.launch( {
url : 'RemoteControlPC.jnlp',
- jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9IjczOTI1IiBkb3dubG9hZD0iZWFnZXIiIC8+CiAgICA8amFyIGhyZWY9ImxpYi9SZW1vdGVDb250cm9sUEMtTGlicmFyaWVzLmphciIgc2l6ZT0iMTY1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogIDwvcmVzb3VyY2VzPgogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iUmVtb3RlQ29udHJvbFBDIiA+CiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSI4LjArIi8+CiAgPC9hcHBsZXQtZGVzYz4KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icmVtb3RlY29udHJvbHBjLlJlbW90ZUNvbnRyb2xQQyIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgLz4KICA8dXBkYXRlIGNoZWNrPSJhbHdheXMiLz4KPC9qbmxwPgo='
+<<<<<<< Updated upstream
+<<<<<<< HEAD
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9Ijc3MjE4IiBkb3dubG9hZD0iZWFnZXIiIC8+CiAgICA8amFyIGhyZWY9ImxpYi9SZW1vdGVDb250cm9sUEMtTGlicmFyaWVzLmphciIgc2l6ZT0iMTY1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogIDwvcmVzb3VyY2VzPgogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iUmVtb3RlQ29udHJvbFBDIiA+CiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSI4LjArIi8+CiAgPC9hcHBsZXQtZGVzYz4KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icmVtb3RlY29udHJvbHBjLlJlbW90ZUNvbnRyb2xQQyIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgLz4KICA8dXBkYXRlIGNoZWNrPSJhbHdheXMiLz4KPC9qbmxwPgo='
+=======
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9IjE3Mjk1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogICAgPGphciBocmVmPSJsaWIvUmVtb3RlQ29udHJvbFBDLUxpYnJhcmllcy5qYXIiIHNpemU9IjE2NTgiIGRvd25sb2FkPSJlYWdlciIgLz4KICA8L3Jlc291cmNlcz4KICA8YXBwbGV0LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJjb20uamF2YWZ4Lm1haW4uTm9KYXZhRlhGYWxsYmFjayIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgPgogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iOC4wKyIvPgogIDwvYXBwbGV0LWRlc2M+CiAgPGpmeDpqYXZhZngtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9InJlbW90ZWNvbnRyb2xwYy5SZW1vdGVDb250cm9sUEMiICBuYW1lPSJSZW1vdGVDb250cm9sUEMiIC8+CiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+Cjwvam5scD4K'
+>>>>>>> shortcut
+=======
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9Ijc3NTU1IiBkb3dubG9hZD0iZWFnZXIiIC8+CiAgICA8amFyIGhyZWY9ImxpYi9SZW1vdGVDb250cm9sUEMtTGlicmFyaWVzLmphciIgc2l6ZT0iMTY1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogIDwvcmVzb3VyY2VzPgogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iUmVtb3RlQ29udHJvbFBDIiA+CiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSI4LjArIi8+CiAgPC9hcHBsZXQtZGVzYz4KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icmVtb3RlY29udHJvbHBjLlJlbW90ZUNvbnRyb2xQQyIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgLz4KICA8dXBkYXRlIGNoZWNrPSJhbHdheXMiLz4KPC9qbmxwPgo='
+>>>>>>> Stashed changes
},
{
javafx : '8.0+'
@@ -24,7 +32,15 @@
placeholder : 'javafx-app-placeholder',
width : '800',
height : '600',
- jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9IjczOTI1IiBkb3dubG9hZD0iZWFnZXIiIC8+CiAgICA8amFyIGhyZWY9ImxpYi9SZW1vdGVDb250cm9sUEMtTGlicmFyaWVzLmphciIgc2l6ZT0iMTY1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogIDwvcmVzb3VyY2VzPgogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iUmVtb3RlQ29udHJvbFBDIiA+CiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSI4LjArIi8+CiAgPC9hcHBsZXQtZGVzYz4KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icmVtb3RlY29udHJvbHBjLlJlbW90ZUNvbnRyb2xQQyIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgLz4KICA8dXBkYXRlIGNoZWNrPSJhbHdheXMiLz4KPC9qbmxwPgo='
+<<<<<<< Updated upstream
+<<<<<<< HEAD
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9Ijc3MjE4IiBkb3dubG9hZD0iZWFnZXIiIC8+CiAgICA8amFyIGhyZWY9ImxpYi9SZW1vdGVDb250cm9sUEMtTGlicmFyaWVzLmphciIgc2l6ZT0iMTY1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogIDwvcmVzb3VyY2VzPgogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iUmVtb3RlQ29udHJvbFBDIiA+CiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSI4LjArIi8+CiAgPC9hcHBsZXQtZGVzYz4KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icmVtb3RlY29udHJvbHBjLlJlbW90ZUNvbnRyb2xQQyIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgLz4KICA8dXBkYXRlIGNoZWNrPSJhbHdheXMiLz4KPC9qbmxwPgo='
+=======
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9IjE3Mjk1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogICAgPGphciBocmVmPSJsaWIvUmVtb3RlQ29udHJvbFBDLUxpYnJhcmllcy5qYXIiIHNpemU9IjE2NTgiIGRvd25sb2FkPSJlYWdlciIgLz4KICA8L3Jlc291cmNlcz4KICA8YXBwbGV0LWRlc2MgIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBtYWluLWNsYXNzPSJjb20uamF2YWZ4Lm1haW4uTm9KYXZhRlhGYWxsYmFjayIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgPgogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iOC4wKyIvPgogIDwvYXBwbGV0LWRlc2M+CiAgPGpmeDpqYXZhZngtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9InJlbW90ZWNvbnRyb2xwYy5SZW1vdGVDb250cm9sUEMiICBuYW1lPSJSZW1vdGVDb250cm9sUEMiIC8+CiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+Cjwvam5scD4K'
+>>>>>>> shortcut
+=======
+ jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9qYXZhZnguY29tIiBocmVmPSJSZW1vdGVDb250cm9sUEMuam5scCI+CiAgPGluZm9ybWF0aW9uPgogICAgPHRpdGxlPlJlbW90ZUNvbnRyb2xQQzwvdGl0bGU+CiAgICA8dmVuZG9yPnZhcnVuPC92ZW5kb3I+CiAgICA8ZGVzY3JpcHRpb24+bnVsbDwvZGVzY3JpcHRpb24+CiAgICA8b2ZmbGluZS1hbGxvd2VkLz4KICA8L2luZm9ybWF0aW9uPgogIDxyZXNvdXJjZXM+CiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+CiAgICA8amFyIGhyZWY9IlJlbW90ZUNvbnRyb2xQQy5qYXIiIHNpemU9Ijc3NTU1IiBkb3dubG9hZD0iZWFnZXIiIC8+CiAgICA8amFyIGhyZWY9ImxpYi9SZW1vdGVDb250cm9sUEMtTGlicmFyaWVzLmphciIgc2l6ZT0iMTY1OCIgZG93bmxvYWQ9ImVhZ2VyIiAvPgogIDwvcmVzb3VyY2VzPgogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iUmVtb3RlQ29udHJvbFBDIiA+CiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSI4LjArIi8+CiAgPC9hcHBsZXQtZGVzYz4KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icmVtb3RlY29udHJvbHBjLlJlbW90ZUNvbnRyb2xQQyIgIG5hbWU9IlJlbW90ZUNvbnRyb2xQQyIgLz4KICA8dXBkYXRlIGNoZWNrPSJhbHdheXMiLz4KPC9qbmxwPgo='
+>>>>>>> Stashed changes
},
{
javafx : '8.0+'
diff --git a/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jar b/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jar
index 46d0996..5bed5a2 100644
Binary files a/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jar and b/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jar differ
diff --git a/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jnlp b/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jnlp
index 593e740..739bfff 100644
--- a/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jnlp
+++ b/RemoteControlPC-JavaFXML/dist/RemoteControlPC.jnlp
@@ -8,7 +8,15 @@
-
+<<<<<<< Updated upstream
+<<<<<<< HEAD
+
+=======
+
+>>>>>>> shortcut
+=======
+
+>>>>>>> Stashed changes
diff --git a/RemoteControlPC-JavaFXML/dist/brightness b/RemoteControlPC-JavaFXML/dist/brightness
new file mode 100644
index 0000000..b711394
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/dist/brightness
@@ -0,0 +1 @@
+3520.8428
diff --git a/RemoteControlPC-JavaFXML/dist/nircmd.exe b/RemoteControlPC-JavaFXML/dist/nircmd.exe
new file mode 100644
index 0000000..d332304
Binary files /dev/null and b/RemoteControlPC-JavaFXML/dist/nircmd.exe differ
diff --git a/RemoteControlPC-JavaFXML/dist/nircmdc.exe b/RemoteControlPC-JavaFXML/dist/nircmdc.exe
new file mode 100644
index 0000000..4865bd1
Binary files /dev/null and b/RemoteControlPC-JavaFXML/dist/nircmdc.exe differ
diff --git a/RemoteControlPC-JavaFXML/dist/web-files/dtjava.js b/RemoteControlPC-JavaFXML/dist/web-files/dtjava.js
index 432bb2a..96edbef 100644
--- a/RemoteControlPC-JavaFXML/dist/web-files/dtjava.js
+++ b/RemoteControlPC-JavaFXML/dist/web-files/dtjava.js
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
@@ -171,16 +171,16 @@ var dtjava = function() {
var edge = false;
var noActiveX = false;
edge = (navigator.userAgent.match(/Edge/i) != null);
-
+
// If IE and Windows 8 or Windows 8.1 then check for Metro mode
if(ie && navigator.userAgent.match(/Windows NT 6\.[23]/i) != null) {
try {
// try to create a known ActiveX object
new ActiveXObject("htmlfile");
} catch(e) {
- // ActiveX is disabled or not supported.
+ // ActiveX is disabled or not supported.
noActiveX = true;
- }
+ }
}
if(edge || noActiveX) {
@@ -208,7 +208,7 @@ var dtjava = function() {
// trim() is not supported by IE10 and before
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function() {
- return this.replace(/^\s+|\s+$/g, '');
+ return this.replace(/^\s+|\s+$/g, '');
}
}
@@ -247,7 +247,7 @@ var dtjava = function() {
if (m.indexOf("application/x-java-applet;version") != -1 && m.indexOf('=') != -1) {
var v = m.substring(m.indexOf('=') + 1);
// Use the existing version comparison mechanism to ensure that
- // the latest JRE is selected ( "versionA"<="VersionB" equals to
+ // the latest JRE is selected ( "versionA"<="VersionB" equals to
// versionCheck("versionA+","versionB") returns "true")
if(jre == null || versionCheck(jre + "+", v)){
jre = v;
@@ -263,7 +263,7 @@ var dtjava = function() {
}
}
}
-
+
return {haveDom:dom, wk:webkit, ie:ie, win:windows,
linux:linux, mac:mac, op: opera, chrome:chrome, edge:edge,
jre:jre, deploy:deploy, fx:fx, noPluginWebBrowser:noPluginWebBrowser,
@@ -282,7 +282,7 @@ var dtjava = function() {
divTag.id = "messagebox";
divTag.setAttribute('style', mbStyle);
divTag.innerHTML = messageBox;
- document.body.appendChild(divTag);
+ document.body.appendChild(divTag);
}
//partially derived from swfobject.js
@@ -390,7 +390,7 @@ var dtjava = function() {
installNativePlugin();
}
}
-
+
function getAbsoluteUrl(jnlp){
var absoluteUrl;
if(isAbsoluteUrl(jnlp)) {
@@ -407,7 +407,7 @@ var dtjava = function() {
function launchWithJnlpProtocol(jnlp) {
document.location="jnlp:"+ getAbsoluteUrl(jnlp);
}
-
+
function isAbsoluteUrl(url){
var protocols = ["http://", "https://", "file://"];
@@ -2743,7 +2743,7 @@ var dtjava = function() {
}
}
if (notNull(platform.jvmargs)) {
- sparams["java_arguments"] = platform.jvmargs;
+ sparams["java_arguments"] = listToString(platform.jvmargs);
}
//prepare parameters first
diff --git a/RemoteControlPC-JavaFXML/nbproject/UPDATED.TXT b/RemoteControlPC-JavaFXML/nbproject/UPDATED.TXT
new file mode 100644
index 0000000..2e407dc
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/nbproject/UPDATED.TXT
@@ -0,0 +1,23 @@
+============================================
+Project RemoteControlPC build script updated
+============================================
+
+Project build script file jfx-impl.xml in nbproject sub-directory has not been recognized
+as compliant with this version of NetBeans JavaFX support module. To ensure correct
+and complete functionality within this NetBeans installation the script file has been
+backed up to jfx-impl_backup.xml and then updated to the currently supported state.
+
+FX Project build script auto-update may be triggered on project open either after
+NetBeans installation update or by manual changes in jfx-impl.xml. Please note that
+changing jfx-impl.xml manually is not recommended. Any build customization code should
+be placed only in build.xml in project root directory.
+
+Remark: The auto-update mechanism can be disabled by setting property
+javafx.disable.autoupdate=true
+Automatic opening of this notification when project files are updated can be disabled by setting property
+javafx.disable.autoupdate.notification=true
+(in build.properties, private.properties or project.properties).
+
+Remark: Files nbproject/jfx-impl_backup*.xml and this file nbproject/UPDATED.TXT
+are not used when building the project and can be freely deleted.
+
diff --git a/RemoteControlPC-JavaFXML/nbproject/build-impl.xml b/RemoteControlPC-JavaFXML/nbproject/build-impl.xml
index 86ef6b6..5a93a7e 100644
--- a/RemoteControlPC-JavaFXML/nbproject/build-impl.xml
+++ b/RemoteControlPC-JavaFXML/nbproject/build-impl.xml
@@ -47,8 +47,8 @@ is divided into following sections:
-
-
+
+
@@ -77,7 +77,7 @@ is divided into following sections:
-
+
@@ -157,6 +157,7 @@ is divided into following sections:
+
@@ -192,7 +193,12 @@ is divided into following sections:
-
+
+
+
+
+
+
@@ -218,6 +224,7 @@ is divided into following sections:
+
@@ -694,7 +701,7 @@ is divided into following sections:
-
+
@@ -769,7 +776,7 @@ is divided into following sections:
-
+
@@ -796,7 +803,7 @@ is divided into following sections:
-
+
@@ -835,7 +842,7 @@ is divided into following sections:
-
+
@@ -847,7 +854,7 @@ is divided into following sections:
-
+
@@ -970,15 +977,15 @@ is divided into following sections:
-
+
-
+
-
+
@@ -986,7 +993,7 @@ is divided into following sections:
-
+
@@ -1181,7 +1188,7 @@ is divided into following sections:
Must select one file in the IDE or set run.class
-
+
Must select one file in the IDE or set applet.url
diff --git a/RemoteControlPC-JavaFXML/nbproject/genfiles.properties b/RemoteControlPC-JavaFXML/nbproject/genfiles.properties
index 24e8893..3345c38 100644
--- a/RemoteControlPC-JavaFXML/nbproject/genfiles.properties
+++ b/RemoteControlPC-JavaFXML/nbproject/genfiles.properties
@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=8064a381@1.75.2.48
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=99f11c38
-nbproject/build-impl.xml.script.CRC32=f6e09f2b
-nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48
+nbproject/build-impl.xml.script.CRC32=b79f1a35
+nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48
diff --git a/RemoteControlPC-JavaFXML/nbproject/jfx-impl.xml b/RemoteControlPC-JavaFXML/nbproject/jfx-impl.xml
index a178f19..575cf06 100644
--- a/RemoteControlPC-JavaFXML/nbproject/jfx-impl.xml
+++ b/RemoteControlPC-JavaFXML/nbproject/jfx-impl.xml
@@ -327,26 +327,48 @@
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
@@ -1825,6 +1847,25 @@
// manifest
var man = jar.createManifest();
+ var userManifestPath = project.getProperty("manifest.file");
+ if (userManifestPath) {
+ var userManifestFile = project.resolveFile(userManifestPath);
+ if (userManifestFile.isFile()) {
+ var manifestEncoding = project.getProperty("manifest.encoding");
+ var userManifestReader = manifestEncoding ?
+ new java.io.InputStreamReader(
+ new java.io.FileInputStream(userManifestFile),
+ manifestEncoding) :
+ new java.io.InputStreamReader(
+ new java.io.FileInputStream(userManifestFile));
+ try {
+ var userManifest = new org.apache.tools.ant.taskdefs.Manifest(userManifestReader);
+ man.merge(userManifest);
+ } finally {
+ userManifestReader.close();
+ }
+ }
+ }
var a1val = new String(project.getProperty("application.vendor"));
var a1 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
a1.setName("Implementation-Vendor");
@@ -3678,6 +3719,7 @@
+
@@ -3816,7 +3858,7 @@
-
+
diff --git a/RemoteControlPC-JavaFXML/nbproject/jfx-impl_backup.xml b/RemoteControlPC-JavaFXML/nbproject/jfx-impl_backup.xml
new file mode 100644
index 0000000..a178f19
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/nbproject/jfx-impl_backup.xml
@@ -0,0 +1,4007 @@
+
+
+
+
+ JavaFX-specific Ant calls
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${cssfileslist}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ self.addMappedName(
+ (source.indexOf("jfxrt.jar") >= 0) ||
+ (source.indexOf("deploy.jar") >= 0) ||
+ (source.indexOf("javaws.jar") >= 0) ||
+ (source.indexOf("plugin.jar") >= 0)
+ ? "" : source
+ );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RemoteControlPC-JavaFXML/nbproject/private/private.properties b/RemoteControlPC-JavaFXML/nbproject/private/private.properties
index 15fac6f..44f0f0f 100644
--- a/RemoteControlPC-JavaFXML/nbproject/private/private.properties
+++ b/RemoteControlPC-JavaFXML/nbproject/private/private.properties
@@ -9,4 +9,4 @@ javadoc.preview=true
javafx.run.as=standalone
javafx.run.inbrowser=
javafx.run.inbrowser.path=
-user.properties.file=/home/varun/.netbeans/8.0.2/build.properties
+user.properties.file=/home/david/.netbeans/8.2/build.properties
diff --git a/RemoteControlPC-JavaFXML/nbproject/private/private.xml b/RemoteControlPC-JavaFXML/nbproject/private/private.xml
index 19b4fbd..f6523b8 100644
--- a/RemoteControlPC-JavaFXML/nbproject/private/private.xml
+++ b/RemoteControlPC-JavaFXML/nbproject/private/private.xml
@@ -3,13 +3,8 @@
- file:/home/varun/Desktop/Github/Remote-Control-PC/RemoteControlPC-JavaFXML/src/filesharing/ReceiveFile.java
- file:/home/varun/Desktop/Github/Remote-Control-PC/RemoteControlPC-JavaFXML/manifest.mf
- file:/home/varun/Desktop/Github/Remote-Control-PC/RemoteControlPC-JavaFXML/src/remotecontrolpc/Server.java
- file:/home/varun/Desktop/Github/Remote-Control-PC/RemoteControlPC-JavaFXML/src/layout/FileOrFolderController.java
- file:/home/varun/Desktop/Github/Remote-Control-PC/RemoteControlPC-JavaFXML/src/remotecontrolpc/ClientToAndroid.java
- file:/home/varun/Desktop/Github/Remote-Control-PC/RemoteControlPC-JavaFXML/src/remotecontrolpc/MainScreenController.java
- file:/home/varun/Desktop/Github/Remote-Control-PC/RemoteControlPC-JavaFXML/build.xml
+ file:/home/david/Documents/ISIMA/ProjetIsima/PROJET_ZZ1/Remote-Control-PC/RemoteControlPC-JavaFXML/src/poweroff/PowerOff.java
+ file:/home/david/Documents/ISIMA/ProjetIsima/PROJET_ZZ1/Remote-Control-PC/RemoteControlPC-JavaFXML/src/remotecontrolpc/MainScreenController.java
diff --git a/RemoteControlPC-JavaFXML/nbproject/project.properties b/RemoteControlPC-JavaFXML/nbproject/project.properties
index 3dc9535..0faa380 100644
--- a/RemoteControlPC-JavaFXML/nbproject/project.properties
+++ b/RemoteControlPC-JavaFXML/nbproject/project.properties
@@ -102,7 +102,7 @@ javafx.signing.type=notsigned
# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects
jnlp.enabled=false
# Main class for Java launcher
-main.class=com.javafx.main.Main
+main.class=remotecontrolpc.RemoteControlPC
# For improved security specify narrower Codebase manifest attribute to prevent RIAs from being repurposed
manifest.custom.codebase=*
# Specify Permissions manifest attribute to override default (choices: sandbox, all-permissions)
diff --git a/RemoteControlPC-JavaFXML/nircmd.exe b/RemoteControlPC-JavaFXML/nircmd.exe
new file mode 100644
index 0000000..d332304
Binary files /dev/null and b/RemoteControlPC-JavaFXML/nircmd.exe differ
diff --git a/RemoteControlPC-JavaFXML/nircmdc.exe b/RemoteControlPC-JavaFXML/nircmdc.exe
new file mode 100644
index 0000000..4865bd1
Binary files /dev/null and b/RemoteControlPC-JavaFXML/nircmdc.exe differ
diff --git a/RemoteControlPC-JavaFXML/run.sh b/RemoteControlPC-JavaFXML/run.sh
new file mode 100755
index 0000000..3bb6893
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/run.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+/usr/local/jdk1.8.0_151/bin/java -jar dist/RemoteControlPC.jar
diff --git a/RemoteControlPC-JavaFXML/src/.idea/.name b/RemoteControlPC-JavaFXML/src/.idea/.name
new file mode 100644
index 0000000..d510448
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/.idea/.name
@@ -0,0 +1 @@
+Remote-Control-PC
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/.idea/dictionaries/alexa.xml b/RemoteControlPC-JavaFXML/src/.idea/dictionaries/alexa.xml
new file mode 100644
index 0000000..5ae4a79
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/.idea/dictionaries/alexa.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/.idea/misc.xml b/RemoteControlPC-JavaFXML/src/.idea/misc.xml
new file mode 100644
index 0000000..28a8113
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/.idea/misc.xml___jb_tmp___ b/RemoteControlPC-JavaFXML/src/.idea/misc.xml___jb_tmp___
new file mode 100644
index 0000000..e69de29
diff --git a/RemoteControlPC-JavaFXML/src/.idea/modules.xml b/RemoteControlPC-JavaFXML/src/.idea/modules.xml
new file mode 100644
index 0000000..ec3a7da
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/.idea/uiDesigner.xml b/RemoteControlPC-JavaFXML/src/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/.idea/workspace.xml b/RemoteControlPC-JavaFXML/src/.idea/workspace.xml
new file mode 100644
index 0000000..fa044f4
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/.idea/workspace.xml
@@ -0,0 +1,831 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+ 4096
+ 48000
+ 256
+ 3584
+
+
+ 256
+ 1280
+ length
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+=======
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+=======
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+=======
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+=======
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C:\Users\alexa\AppData\Roaming\Subversion
+
+
+
+
+ 1525112804193
+
+
+ 1525112804193
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+=======
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+=======
+
+
+
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> microphone
+
+
+
+
+
+
+<<<<<<< HEAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=======
+>>>>>>> microphone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No facets are configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RemoteControlPC-JavaFXML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/RemoteControlPC-JavaFXML.iml b/RemoteControlPC-JavaFXML/src/RemoteControlPC-JavaFXML.iml
new file mode 100644
index 0000000..b107a2d
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/RemoteControlPC-JavaFXML.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/file/AvatarFile.java b/RemoteControlPC-JavaFXML/src/file/AvatarFile.java
new file mode 100644
index 0000000..8b48065
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/file/AvatarFile.java
@@ -0,0 +1,40 @@
+package file;
+
+import java.io.Serializable;
+
+/**
+ *
+ * @author varun
+ */
+public class AvatarFile implements Serializable {
+ private final int icon;
+ private final String avatarHeading, avatarSubheading, path, type;
+
+ public AvatarFile(int icon, String avatarHeading, String avatarSubheading, String path, String type) {
+ this.icon = icon;
+ this.avatarHeading = avatarHeading;
+ this.avatarSubheading = avatarSubheading;
+ this.path = path;
+ this.type = type;
+ }
+
+ public String getHeading() {
+ return avatarHeading;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ public String getSubheading() {
+ return avatarSubheading;
+ }
+
+ public int getIcon() {
+ return icon;
+ }
+
+ public String getType() {
+ return type;
+ }
+}
diff --git a/RemoteControlPC-JavaFXML/src/levelcontrol/LevelControl.java b/RemoteControlPC-JavaFXML/src/levelcontrol/LevelControl.java
new file mode 100644
index 0000000..1160f70
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/levelcontrol/LevelControl.java
@@ -0,0 +1,105 @@
+package levelcontrol;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+import java.io.File;
+
+public class LevelControl
+{
+ private boolean check(float level, String os) {
+ return level >=0 && level <= 100 && System.getProperty("os.name").contains(os);
+ }
+
+ private void errorOutput(Process err) {
+
+ try {
+ err.getOutputStream().close();
+
+ String line;
+
+ BufferedReader stderr = new BufferedReader(new InputStreamReader(err.getErrorStream()));
+
+ line = stderr.readLine();
+
+ if(line != null) {
+ do {
+ System.err.println(line);
+ }while((line = stderr.readLine()) != null);
+ }
+
+ stderr.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public void setBrightness(float level) {
+
+ try {
+ if(check(level, "Linux")) {
+ errorOutput(Runtime.getRuntime().exec("./brightness.sh "+level));
+ }
+ else {
+ if(check(level, "Windows")) {
+ errorOutput(Runtime.getRuntime().exec("nircmd.exe setbrightness "+level));
+ }
+ }
+
+ }
+ catch (Exception e) {
+ System.out.println("Error " + e.getMessage());
+ e.printStackTrace();
+ }
+
+
+
+
+ }
+
+ public void setVolume(float level) {
+
+ try {
+ if(check(level, "Linux")) {
+ errorOutput(Runtime.getRuntime().exec("amixer sset 'Master' "+level+"%"));
+ }
+ else {
+ if(check(level, "Windows"))
+ errorOutput(Runtime.getRuntime().exec("nircmd.exe setsysvolume "+(level*32768/100)));
+ }
+
+ }
+ catch (Exception e) {
+ System.out.println("Error " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ public float getVolume() {
+ // amixer get 'Master' | grep '^\s*Front Left' | sed -r 's/^[^[]*\[([0-9]+)%.*/\1/'
+
+ float volume = 0;
+
+ try {
+ if(System.getProperty("os.name").equals("Linux"))
+ {
+ errorOutput(Runtime.getRuntime().exec("./volume.sh"));
+ DataInputStream file = new DataInputStream(new FileInputStream(new File("volume")));
+ volume = file.readFloat();
+
+ file.close();
+ }
+ }
+ catch (Exception e) {
+ System.out.println("Error " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ return volume;
+
+ }
+
+
+}
diff --git a/RemoteControlPC-JavaFXML/src/microphone/Microphone.java b/RemoteControlPC-JavaFXML/src/microphone/Microphone.java
new file mode 100644
index 0000000..c20c1cb
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/microphone/Microphone.java
@@ -0,0 +1,69 @@
+package microphone;
+
+import remotecontrolpc.MainScreenController;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.DataLine;
+import javax.sound.sampled.SourceDataLine;
+import java.io.BufferedInputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+
+public class Microphone {
+
+ private int bufferSize;
+
+ public Microphone(int bufferSize) {
+ this.bufferSize = bufferSize;
+ }
+
+ public void run() {
+
+ ServerSocket audioServerSocket = null;
+ Socket audioSocket = null;
+ BufferedInputStream bis = null;
+ SourceDataLine sourceDataLine = null;
+
+ AudioFormat audioFormat = new AudioFormat(44100f, 16, 1, true, false);
+
+ try {
+ audioServerSocket = new ServerSocket(MainScreenController.clientSocket.getLocalPort() + 1);
+ audioSocket = audioServerSocket.accept();
+ bis = new BufferedInputStream(audioSocket.getInputStream());
+ byte[] buf = new byte[bufferSize];
+
+ sourceDataLine = (SourceDataLine) AudioSystem.getLine(new DataLine.Info(SourceDataLine.class, audioFormat));
+ sourceDataLine.open(audioFormat);
+ sourceDataLine.start();
+
+ while (bis.read(buf) != -1) {
+ sourceDataLine.write(buf, 0, bufferSize);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ finally {
+ try {
+ if (sourceDataLine != null) {
+ Thread.sleep(sourceDataLine.getMicrosecondPosition()/1000);
+ sourceDataLine.flush();
+ sourceDataLine.close();
+ }
+ if (bis != null) {
+ bis.close();
+ }
+ if (audioSocket != null) {
+ audioSocket.close();
+ }
+ if (audioServerSocket != null) {
+ audioServerSocket.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+}
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/misc.xml b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/misc.xml
new file mode 100644
index 0000000..28a8113
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/modules.xml b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/modules.xml
new file mode 100644
index 0000000..ec3a7da
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/workspace.xml b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/workspace.xml
new file mode 100644
index 0000000..0595653
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/.idea/workspace.xml
@@ -0,0 +1,468 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4096
+ 48000
+ 256
+ 3584
+
+
+ 256
+ 1280
+ length
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C:\Users\alexa\AppData\Roaming\Subversion
+
+
+
+
+ 1525112804193
+
+
+ 1525112804193
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No facets are configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RemoteControlPC-JavaFXML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/RemoteControlPC-JavaFXML.iml b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/RemoteControlPC-JavaFXML.iml
new file mode 100644
index 0000000..b107a2d
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/RemoteControlPC-JavaFXML.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/layout/FileOrFolder.fxml b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/layout/FileOrFolder.fxml
new file mode 100644
index 0000000..7f5bef2
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/layout/FileOrFolder.fxml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/remotecontrolpc/MainScreen.fxml b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/remotecontrolpc/MainScreen.fxml
new file mode 100644
index 0000000..b198430
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/remotecontrolpc/MainScreen.fxml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/file.png b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/file.png
new file mode 100644
index 0000000..506ce95
Binary files /dev/null and b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/file.png differ
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/folder.png b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/folder.png
new file mode 100644
index 0000000..c6ff447
Binary files /dev/null and b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/folder.png differ
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/image.png b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/image.png
new file mode 100644
index 0000000..3db759f
Binary files /dev/null and b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/image.png differ
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/music.png b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/music.png
new file mode 100644
index 0000000..b4e0ca1
Binary files /dev/null and b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/music.png differ
diff --git a/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/pdf.png b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/pdf.png
new file mode 100644
index 0000000..dc241d1
Binary files /dev/null and b/RemoteControlPC-JavaFXML/src/out/production/RemoteControlPC-JavaFXML/resources/pdf.png differ
diff --git a/RemoteControlPC-JavaFXML/src/poweroff/PowerOff.java b/RemoteControlPC-JavaFXML/src/poweroff/PowerOff.java
index 5f4ba55..e189420 100644
--- a/RemoteControlPC-JavaFXML/src/poweroff/PowerOff.java
+++ b/RemoteControlPC-JavaFXML/src/poweroff/PowerOff.java
@@ -21,9 +21,15 @@ public PowerOff() {
public void shutdown() {
try {
- if ("Windows 8.1".equals(os) || "Windows 8.0".equals(os)) {
+ System.out.println(os);
+ if (os.contains("Windows")) {
runtime.exec("shutdown -s");
- } else {
+ }
+ else if("Linux".equals(os))
+ {
+ runtime.exec("sudo shutdown -h now");
+ }
+ else {
System.out.println("Unsupported operating system");
}
} catch(Exception e) {
@@ -35,9 +41,12 @@ public void shutdown() {
public void restart() {
try {
- if ("Windows 8.1".equals(os) || "Windows 8.0".equals(os)) {
+ if (os.contains("Windows")) {
runtime.exec("shutdown -r");
- } else {
+ }
+ else if ("Linux".equals(os)) {
+ runtime.exec("sudo shutdown -r now");
+ }else {
System.out.println("Unsupported operating system");
}
} catch(Exception e) {
@@ -49,7 +58,7 @@ public void restart() {
public void suspend() {
try {
- if ("Windows 8.1".equals(os) || "Windows 8.0".equals(os)) {
+ if (os.contains("Windows")) {
runtime.exec("Rundll32.exe powrprof.dll,SetSuspendState Sleep");
} else {
System.out.println("Unsupported operating system");
@@ -64,7 +73,7 @@ public void lock() {
try {
if ("Linux".equals(os) || "Mac OS X".equals(os)) {
new MouseKeyboardControl().ctrlAltL();
- } else if ("Windows 8.1".equals(os) || "Windows 8.0".equals(os)) {
+ } else if (os.contains("Windows")) {
runtime.exec("Rundll32.exe user32.dll,LockWorkStation");
} else {
System.out.println("Unsupported operating system");
diff --git a/RemoteControlPC-JavaFXML/src/remotecontrolpc/Server.java b/RemoteControlPC-JavaFXML/src/remotecontrolpc/Server.java
index 0507e09..b6024ea 100644
--- a/RemoteControlPC-JavaFXML/src/remotecontrolpc/Server.java
+++ b/RemoteControlPC-JavaFXML/src/remotecontrolpc/Server.java
@@ -15,10 +15,14 @@
import filesharing.SendFile;
import filesharing.SendFilesList;
import java.net.InetAddress;
+
import javafx.application.Platform;
+import microphone.Microphone;
import mousekeyboardcontrol.MouseKeyboardControl;
import poweroff.PowerOff;
import music.MusicPlayer;
+import levelcontrol.LevelControl;
+import shortcut.Shortcut;
/**
*
@@ -26,10 +30,10 @@
*/
public class Server {
-
+
private Label messageLabel;
-
- public void connect(Button resetButton, Label connectionStatusLabel,
+
+ public void connect(Button resetButton, Label connectionStatusLabel,
Label messageLabel, int port) {
this.messageLabel = messageLabel;
MouseKeyboardControl mouseControl = new MouseKeyboardControl();
@@ -37,28 +41,28 @@ public void connect(Button resetButton, Label connectionStatusLabel,
int screenWidth = (int) screenSize.getWidth();
int screenHeight = (int) screenSize.getHeight();
try {
- MainScreenController.clientSocket =
+ MainScreenController.clientSocket =
MainScreenController.serverSocket.accept();
Platform.runLater(() -> {
resetButton.setDisable(true);
});
- InetAddress remoteInetAddress =
+ InetAddress remoteInetAddress =
MainScreenController.clientSocket.getInetAddress();
- String connectedMessage = "Connected to: " + remoteInetAddress;
+ String connectedMessage = "Connected to: " + remoteInetAddress;
Platform.runLater(() -> {
connectionStatusLabel.setText(connectedMessage);
});
showMessage(connectedMessage);
-
+
// connecting another socket to app (Peer to Peer)
new ClientToAndroid().connect(remoteInetAddress, port);
- MainScreenController.inputStream =
+ MainScreenController.inputStream =
MainScreenController.clientSocket.getInputStream();
- MainScreenController.outputStream =
+ MainScreenController.outputStream =
MainScreenController.clientSocket.getOutputStream();
- MainScreenController.objectOutputStream =
+ MainScreenController.objectOutputStream =
new ObjectOutputStream(MainScreenController.outputStream);
- MainScreenController.objectInputStream =
+ MainScreenController.objectInputStream =
new ObjectInputStream(MainScreenController.inputStream);
FileAPI fileAPI = new FileAPI();
String message, filePath, fileName;
@@ -67,13 +71,47 @@ public void connect(Button resetButton, Label connectionStatusLabel,
PowerOff powerOff = new PowerOff();
MusicPlayer musicPlayer = new MusicPlayer();
ImageViewer imageViewer = new ImageViewer();
+ LevelControl lvlctrl = new LevelControl();
+ Shortcut shortcut = new Shortcut();
+
while (true) {
try {
- message =
- (String) MainScreenController.objectInputStream.readObject();
+ message = (String) MainScreenController.objectInputStream.readObject();
int keyCode;
if (message != null) {
switch (message) {
+ case "BRIGHTNESS":
+ float bright = (float) MainScreenController.objectInputStream.readObject();
+ lvlctrl.setBrightness(bright);
+ break;
+ case "VOLUME":
+ float level = (float) MainScreenController.objectInputStream.readObject();
+ lvlctrl.setVolume(level);
+ break;
+ case "SHORTCUT":
+ MainScreenController.objectOutputStream.writeObject(shortcut.search());
+ MainScreenController.objectOutputStream.flush();
+ break;
+ case "LAUNCH":
+ String name = (String) MainScreenController.objectInputStream.readObject();
+ shortcut.execShortcut(name);
+ break;
+ case "MICROPHONE":
+ int bufferSize = (int) MainScreenController.objectInputStream.readObject();
+ Microphone microphone = new Microphone(bufferSize);
+ microphone.run();
+ break;
+ case "MOUSE_REMOTE":
+ Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
+ float accX = (float) MainScreenController.objectInputStream.readObject();
+ float accY = (float) MainScreenController.objectInputStream.readObject();
+ Point pt = MouseInfo.getPointerInfo().getLocation();
+ mouseControl.mouseMove((int)(pt.x + accX*screensize.width / 100), (int)(pt.y + accY * 2 * screensize.height/100));
+ break;
+ case "VOLUME_GET":
+ ClientToAndroid.sendMessageToAndroid(lvlctrl.getVolume()+"");
+ System.out.println(lvlctrl.getVolume()+"");
+ break;
case "LEFT_CLICK":
mouseControl.leftClick();
break;
@@ -84,21 +122,22 @@ public void connect(Button resetButton, Label connectionStatusLabel,
mouseControl.doubleClick();
break;
case "MOUSE_WHEEL":
- int scrollAmount =
+ int scrollAmount =
(int) MainScreenController.objectInputStream.readObject();
mouseControl.mouseWheel(scrollAmount);
break;
case "MOUSE_MOVE":
+
int x = (int) MainScreenController.objectInputStream.readObject();
int y = (int) MainScreenController.objectInputStream.readObject();
- Point point = MouseInfo.getPointerInfo().getLocation();
+ Point point = MouseInfo.getPointerInfo().getLocation();
// Get current mouse position
float nowx = point.x;
float nowy = point.y;
mouseControl.mouseMove((int) (nowx + x), (int) (nowy + y));
break;
case "MOUSE_MOVE_LIVE":
- // need to adjust coordinates
+ // need to adjust coordinates
float xCord = (float) MainScreenController.objectInputStream.readObject();
float yCord = (float) MainScreenController.objectInputStream.readObject();
xCord = xCord * screenWidth;
@@ -122,12 +161,12 @@ public void connect(Button resetButton, Label connectionStatusLabel,
case "ALT_F4":
mouseControl.altF4();
break;
- case "TYPE_CHARACTER":
+ case "TYPE_CHARACTER":
//handle StringIndexOutOfBoundsException here when pressing soft enter key
char ch = ((String) MainScreenController.objectInputStream.readObject()).charAt(0);
mouseControl.typeCharacter(ch);
break;
- case "TYPE_KEY":
+ case "TYPE_KEY":
keyCode = (int) MainScreenController.objectInputStream.readObject();
mouseControl.typeCharacter(keyCode);
break;
@@ -190,6 +229,7 @@ public void connect(Button resetButton, Label connectionStatusLabel,
} catch(Exception e) {
showMessage("Unsupported Media: " + fileName);
}
+
break;
case "SLIDE_MUSIC":
slideDuration = (int) MainScreenController.objectInputStream.readObject();
@@ -210,7 +250,7 @@ public void connect(Button resetButton, Label connectionStatusLabel,
filePath = new FileAPI().getHomeDirectoryPath();
filePath = filePath + "/RemoteControlPC/" + fileName;
imageViewer.showImage(fileName, filePath);
- break;
+ break;
case "CLOSE_IMAGE_VIEWER":
imageViewer.closeImageViewer();
break;
@@ -243,8 +283,8 @@ public void connect(Button resetButton, Label connectionStatusLabel,
} catch(Exception e) {
e.printStackTrace();
}
- }
-
+ }
+
private void connectionClosed() {
try {
MainScreenController.objectInputStream.close();
@@ -253,12 +293,12 @@ private void connectionClosed() {
MainScreenController.inputStream.close();
MainScreenController.outputStream.close();
MainScreenController.objectOutputStream.close();
- }
+ }
catch(Exception e) {
e.printStackTrace();
}
}
-
+
private void showMessage(String message) {
Platform.runLater(() -> {
messageLabel.setText(message);
diff --git a/RemoteControlPC-JavaFXML/src/shortcut/Shortcut.java b/RemoteControlPC-JavaFXML/src/shortcut/Shortcut.java
new file mode 100644
index 0000000..3b07ec3
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/src/shortcut/Shortcut.java
@@ -0,0 +1,48 @@
+package shortcut;
+
+
+import java.io.DataInputStream;
+import java.io.IOException;
+
+
+public class Shortcut {
+ public final static String[] software = {"studio", "skype", "discord", "chromium", "firefox", "gnome-terminal", "gimp", "emacs"
+ ,"gedit", "nautilus", "steam"};
+
+ public Shortcut() {}
+
+ public String search() {
+
+ StringBuilder stringBuilder = new StringBuilder();
+ try {
+ for (int i = 0; i < software.length; i++){
+ Process p = Runtime.getRuntime().exec("which "+software[i]);
+ DataInputStream stdin = new DataInputStream(p.getInputStream());
+ String cmd = stdin.readLine();
+ System.out.println(cmd);
+
+ if(cmd != null && !cmd.equals("")) {
+ stringBuilder.append(software[i]).append("\n");
+ }
+
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return stringBuilder.toString();
+ }
+
+ public void execShortcut(String name) {
+ if (System.getProperty("os.name").equals("Linux")) {
+ try {
+ Runtime.getRuntime().exec(name);
+ } catch (Exception e) {
+ System.out.println("Error " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/RemoteControlPC-JavaFXML/volume b/RemoteControlPC-JavaFXML/volume
new file mode 100644
index 0000000..c739b42
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/volume
@@ -0,0 +1 @@
+44
diff --git a/RemoteControlPC-JavaFXML/volume.sh b/RemoteControlPC-JavaFXML/volume.sh
new file mode 100755
index 0000000..7454c54
--- /dev/null
+++ b/RemoteControlPC-JavaFXML/volume.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+amixer get 'Master' | grep '^\s*Front Left' | sed -r 's/^[^[]*\[([0-9]+)%.*/\1/' > volume
diff --git a/RemoteControlPC-Libraries/nbproject/build-impl.xml b/RemoteControlPC-Libraries/nbproject/build-impl.xml
index 1eb1b56..5ef5d5b 100644
--- a/RemoteControlPC-Libraries/nbproject/build-impl.xml
+++ b/RemoteControlPC-Libraries/nbproject/build-impl.xml
@@ -46,8 +46,8 @@ is divided into following sections:
-
-
+
+
@@ -76,7 +76,7 @@ is divided into following sections:
-
+
@@ -156,6 +156,7 @@ is divided into following sections:
+
@@ -191,7 +192,12 @@ is divided into following sections:
-
+
+
+
+
+
+
@@ -217,6 +223,7 @@ is divided into following sections:
+
@@ -693,7 +700,7 @@ is divided into following sections:
-
+
@@ -768,7 +775,7 @@ is divided into following sections:
-
+
@@ -795,7 +802,7 @@ is divided into following sections:
-
+
@@ -834,7 +841,7 @@ is divided into following sections:
-
+
@@ -846,7 +853,7 @@ is divided into following sections:
-
+
@@ -969,15 +976,15 @@ is divided into following sections:
-
+
-
+
-
+
@@ -985,7 +992,7 @@ is divided into following sections:
-
+
@@ -1180,7 +1187,7 @@ is divided into following sections:
Must select one file in the IDE or set run.class
-
+
Must select one file in the IDE or set applet.url
diff --git a/RemoteControlPC-Libraries/nbproject/genfiles.properties b/RemoteControlPC-Libraries/nbproject/genfiles.properties
index ef5429e..7e91cb7 100644
--- a/RemoteControlPC-Libraries/nbproject/genfiles.properties
+++ b/RemoteControlPC-Libraries/nbproject/genfiles.properties
@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=8064a381@1.75.2.48
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=2cd29069
-nbproject/build-impl.xml.script.CRC32=9c774b6a
-nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48
+nbproject/build-impl.xml.script.CRC32=d897f662
+nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48
diff --git a/RemoteControlPC-Libraries/nbproject/private/private.properties b/RemoteControlPC-Libraries/nbproject/private/private.properties
index b7e2c78..87b5307 100644
--- a/RemoteControlPC-Libraries/nbproject/private/private.properties
+++ b/RemoteControlPC-Libraries/nbproject/private/private.properties
@@ -1,2 +1,2 @@
compile.on.save=true
-user.properties.file=/home/varun/.netbeans/8.0.2/build.properties
+user.properties.file=/home/david/.netbeans/8.2/build.properties
diff --git a/RemoteControlPC-Libraries/nbproject/private/private.xml b/RemoteControlPC-Libraries/nbproject/private/private.xml
index 6807a2b..0616c7e 100644
--- a/RemoteControlPC-Libraries/nbproject/private/private.xml
+++ b/RemoteControlPC-Libraries/nbproject/private/private.xml
@@ -2,6 +2,8 @@
-
+
+ file:/home/david/Documents/ISIMA/ProjetIsima/PROJET_ZZ1/Remote-Control-PC/RemoteControlPC-Libraries/src/file/AvatarFile.java
+
diff --git a/RemoteControlPC-Studio/.idea/compiler.xml b/RemoteControlPC-Studio/.idea/compiler.xml
deleted file mode 100644
index 9a8b7e5..0000000
--- a/RemoteControlPC-Studio/.idea/compiler.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/RemoteControlPC-Studio/.idea/copyright/profiles_settings.xml b/RemoteControlPC-Studio/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index e7bedf3..0000000
--- a/RemoteControlPC-Studio/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/RemoteControlPC-Studio/.idea/misc.xml b/RemoteControlPC-Studio/.idea/misc.xml
index 95f0f03..99202cc 100644
--- a/RemoteControlPC-Studio/.idea/misc.xml
+++ b/RemoteControlPC-Studio/.idea/misc.xml
@@ -1,18 +1,16 @@
-
-
-
-
+
-
-
+
+
+
@@ -27,17 +25,7 @@
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/RemoteControlPC-Studio/app/build.gradle b/RemoteControlPC-Studio/app/build.gradle
index 51e4a8b..c53dbd5 100644
--- a/RemoteControlPC-Studio/app/build.gradle
+++ b/RemoteControlPC-Studio/app/build.gradle
@@ -2,10 +2,10 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 25
- buildToolsVersion "25.0.3"
+ buildToolsVersion '27.0.3'
defaultConfig {
applicationId "me.varunon9.remotecontrolpc"
- minSdkVersion 11
+ minSdkVersion 23
targetSdkVersion 25
versionCode 5
versionName "1.5.0"
diff --git a/RemoteControlPC-Studio/app/src/main/AndroidManifest.xml b/RemoteControlPC-Studio/app/src/main/AndroidManifest.xml
index 600e1d2..b1027e4 100644
--- a/RemoteControlPC-Studio/app/src/main/AndroidManifest.xml
+++ b/RemoteControlPC-Studio/app/src/main/AndroidManifest.xml
@@ -5,6 +5,7 @@
+
0) {
+ bos.write(buf);
+ bos.flush();
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ finally {
+ try {
+
+ if (mAudio != null) {
+ mAudio.release();
+ mAudio = null;
+ }
+ if (bos != null) {
+ bos.close();
+ }
+ if (audioSocket != null) {
+ audioSocket.close();
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ private void startRecording() {
+ mAudio = new AudioRecord(MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 1048576);
+ mAudio.startRecording();
+
+ Thread audioSendThread = new Thread(new AudioSendThread());
+ audioSendThread.start();
+ }
+
+ private void stopRecording() {
+ mAudio.stop();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
+ switch (requestCode) {
+ case REQUEST_RECORD_AUDIO_PERMISSION:
+ permissionToRecordAccepted = (grantResults[0] == PackageManager.PERMISSION_GRANTED);
+ }
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ if (mAudio != null) {
+ mAudio.release();
+ mAudio = null;
+ }
+ }
+}
diff --git a/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/SendMessageToServer.java b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/SendMessageToServer.java
index d598e0b..52fd3d3 100644
--- a/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/SendMessageToServer.java
+++ b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/SendMessageToServer.java
@@ -17,7 +17,7 @@ protected Void doInBackground(String... params) {
int intMessage;
float floatMessage;
long longMessage;
- System.out.println(message + ", " + code);
+ //System.out.println(message + ", " + code);
if (code.equals("STRING")) {
try {
MainActivity.objectOutputStream.writeObject(message);
diff --git a/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/levelcontrol/LevelControl.java b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/levelcontrol/LevelControl.java
new file mode 100644
index 0000000..234fd22
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/levelcontrol/LevelControl.java
@@ -0,0 +1,138 @@
+package me.varunon9.remotecontrolpc.levelcontrol;
+
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.constraint.ConstraintLayout;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+
+import java.io.IOException;
+
+import me.varunon9.remotecontrolpc.MainActivity;
+import me.varunon9.remotecontrolpc.R;
+
+import static android.view.MotionEvent.ACTION_CANCEL;
+import static android.view.MotionEvent.ACTION_DOWN;
+import static android.view.MotionEvent.ACTION_MOVE;
+import static android.view.MotionEvent.ACTION_UP;
+
+/**
+ * Created by alex on 27/02/18.
+ */
+
+public class LevelControl extends Fragment implements View.OnTouchListener {
+
+ private Bundle args;
+ private View mViewController;
+ private View mViewTopLimit;
+ private View mViewBottomLimit;
+ private float maxY = 0.0f;
+ private float minY = 0.0f;
+ private float dy = 0.0f;
+ private float volume = 50.0f;
+
+
+ public static LevelControl newInstance(int title, String command) {
+ LevelControl levelControl = new LevelControl();
+
+ Bundle args = new Bundle();
+ args.putInt("title", title);
+ args.putString("command", command);
+ levelControl.setArguments(args);
+
+ return levelControl;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View rootView = inflater.inflate(R.layout.level_control, container, false);
+ mViewController = rootView.findViewById(R.id.view_controller);
+ mViewController.setOnTouchListener(this);
+ mViewTopLimit= rootView.findViewById(R.id.view_top_limit);
+ mViewBottomLimit = rootView.findViewById(R.id.view_bottom_limit);
+ rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ maxY = mViewTopLimit.getY();
+ minY = mViewBottomLimit.getY() - mViewController.getHeight();
+ }
+ });
+ args = getArguments();
+ GetDataThread t = new GetDataThread();
+ t.start();
+
+ return rootView;
+ }
+
+
+ private class GetDataThread extends Thread {
+ public void run(){
+ while(true) {
+ MainActivity.sendMessageToServer("VOLUME_GET");
+ try {
+ volume = MainActivity.objectInputStream.readFloat();
+ System.out.println(volume);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ getActivity().setTitle(getString(args.getInt("title")));
+ }
+
+ @Override
+ public boolean onTouch(View view, MotionEvent event) {
+ if (view == mViewController) {
+ float bias = event.getRawY();
+ switch (event.getActionMasked()) {
+ case ACTION_DOWN:
+ changeControllerColor();
+ dy = view.getY() - bias;
+ break;
+ case ACTION_MOVE:
+ bias = 1.0f - (bias + dy) / (maxY - minY) + minY / (maxY - minY);
+ if (bias < 0.0f)
+ bias = 0.0f;
+ else if (bias > 1.0f)
+ bias = 1.0f;
+ ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) view.getLayoutParams();
+ params.verticalBias = bias;
+ view.setLayoutParams(params);
+ MainActivity.sendMessageToServer(args.getString("command"));
+ volume = 100.0f - bias * 100.0f;
+ MainActivity.sendMessageToServer(volume);
+ break;
+ case ACTION_UP:
+ changeControllerColor();
+ break;
+ case ACTION_CANCEL:
+ changeControllerColor();
+ default:
+ break;
+ }
+ }
+ return true;
+ }
+
+ private void changeControllerColor() {
+ int colorPrimary = getResources().getColor(R.color.colorPrimary);
+ int colorPrimaryDark = getResources().getColor(R.color.colorPrimaryDark);
+
+ if (((ColorDrawable) mViewController.getBackground()).getColor() == colorPrimary) {
+ mViewController.setBackgroundColor(colorPrimaryDark);
+ } else {
+ mViewController.setBackgroundColor(colorPrimary);
+ }
+ }
+
+}
diff --git a/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/mediaplayer/MediaPlayerFragment.java b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/mediaplayer/MediaPlayerFragment.java
index eb14827..95b5885 100644
--- a/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/mediaplayer/MediaPlayerFragment.java
+++ b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/mediaplayer/MediaPlayerFragment.java
@@ -60,6 +60,7 @@ public void onItemClick(AdapterView> parent, View view, int position,
String path = song.getData();
int duration = song.getDuration();
duration /= 1000; //in seconds
+ System.out.println(fileName + " " + path);
transferFile(fileName, path, duration);
}
diff --git a/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/mousecontrol/MouseControlFragment.java b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/mousecontrol/MouseControlFragment.java
new file mode 100644
index 0000000..75b1dd3
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/mousecontrol/MouseControlFragment.java
@@ -0,0 +1,129 @@
+package me.varunon9.remotecontrolpc.mousecontrol;
+
+/**
+ * Created by david on 13/12/17.
+ */
+
+import android.content.Context;
+import android.content.pm.ActivityInfo;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import me.varunon9.remotecontrolpc.MainActivity;
+import me.varunon9.remotecontrolpc.R;
+
+
+public class MouseControlFragment extends Fragment implements SensorEventListener, View.OnClickListener {
+ private Button mButton;
+ private SensorManager mSensors;
+ private Sensor mAccelero;
+ private Button mLeftClick;
+ private Button mRightClick;
+ private boolean mResetAccelero = false;
+ float mDefaultValues[] = {0, 0}, mCurrentValues[] = {0,0};
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState){
+ View rootView = inflater.inflate(R.layout.fragment_mousecontrol, container, false);
+ mButton = (Button) rootView.findViewById(R.id.mouseremotebutton);
+ mLeftClick = (Button) rootView.findViewById(R.id.left_click);
+ mRightClick = (Button) rootView.findViewById(R.id.right_click);
+
+ mLeftClick.setOnClickListener(this);
+ mRightClick.setOnClickListener(this);
+
+
+ mSensors = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);
+ mAccelero = mSensors.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+ mSensors.registerListener(this, mAccelero, SensorManager.SENSOR_DELAY_NORMAL);
+
+ getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
+
+
+ SendDataThread t = new SendDataThread();
+ t.start();
+
+ return rootView;
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ getActivity().setTitle(R.string.mouse_control);
+ }
+
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {}
+
+ public void onSensorChanged(SensorEvent event){
+ if(mButton.isPressed()) {
+ if (mResetAccelero) {
+ mDefaultValues[0] = event.values[0];
+ mDefaultValues[1] = event.values[1];
+ mResetAccelero = false;
+
+
+ }
+
+ mCurrentValues[0] = -event.values[0]+mDefaultValues[0];
+ mCurrentValues[1] = -event.values[1]+mDefaultValues[1];
+ }
+ else {
+ mResetAccelero = true;
+ }
+ }
+
+ private class SendDataThread extends Thread {
+ private float normalize(float x) {
+ float ret = 0.0f;
+
+ if(Math.abs(x) < 2.f) {
+ ret = 2.f;
+ }
+ else if(Math.abs(x) >= 2.f && Math.abs(x) < 6.f) {
+ ret = 4.f;
+ }
+ else if(Math.abs(x) >= 6.f && Math.abs(x) < 11.f) {
+ ret = 6.f;
+ }
+
+ return ret*(x/Math.abs(x));
+ }
+
+ public void run() {
+ long tps, ticks;
+
+ while(true) {
+
+ if(mButton.isPressed()) {
+ MainActivity.sendMessageToServer("MOUSE_REMOTE");
+ MainActivity.sendMessageToServer(mCurrentValues[0]);
+ MainActivity.sendMessageToServer(mCurrentValues[1]);
+ try {
+ Thread.sleep(60);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onClick(View view) {
+ if(view == mLeftClick)
+ MainActivity.sendMessageToServer("LEFT_CLICK");
+ else
+ MainActivity.sendMessageToServer("RIGHT_CLICK");
+ }
+}
diff --git a/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/shortcut/ShortcutFragment.java b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/shortcut/ShortcutFragment.java
new file mode 100644
index 0000000..1e5345d
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/java/me/varunon9/remotecontrolpc/shortcut/ShortcutFragment.java
@@ -0,0 +1,164 @@
+package me.varunon9.remotecontrolpc.shortcut;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.GridView;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+import me.varunon9.remotecontrolpc.MainActivity;
+import me.varunon9.remotecontrolpc.R;
+
+import static android.graphics.Color.DKGRAY;
+import static android.graphics.Color.LTGRAY;
+import static android.graphics.Color.TRANSPARENT;
+
+/**
+ * Created by alex on 12/03/18.
+ */
+
+public class ShortcutFragment extends Fragment {
+
+ protected final static String command = "LAUNCH";
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+
+ super.onCreateView(inflater, container, savedInstanceState);
+
+ View rootView = inflater.inflate(R.layout.fragment_shortcut, container, false);
+
+ GridView gridView = (GridView) rootView.findViewById(R.id.containerView);
+
+ ShortcutTask shortcut = new ShortcutTask(gridView);
+ MainActivity.sendMessageToServer("SHORTCUT");
+ shortcut.execute();
+
+ return rootView;
+
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+
+ super.onViewCreated(view, savedInstanceState);
+ getActivity().setTitle(R.string.shortcut);
+
+ }
+
+ private class ShortcutTask extends AsyncTask> {
+
+ private final Context mContext;
+ private GridView gridView;
+
+ public ShortcutTask(GridView gridView) {
+ mContext = getContext();
+ this.gridView = gridView;
+ }
+
+ @Override
+ protected ArrayList doInBackground(Void... arg0) {
+ String str = null;
+ try {
+ str = (String) MainActivity.objectInputStream.readObject();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ ArrayList shortcuts = new ArrayList();
+
+ if (str != null) {
+ int next = str.indexOf("\n");
+
+ while (next != -1) {
+ shortcuts.add(str.substring(0, next));
+ str = str.substring(next + 1);
+ next = str.indexOf("\n");
+ }
+ }
+
+ return shortcuts;
+ }
+
+ @Override
+ protected void onPostExecute(ArrayList shortcuts) {
+
+ gridView.setAdapter(new ShortcutAdapter(mContext, shortcuts));
+ }
+
+ private class ShortcutAdapter extends BaseAdapter {
+
+ private final Context mContext;
+ private final ArrayList shortcuts;
+
+ public ShortcutAdapter(Context context, ArrayList shortcuts) {
+ mContext = context;
+ this.shortcuts = shortcuts;
+ }
+
+ @Override
+ public int getCount() {
+ return shortcuts.size();
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return 0;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return shortcuts.get(position);
+ }
+
+ @Override
+ public View getView(final int position, View convertView, ViewGroup parent) {
+ final String item = (String) getItem(position);
+
+ if (convertView == null) {
+ final LayoutInflater inflater = LayoutInflater.from(mContext);
+ convertView = inflater.inflate(R.layout.shortcut_content, null);
+ }
+
+ final ImageView icon = (ImageView) convertView.findViewById(R.id.shortcut_image);
+ final TextView name = (TextView) convertView.findViewById(R.id.shortcut_name);
+
+ int res = getResources().getIdentifier(item.replace("-", "_"), "mipmap", getActivity().getPackageName());
+ if (res != 0) {
+ icon.setImageResource(res);
+ }
+ else {
+ icon.setImageResource(R.mipmap.unknown);
+ }
+
+
+ name.setText(item);
+
+ convertView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ MainActivity.sendMessageToServer(command);
+ MainActivity.sendMessageToServer(item);
+ }
+ });
+
+ return convertView;
+ }
+
+ }
+
+ }
+
+}
diff --git a/RemoteControlPC-Studio/app/src/main/res/drawable/ic_brightness.xml b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_brightness.xml
new file mode 100644
index 0000000..8ac1714
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_brightness.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/RemoteControlPC-Studio/app/src/main/res/drawable/ic_microphone.xml b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_microphone.xml
new file mode 100644
index 0000000..642c522
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_microphone.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/RemoteControlPC-Studio/app/src/main/res/drawable/ic_mouse_remote.xml b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_mouse_remote.xml
new file mode 100644
index 0000000..7f65cfc
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_mouse_remote.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/RemoteControlPC-Studio/app/src/main/res/drawable/ic_shortcut.xml b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_shortcut.xml
new file mode 100644
index 0000000..9c9a248
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_shortcut.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/RemoteControlPC-Studio/app/src/main/res/drawable/ic_volume.xml b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_volume.xml
new file mode 100644
index 0000000..3639d0b
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/drawable/ic_volume.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/RemoteControlPC-Studio/app/src/main/res/layout/activity_main.xml b/RemoteControlPC-Studio/app/src/main/res/layout/activity_main.xml
index a61d8a6..9a7a9e8 100644
--- a/RemoteControlPC-Studio/app/src/main/res/layout/activity_main.xml
+++ b/RemoteControlPC-Studio/app/src/main/res/layout/activity_main.xml
@@ -6,7 +6,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
- tools:openDrawer="start">
+ tools:openDrawer="start"
+ >
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-Studio/app/src/main/res/layout/fragment_mousecontrol.xml b/RemoteControlPC-Studio/app/src/main/res/layout/fragment_mousecontrol.xml
new file mode 100644
index 0000000..12160aa
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/layout/fragment_mousecontrol.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-Studio/app/src/main/res/layout/fragment_shortcut.xml b/RemoteControlPC-Studio/app/src/main/res/layout/fragment_shortcut.xml
new file mode 100644
index 0000000..6090d47
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/layout/fragment_shortcut.xml
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-Studio/app/src/main/res/layout/level_control.xml b/RemoteControlPC-Studio/app/src/main/res/layout/level_control.xml
new file mode 100644
index 0000000..de9c372
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/layout/level_control.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-Studio/app/src/main/res/layout/shortcut_content.xml b/RemoteControlPC-Studio/app/src/main/res/layout/shortcut_content.xml
new file mode 100644
index 0000000..8c2e53b
--- /dev/null
+++ b/RemoteControlPC-Studio/app/src/main/res/layout/shortcut_content.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RemoteControlPC-Studio/app/src/main/res/menu/activity_main_drawer.xml b/RemoteControlPC-Studio/app/src/main/res/menu/activity_main_drawer.xml
index 232e287..f105d82 100644
--- a/RemoteControlPC-Studio/app/src/main/res/menu/activity_main_drawer.xml
+++ b/RemoteControlPC-Studio/app/src/main/res/menu/activity_main_drawer.xml
@@ -38,6 +38,26 @@
android:id="@+id/nav_power_off"
android:icon="@drawable/ic_power_off"
android:title="Power Off" />
+
+
+
+
+
Hello blank fragment
diff --git a/RemoteControlPC-Studio/build.gradle b/RemoteControlPC-Studio/build.gradle
index c2eea8e..804e9f4 100644
--- a/RemoteControlPC-Studio/build.gradle
+++ b/RemoteControlPC-Studio/build.gradle
@@ -3,9 +3,10 @@
buildscript {
repositories {
jcenter()
+ google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.3.3'
+ classpath 'com.android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -15,6 +16,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ google()
}
}
diff --git a/RemoteControlPC-Studio/gradle/wrapper/gradle-wrapper.properties b/RemoteControlPC-Studio/gradle/wrapper/gradle-wrapper.properties
index 0243d0a..e34ffea 100644
--- a/RemoteControlPC-Studio/gradle/wrapper/gradle-wrapper.properties
+++ b/RemoteControlPC-Studio/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sat Sep 23 15:56:51 IST 2017
+#Thu Apr 05 20:02:31 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
diff --git a/gantt/v1.pod b/gantt/v1.pod
new file mode 100644
index 0000000..d2f1b47
Binary files /dev/null and b/gantt/v1.pod differ
diff --git a/gantt/v2.pod b/gantt/v2.pod
new file mode 100644
index 0000000..dbd1e8f
Binary files /dev/null and b/gantt/v2.pod differ
diff --git a/gantt/v3.pod b/gantt/v3.pod
new file mode 100644
index 0000000..27ba679
Binary files /dev/null and b/gantt/v3.pod differ
diff --git a/gantt/v4.pod b/gantt/v4.pod
new file mode 100644
index 0000000..388a241
Binary files /dev/null and b/gantt/v4.pod differ
diff --git a/gantt/v5.pod b/gantt/v5.pod
new file mode 100644
index 0000000..43127b0
Binary files /dev/null and b/gantt/v5.pod differ
diff --git a/gantt/v6.pod b/gantt/v6.pod
new file mode 100644
index 0000000..c9ea0c1
Binary files /dev/null and b/gantt/v6.pod differ
diff --git a/gantt/v7.pod b/gantt/v7.pod
new file mode 100644
index 0000000..342967c
Binary files /dev/null and b/gantt/v7.pod differ
diff --git a/gantt/v8.pod b/gantt/v8.pod
new file mode 100644
index 0000000..e288db9
Binary files /dev/null and b/gantt/v8.pod differ
diff --git a/gantt/v9.pod b/gantt/v9.pod
new file mode 100644
index 0000000..d6b25ba
Binary files /dev/null and b/gantt/v9.pod differ