Commit Graph

53 Commits (c165798959b991ac1f1e04fbc7395b636085fc3c)

Author SHA1 Message Date
jp9000 7993179466 cmake: Add cmake folders 2020-05-13 06:52:37 -07: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
jp9000 0fb34ed965 UI: Fix closing OBS before showing whats new dialog
The program can get stuck waiting for the browser within a event queue,
so instead mark that the program is closing, do it in a separate thread,
signal the window when it's finished, and then check whether it's in the
process of closing before actually showing the dialog.
2020-03-16 08:59:46 -07:00
jp9000 141c42c4b5 win-capture: Allow write permission on graphics hook
(This commit also modified the updater module on Windows)

Ensures that an older hook version can be replaced by a newer hook
version.
2020-03-08 15:56:23 -07:00
jp9000 abf3ed2b05 win-capture: Remove SYNCHRONIZE permission
This isn't really meant for file permissions.  This is meant for handle
permissions.
2020-03-08 15:56:23 -07:00
jp9000 e7b0a45126 UI/updater: Add perms for ALL APPLICATION PACKAGES
Adds hook dir perms for ALL APPLICATION PACKAGES, which enables capture
on microsoft store games
2020-03-07 03:37:19 -08: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
Richard Stanway 4b9f3cb369 UI: Always prompt when updates are available
The current updater code won't prompt the user if an output is active or
if game capture is in use. These are both fairly common situations to be
in as soon as OBS starts up - for example, the NDI and VirtualCam
plugins both start outputs automatically, and a game capture source will
hook if the game is open.

It should be fairly obvious to a user that OBS will be closed when an
update is installed. Given the low frequency of game capture updates,
the risk of an update encountering in-use files is also very low, and
the standalone updater UI already shows a prompt should this happen.
2020-02-03 22:42:00 +01:00
craftwar 6ffc4f590a UI/updater: Fix variable type to format specifier 2019-09-02 21:14:21 +08:00
Michael Fabian 'Xaymar' Dirks 3b0238fc11 UI: Catch by reference 2019-07-24 18:26:44 +02: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
Richard Stanway 5048fe2026 UI/updater: Add manifest file for DPI awareness 2019-05-31 15:39:51 +02:00
Richard Stanway 69ffce3479 UI: Allocate space for null terminator 2019-02-19 21:57:22 +01:00
jp9000 82848d513e libobs: Add obs_video_active() function
(This commit also modifies UI)

Adds a universal function for determining whether video output is
currently active, rather than having to use video_output_active() on the
value returned by obs_get_video().
2019-02-07 17:00:46 -08:00
jp9000 8f106dc3c1 libobs, UI: Do not log redundant warnings
Reduces log file clutter by not logging certain warning messages that
were already safe/normal/expected failures.
2019-01-12 16:50:55 -08:00
jp9000 b3ef46d986 cmake: Make static VC runtime libraries consistent
Makes Visual C runtime libraries consistent across
Debug/MinSizeRel/Release/RelWithDebInfo, rather than just changing those
flags for RelWithDebInfo.  Also adds /Zl for statically linked
libraries.

Closes obsproject/obs-studio#1421
2018-09-12 07:49:13 -07: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 2fd15b0357
UI/updater: Add missing header 2018-08-27 15:07:16 +02:00
Richard Stanway 7a9a1fa2c9
updater: Prepare for transition to Fastly CDN 2018-08-18 01:32:36 +02:00
jp9000 ee513000dc UI: Protect GUID generation in mutex
GUID can be generated/retrieved by both the updater thread and the main
thread, so make sure it's guarded by a mutex.
2018-08-13 01:19:23 -07:00
Dmitry-Me a5eb2b8e7e UI: Add missing return statement 2018-08-01 11:04:25 +03:00
jp9000 a032bcc798 UI: Add intro startup page (windows)
Allows the ability to show a web page via CEF to the users on startup to
present and announce new features.
2018-07-29 23:32:23 -07:00
jp9000 46f08af5e5 UI: Remove ENABLE_WIN_UPDATE cmake variable 2018-05-12 17:11:02 -07: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 efe67ad3fd UI/updater: Fix resource compiling bug
The afxres.h header file typically requires MFC to be installed, but
winres.h should be sufficient instead.
2018-03-15 12:04:02 -07:00
jp9000 5063644831 UI/updater: Fix bug with restrict keyword on VS2017 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 522f5cdf3b UI: Make sure all message box buttons are translated
Instead of QMessageBox::question and QMessageBox::information, use the
OBSMessageBox class, which translates all buttons.
2017-05-13 14:06:32 -07:00
e00E 26c28b4502 UI: Fix warning in VisualStudio 2017
When building with VS2017 the compiler shows some warnings which is
undesirable.

The compiler rightly complains about declarations which hide older ones
which are trivially fixed.

Finally only POD types should be passed to variadic functions which is
why the String should be converted to c_str().
Relying on the current undefined behavior is a bad idea as it can change
with compilers and compiler versions.

Closes jp9000/obs-studio#902
2017-05-04 06:13:45 -07:00
e00E 4361c5bd45 UI, obs-qsv11: Fix build in VisualStudio 2017
OBS did not build out of the box in VS2017 but it does with these
changes.

Closes jp9000/obs-studio#902
2017-05-04 06:13:26 -07:00
jp9000 4684294bcd UI/updater: Add opt to disable building update module
Mostly to reduce build time when the update module doesn't need to be
rebuilt.
2017-05-02 03:45:20 -07:00
Richard Stanway a8106115d9
UI/updater: Fix incorrect inflate use
Same issue as 77ceb97 corrected but for POST responses.
2017-03-10 16:19:04 +01: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 77ceb97f96 UI/updater: Fixed a bug with deflating
The file could deflate infinitely until hard drive space ran out.
2017-03-07 09:01:03 -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