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 - +
+ +
+

Start Recording

+
+

Start Streaming

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 @@  - + Debug @@ -28,19 +28,23 @@ DynamicLibrary Unicode true + v120 DynamicLibrary Unicode + v120 DynamicLibrary Unicode true + v120 DynamicLibrary Unicode + v120 diff --git a/WebSocketAPIPlugin/jansson-2.4/win32/vs2008/jansson.vcxproj b/WebSocketAPIPlugin/jansson-2.4/win32/vs2008/jansson.vcxproj index d40bcd9..8107577 100644 --- a/WebSocketAPIPlugin/jansson-2.4/win32/vs2008/jansson.vcxproj +++ b/WebSocketAPIPlugin/jansson-2.4/win32/vs2008/jansson.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -28,19 +28,23 @@ StaticLibrary Unicode true + v120 StaticLibrary Unicode + v120 StaticLibrary Unicode true + v120 StaticLibrary Unicode + v120 diff --git a/WebSocketAPIPlugin/libwebsockets/win32port/libwebsocketswin32/libwebsocketswin32.vcxproj b/WebSocketAPIPlugin/libwebsockets/win32port/libwebsocketswin32/libwebsocketswin32.vcxproj index e3fc4f5..12c17c1 100644 --- a/WebSocketAPIPlugin/libwebsockets/win32port/libwebsocketswin32/libwebsocketswin32.vcxproj +++ b/WebSocketAPIPlugin/libwebsockets/win32port/libwebsocketswin32/libwebsocketswin32.vcxproj @@ -1,5 +1,5 @@  - + Debug static @@ -44,16 +44,19 @@ StaticLibrary true Unicode + v120 StaticLibrary true Unicode + v120 StaticLibrary true Unicode + v120 StaticLibrary @@ -65,19 +68,26 @@ false true Unicode + v120 StaticLibrary false true Unicode + v120 StaticLibrary + v120 DynamicLibrary true + v120 + + + v120 diff --git a/WebSocketAPIPlugin/libwebsockets/win32port/zlib/ZLib.vcxproj b/WebSocketAPIPlugin/libwebsockets/win32port/zlib/ZLib.vcxproj index 9271fc6..8a0ee00 100644 --- a/WebSocketAPIPlugin/libwebsockets/win32port/zlib/ZLib.vcxproj +++ b/WebSocketAPIPlugin/libwebsockets/win32port/zlib/ZLib.vcxproj @@ -1,5 +1,5 @@  - + Debug static @@ -42,23 +42,28 @@ StaticLibrary false MultiByte + v120 StaticLibrary false MultiByte + v120 StaticLibrary MultiByte + v120 StaticLibrary MultiByte + v120 StaticLibrary MultiByte + v120 StaticLibrary @@ -66,9 +71,14 @@ StaticLibrary + v120 StaticLibrary + v120 + + + v120 diff --git a/WebSocketAPIPlugin/polarssl-1.2.5/visualc/VS2010/PolarSSL.vcxproj b/WebSocketAPIPlugin/polarssl-1.2.5/visualc/VS2010/PolarSSL.vcxproj index bef01c0..a315f2b 100644 --- a/WebSocketAPIPlugin/polarssl-1.2.5/visualc/VS2010/PolarSSL.vcxproj +++ b/WebSocketAPIPlugin/polarssl-1.2.5/visualc/VS2010/PolarSSL.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -28,24 +28,27 @@ StaticLibrary true Unicode + v120 StaticLibrary true Unicode + v120 StaticLibrary false true Unicode + v120 StaticLibrary false true Unicode - Windows7.1SDK + v120 @@ -65,7 +68,7 @@ true - $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; + $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) ..\Output\$(Platform)\$(Configuration)\ ..\Build\$(Platform)\$(Configuration)\ diff --git a/installer/OBSRemoteManualInstall/32-bit/WebSocketAPIPlugin.dll b/installer/OBSRemoteManualInstall/32-bit/WebSocketAPIPlugin.dll index 6dbc498..7615d3b 100644 Binary files a/installer/OBSRemoteManualInstall/32-bit/WebSocketAPIPlugin.dll and b/installer/OBSRemoteManualInstall/32-bit/WebSocketAPIPlugin.dll differ diff --git a/installer/OBSRemoteManualInstall/64-bit/WebSocketAPIPlugin.dll b/installer/OBSRemoteManualInstall/64-bit/WebSocketAPIPlugin.dll index a87e701..d04cff1 100644 Binary files a/installer/OBSRemoteManualInstall/64-bit/WebSocketAPIPlugin.dll and b/installer/OBSRemoteManualInstall/64-bit/WebSocketAPIPlugin.dll differ diff --git a/installer/installer.nsi b/installer/installer.nsi index 8976bef..aef6da8 100644 --- a/installer/installer.nsi +++ b/installer/installer.nsi @@ -2,7 +2,7 @@ ; Define your application name !define APPNAME "OBS Remote" -!define APPVERSION "1.12" +!define APPVERSION "1.2" !define APPNAMEANDVERSION "OBS Remote ${APPVERSION}" ; Additional script dependencies