123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /******************************************************************************
- Copyright (C) 2013 by Hugh Bailey <[email protected]>
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
- #pragma once
- #include <util/c99defs.h>
- #include <string>
- #include <vector>
- class QWidget;
- /* Gets the path of obs-studio specific data files (such as locale) */
- bool GetDataFilePath(const char *data, std::string &path);
- std::string GetDefaultVideoSavePath();
- std::vector<std::string> GetPreferredLocales();
- bool IsAlwaysOnTop(QWidget *window);
- void SetAlwaysOnTop(QWidget *window, bool enable);
- bool SetDisplayAffinitySupported(void);
- enum TaskbarOverlayStatus {
- TaskbarOverlayStatusInactive,
- TaskbarOverlayStatusActive,
- TaskbarOverlayStatusPaused,
- };
- void TaskbarOverlayInit();
- void TaskbarOverlaySetStatus(TaskbarOverlayStatus status);
- #ifdef _WIN32
- class RunOnceMutex;
- RunOnceMutex
- #else
- void
- #endif
- CheckIfAlreadyRunning(bool &already_running);
- #ifdef _WIN32
- uint32_t GetWindowsVersion();
- uint32_t GetWindowsBuild();
- void SetProcessPriority(const char *priority);
- void SetWin32DropStyle(QWidget *window);
- bool DisableAudioDucking(bool disable);
- struct RunOnceMutexData;
- class RunOnceMutex {
- RunOnceMutexData *data = nullptr;
- public:
- RunOnceMutex(RunOnceMutexData *data_) : data(data_) {}
- RunOnceMutex(const RunOnceMutex &rom) = delete;
- RunOnceMutex(RunOnceMutex &&rom);
- ~RunOnceMutex();
- RunOnceMutex &operator=(const RunOnceMutex &rom) = delete;
- RunOnceMutex &operator=(RunOnceMutex &&rom);
- };
- #if QT_VERSION < QT_VERSION_CHECK(6, 4, 0)
- QString GetMonitorName(const QString &id);
- #endif
- bool IsRunningOnWine();
- #endif
- #ifdef __APPLE__
- typedef enum {
- kAudioDeviceAccess = 0,
- kVideoDeviceAccess = 1,
- kScreenCapture = 2,
- kAccessibility = 3
- } MacPermissionType;
- typedef enum {
- kPermissionNotDetermined = 0,
- kPermissionRestricted = 1,
- kPermissionDenied = 2,
- kPermissionAuthorized = 3,
- } MacPermissionStatus;
- void EnableOSXVSync(bool enable);
- void EnableOSXDockIcon(bool enable);
- bool isInBundle();
- void InstallNSApplicationSubclass();
- void InstallNSThreadLocks();
- void disableColorSpaceConversion(QWidget *window);
- MacPermissionStatus CheckPermissionWithPrompt(MacPermissionType type,
- bool prompt_for_permission);
- #define CheckPermission(x) CheckPermissionWithPrompt(x, false)
- #define RequestPermission(x) CheckPermissionWithPrompt(x, true)
- void OpenMacOSPrivacyPreferences(const char *tab);
- #endif
|