31 Commits

Author SHA1 Message Date
jp9000
a01d3e77b1 UI: Remove jansson requirement from UI and updater
Use json11 instead.
2020-12-09 22:23:03 -08:00
jp9000
9cc5aa5629 UI/updater: Update redist checks to VS2019 2020-12-09 22:23:03 -08:00
jp9000
4a9bb86916 UI/updater: Fix cmd prompts popping up registering vcam
Fixes an issue where command prompts would pop up when registering the
virtual camera in the auto-updater
2020-09-29 04:36:32 -07:00
jp9000
a72a52fa38 UI: Add virtual camera to UI
Adds a virtual camera button to the main user interface.  If virtual
camera is not installed, it will not add the button.  On Windows, it
detects whether the virtual camera filters are properly registered, and
will only add the button if the virtual camera filter is confirmed
registered.

Also adds a virtual camera option to the auto-configuration wizard,
which will just simply set the user's resolution/scale to 1920x1080 at
30 FPS.
2020-07-07 06:09:59 -07:00
Richard Stanway
3c91fac18e UI/updater: Fix running updater as different user
If the elevated user was a different user account, the updater would
look in the wrong user's appdata for the manifest and fail.
2020-06-19 16:20:32 +02:00
Richard Stanway
f26941b566 UI/updater: Exit with error if elevation failed
In rare cases, "runas" would somehow launch the updater as a non-admin user
again, resulting in a loop where the updater constantly spawns processes.
Fixes https://github.com/obsproject/obs-studio/issues/2984
2020-06-19 16:20:32 +02:00
Richard Stanway
078ea5222d UI/updater: Fix launching OBS as admin post-update
A long standing lack of synchronization on the elevated process handle
made the non-elevated process always exit, so the updater would assume
it was started elevated and launch OBS from the elevated context.

Also applies the altered working directory to the non-elevated code
path so it can find the OBS executable properly.
2020-05-05 03:18:45 +02:00
Matthieu Cunzi
74acbd7ed0 win-capture: Add Vulkan capture
Co-authored-by: jp9000 <obs.jim@gmail.com>
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
2020-02-29 04:53:28 -08:00
jp9000
f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
Richard Stanway
5a8cad0876 UI/updater: Update some text for clarity 2019-05-31 15:47:47 +02:00
Richard Stanway
02a5d3e5db UI/updater: Add marquee progress bar for existing file check
This can take a while on a hard drive since it hashes the entire OBS
installation, show a undetermined progress marquee to avoid users
thinking that the updater has frozen.
2019-05-31 15:46:06 +02:00
jp9000
11b84a5d85 UI/updater: Fix update bug for 32bit/64bit installs
It would only check whether it should download a package if the 32bit
version existed.  This would cause it to not download all files
correctly to update 64bit installs (post 22.0.1).
2018-08-31 03:05:15 -07:00
Richard Stanway
7a9a1fa2c9
updater: Prepare for transition to Fastly CDN 2018-08-18 01:32:36 +02:00
Dmitry-Me
a5eb2b8e7e UI: Add missing return statement 2018-08-01 11:04:25 +03:00
jp9000
ceadde0838 UI/updater: Delete visual studio runtimes after execution 2018-03-18 11:12:14 -07:00
jp9000
b7e2247de2 UI/updater: Return false on integrity check failure 2018-03-15 12:11:46 -07:00
jp9000
052f395ebf UI/updater: Don't update modules of opposite arch
Saves a bit of bandwidth when the update module just updates binaries
for the specific architecture being updated.  Especially true when
libcef needs to be updated.
2018-03-15 12:06:06 -07:00
jp9000
aab6b3f55f UI/updater: Add automatic check/install for VS2017 redist
Allows users to seamlessly upgrade the version of OBS Studio to the
newer version which is built with VS2017 rather than VS2013.
2018-03-15 12:04:02 -07:00
jp9000
06d1f2768e UI/updater: Fix a few type size mismatch warnings 2018-03-15 12:04:02 -07:00
jp9000
588d74dee1 UI/updater: Set license of windows update module to ISC
This is just for the update module -- allows us the ability to
seamlessly update the program to VC2017 and seamlessly install Visual
C++ 2017 redistributables without potential issues that could be caused
by GPL usage for the update module.
2018-03-15 12:04:02 -07:00
jp9000
77da6158a4 UI/updater: Rewrite function 2018-03-15 12:04:02 -07:00
Richard Stanway
05fb67717e
UI/updater: Use TLS 1.2 with WinHTTP
On Windows 7, WinHTTP defaults to using only SSL3 and TLS 1.0. The
obsproject.com server was updated to remove TLS 1.0 support and
this has caused updates to stop working on Windows 7.
2017-10-02 15:33:34 +02:00
Richard Stanway
043fea0ab2
UI/updater: Improved handling of failure conditions
Currently if a file is partially written to (eg, the file is opened for
writing but the write fails), the updater won't correctly roll back to the
previous version, leaving the OBS install in an inconsistent state.

We now track failed installs or hash failures on patched files with a new
STATE_INSTALL_FAILED state and properly roll back on errors.
2017-08-09 03:37:39 +02:00
Richard Stanway
e59f969633
UI/updater: Restart progress bar when installing updates
When updating large files such as libcef, the patching process can take a
decent amount of time. Previously the progress bar would remain at 100%
after completing the downloads, so the user may think the updater has
frozen. Now it shows the process of the install / patching process.
2017-08-09 03:37:36 +02:00
Richard Stanway
da9e247964
UI/updater: Fix incorrect path in portable mode 2017-06-12 16:45:16 +02:00
jp9000
4f64be278c UI/updater: Ignore 64bit files on 32bit windows
This would cause people to download the 64bit files when they were on
the 32bit version of windows, even though those files aren't meant to be
installed.
2017-03-07 09:11:44 -08:00
jp9000
aab843597d UI/updater: Fix potential fail case when no files to patch
The updater would return HTTP 400 on an empty json array upload for the
patch manifest.
2017-03-06 22:20:51 -08:00
jp9000
65d453049a UI/updater: Fix temp files being created and not deleted
The GetTempPath and GetTempFileName functions weren't being used
correctly, GetTempFileName always create a temporary file, and was
creating a temporary file in the root directory of the hard drive
unintentionally.
2017-03-06 21:57:47 -08:00
jp9000
bc9a58174b UI/updater: Use better function for getting process names
EnumProcessModules may not work correctly cross-arch, so use
GetProcessImageFileName instead to ensure no issues in that case.
2017-03-06 18:23:29 -08:00
jp9000
5d136b13a7 UI/updater: Wait for OBS to close before updating 2017-03-06 05:30:58 -08:00
jp9000
86862b672e updater: Add windows updater module 2017-03-06 03:54:53 -08:00