diff --git a/OBSRemote.sln b/OBSRemote.sln index f67eda3..e8fe339 100644 --- a/OBSRemote.sln +++ b/OBSRemote.sln @@ -1,6 +1,8 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebSocketAPIPlugin", "WebSocketAPIPlugin\WebSocketAPIPlugin.vcxproj", "{E905D054-ACE1-4BE1-8D78-B3D4961C5E99}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OBS", "..\OBS\OBS.vcxproj", "{221C92F4-3416-43F1-8E4E-78657AFD0111}" @@ -15,6 +17,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OBSApi", "..\OBS\OBSApi\OBS EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolarSSL", "WebSocketAPIPlugin\polarssl-1.2.5\visualc\VS2010\PolarSSL.vcxproj", "{46CF2D25-6A36-4189-B59C-E4815388E554}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsamplerate", "..\OBS\libsamplerate\libsamplerate.vcxproj", "{47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librtmp", "..\OBS\librtmp\librtmp.vcxproj", "{22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac", "..\OBS\libfaac\libfaac.vcxproj", "{9CC48C6E-92EB-4814-AD37-97AB3622AB65}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -79,6 +87,30 @@ Global {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.Build.0 = Release|Win32 {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.ActiveCfg = Release|x64 {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.Build.0 = Release|x64 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Debug|Win32.ActiveCfg = Debug|Win32 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Debug|Win32.Build.0 = Debug|Win32 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Debug|x64.ActiveCfg = Debug|x64 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Debug|x64.Build.0 = Debug|x64 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Release|Win32.ActiveCfg = Release|Win32 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Release|Win32.Build.0 = Release|Win32 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Release|x64.ActiveCfg = Release|x64 + {47AFDBEF-F15F-4BC0-B436-5BE443C3F80F}.Release|x64.Build.0 = Release|x64 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Debug|Win32.ActiveCfg = Debug|Win32 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Debug|Win32.Build.0 = Debug|Win32 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Debug|x64.ActiveCfg = Debug|x64 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Debug|x64.Build.0 = Debug|x64 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Release|Win32.ActiveCfg = Release|Win32 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Release|Win32.Build.0 = Release|Win32 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Release|x64.ActiveCfg = Release|x64 + {22BF0EE3-CDCD-4925-A5F6-0A94CB5D4DB1}.Release|x64.Build.0 = Release|x64 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Debug|Win32.ActiveCfg = Debug|Win32 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Debug|Win32.Build.0 = Debug|Win32 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Debug|x64.ActiveCfg = Debug|x64 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Debug|x64.Build.0 = Debug|x64 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Release|Win32.ActiveCfg = Release|Win32 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Release|Win32.Build.0 = Release|Win32 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Release|x64.ActiveCfg = Release|x64 + {9CC48C6E-92EB-4814-AD37-97AB3622AB65}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/WebClient/index.html b/WebClient/index.html index 2b3196e..acfd4e0 100644 --- a/WebClient/index.html +++ b/WebClient/index.html @@ -1,4 +1,4 @@ - +
@@ -24,7 +24,12 @@ OBS Remote| + | + + | +
diff --git a/WebClient/js/main.js b/WebClient/js/main.js
index dbd3fe5..bc73ad2 100644
--- a/WebClient/js/main.js
+++ b/WebClient/js/main.js
@@ -1,6 +1,7 @@
var currentlyStreaming = false;
var currentlyPreviewing = false;
var totalSecondsStreaming = 0;
+var isRecording = false;
/*auth variables*/
var authSalt = "";
@@ -12,7 +13,8 @@ $(function() {
$("#button1").on("click", startStreaming);
$("#button2").on("click", startPreview);
-
+ $("#button3").on("click", startRecording);
+
/* initialize auth dialog */
$( "#auth-dialog-form" ).dialog({
autoOpen: false,
@@ -308,8 +310,18 @@ function onStartStreaming(update)
$("#OnTheAir p:first").text("ON THE AIR");
streamConfigStartStreaming();
}
- $("#button1").css("visibility", "hidden");
- $("#button2 p:first").html("Stop " + ((previewOnly)?"Preview":"Streaming"));
+
+ if (!isRecording) {
+ $("#button1").css("visibility", "hidden");
+ $("#button3").css("visibility", "hidden");
+ $("#button2 p:first").html("Stop " + ((previewOnly) ? "Preview" : "Streaming"));
+ } else {
+ $("#button1").css("visibility", "hidden");
+ $("#button2").css("visibility", "hidden");
+ $("#button3 p:first").html("Stop Recording");
+ }
+
+
}
}
@@ -324,8 +336,12 @@ function onStopStreaming(update)
$("#OnTheAir").attr("class", null);
$("#OnTheAir p:first").text("OFF THE AIR");
$("#button1").css("visibility", "visible");
+ $("#button2").css("visibility", "visible");
+ $("#button3").css("visibility", "visible");
$("#button2 p:first").html("Start Preview");
+ $("#button3 p:first").html("Start Recording");
$("#StatsTable").css("visibility", "hidden");
+ isRecording = false;
}
streamConfigStopStreaming(totalSecondsStreaming);
@@ -364,6 +380,15 @@ function startStreaming()
sendMessage(myJSONRequest);
}
+function startRecording()
+{
+ var myJSONRequest = {};
+ myJSONRequest["request-type"] = "StartStopRecording";
+ isRecording = true;
+
+ sendMessage(myJSONRequest);
+}
+
function startPreview()
{
var myJSONRequest = {};
diff --git a/WebClient/js/version.js b/WebClient/js/version.js
index e9e443f..8d18f8c 100644
--- a/WebClient/js/version.js
+++ b/WebClient/js/version.js
@@ -1,5 +1,5 @@
-var requiredPluginVersion = 1.1;
+var requiredPluginVersion = 1.2;
var oldPluginUrls = {"1.00":"./V1_01/index.html"};
-var webclientVersion = 1.1;
\ No newline at end of file
+var webclientVersion = 1.2;
\ No newline at end of file
diff --git a/WebSocketAPIPlugin/MessageHandling.cpp b/WebSocketAPIPlugin/MessageHandling.cpp
index ec32701..a4f0eb3 100644
--- a/WebSocketAPIPlugin/MessageHandling.cpp
+++ b/WebSocketAPIPlugin/MessageHandling.cpp
@@ -34,6 +34,7 @@ void OBSAPIMessageHandler::initializeMessageMap()
messageMap[REQ_SET_SCENEITEM_POSITION_AND_SIZE] = OBSAPIMessageHandler::HandleSetSceneItemPositionAndSize;
messageMap[REQ_GET_STREAMING_STATUS] = OBSAPIMessageHandler::HandleGetStreamingStatus;
messageMap[REQ_STARTSTOP_STREAMING] = OBSAPIMessageHandler::HandleStartStopStreaming;
+ messageMap[REQ_STARTSTOP_RECORDING] = OBSAPIMessageHandler::HandleStartStopRecording;
messageMap[REQ_TOGGLE_MUTE] = OBSAPIMessageHandler::HandleToggleMute;
messageMap[REQ_GET_VOLUMES] = OBSAPIMessageHandler::HandleGetVolumes;
messageMap[REQ_SET_VOLUME] = OBSAPIMessageHandler::HandleSetVolume;
@@ -410,6 +411,13 @@ json_t* OBSAPIMessageHandler::HandleStartStopStreaming(OBSAPIMessageHandler* han
return GetOkResponse();
}
+json_t* OBSAPIMessageHandler::HandleStartStopRecording(OBSAPIMessageHandler* handler, json_t* message)
+{
+ OBSStartStopRecording();
+
+ return GetOkResponse();
+}
+
json_t* OBSAPIMessageHandler::HandleToggleMute(OBSAPIMessageHandler* handler, json_t* message)
{
json_t* channel = json_object_get(message, "channel");
diff --git a/WebSocketAPIPlugin/MessageHandling.h b/WebSocketAPIPlugin/MessageHandling.h
index f04b98d..38197e1 100644
--- a/WebSocketAPIPlugin/MessageHandling.h
+++ b/WebSocketAPIPlugin/MessageHandling.h
@@ -41,6 +41,8 @@
#define REQ_GET_STREAMING_STATUS "GetStreamingStatus"
#define REQ_STARTSTOP_STREAMING "StartStopStreaming"
+#define REQ_STARTSTOP_RECORDING "StartStopRecording"
+
#define REQ_TOGGLE_MUTE "ToggleMute"
#define REQ_GET_VOLUMES "GetVolumes"
#define REQ_SET_VOLUME "SetVolume"
@@ -80,6 +82,7 @@ struct OBSAPIMessageHandler
static json_t* HandleSetSceneItemPositionAndSize(OBSAPIMessageHandler* handler, json_t* message);
static json_t* HandleGetStreamingStatus(OBSAPIMessageHandler* handler, json_t* message);
static json_t* HandleStartStopStreaming(OBSAPIMessageHandler* handler, json_t* message);
+ static json_t* HandleStartStopRecording(OBSAPIMessageHandler* handler, json_t* message);
static json_t* HandleToggleMute(OBSAPIMessageHandler* handler, json_t* message);
static json_t* HandleGetVolumes(OBSAPIMessageHandler* handler, json_t* message);
static json_t* HandleSetVolume(OBSAPIMessageHandler* handler, json_t* message);
diff --git a/WebSocketAPIPlugin/OBSRemote.h b/WebSocketAPIPlugin/OBSRemote.h
index c43153b..835bb88 100644
--- a/WebSocketAPIPlugin/OBSRemote.h
+++ b/WebSocketAPIPlugin/OBSRemote.h
@@ -19,7 +19,7 @@
#pragma once
-#define OBS_REMOTE_VERSION 1.1
-#define OBS_REMOTE_FULLNAME "OBS Remote v1.1"
+#define OBS_REMOTE_VERSION 1.2
+#define OBS_REMOTE_FULLNAME "OBS Remote v1.2"
#include "resource.h"
\ No newline at end of file
diff --git a/WebSocketAPIPlugin/WebSocketAPIPlugin.vcxproj b/WebSocketAPIPlugin/WebSocketAPIPlugin.vcxproj
index 30a387d..a4b58eb 100644
--- a/WebSocketAPIPlugin/WebSocketAPIPlugin.vcxproj
+++ b/WebSocketAPIPlugin/WebSocketAPIPlugin.vcxproj
@@ -1,5 +1,5 @@
- |