pax_global_header00006660000000000000000000000064144647253400014523gustar00rootroot0000000000000052 comment=68c6492c3f4e5507a343bd821f7112610d32e430 SceneSwitcher-1.23.1/000077500000000000000000000000001446472534000143555ustar00rootroot00000000000000SceneSwitcher-1.23.1/.clang-format000066400000000000000000000063301446472534000167320ustar00rootroot00000000000000# please use clang-format version 8 or later Standard: Cpp11 AccessModifierOffset: -8 AlignAfterOpenBracket: Align AlignConsecutiveAssignments: false AlignConsecutiveDeclarations: false AlignEscapedNewlines: Left AlignOperands: true AlignTrailingComments: true #AllowAllArgumentsOnNextLine: false # requires clang-format 9 #AllowAllConstructorInitializersOnNextLine: false # requires clang-format 9 AllowAllParametersOfDeclarationOnNextLine: false AllowShortBlocksOnASingleLine: false AllowShortCaseLabelsOnASingleLine: false AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: false #AllowShortLambdasOnASingleLine: Inline # requires clang-format 9 AllowShortLoopsOnASingleLine: false AlwaysBreakAfterDefinitionReturnType: None AlwaysBreakAfterReturnType: None AlwaysBreakBeforeMultilineStrings: false AlwaysBreakTemplateDeclarations: false BinPackArguments: true BinPackParameters: true BraceWrapping: AfterClass: false AfterControlStatement: false AfterEnum: false AfterFunction: true AfterNamespace: false AfterObjCDeclaration: false AfterStruct: false AfterUnion: false AfterExternBlock: false BeforeCatch: false BeforeElse: false IndentBraces: false SplitEmptyFunction: true SplitEmptyRecord: true SplitEmptyNamespace: true BreakBeforeBinaryOperators: None BreakBeforeBraces: Custom BreakBeforeTernaryOperators: true BreakConstructorInitializers: BeforeColon BreakStringLiterals: false # apparently unpredictable ColumnLimit: 80 CompactNamespaces: false ConstructorInitializerAllOnOneLineOrOnePerLine: true ConstructorInitializerIndentWidth: 8 ContinuationIndentWidth: 8 Cpp11BracedListStyle: true DerivePointerAlignment: false DisableFormat: false FixNamespaceComments: false ForEachMacros: - 'json_object_foreach' - 'json_object_foreach_safe' - 'json_array_foreach' IncludeBlocks: Preserve IndentCaseLabels: false IndentPPDirectives: None IndentWidth: 8 IndentWrappedFunctionNames: false KeepEmptyLinesAtTheStartOfBlocks: true MaxEmptyLinesToKeep: 1 NamespaceIndentation: None #ObjCBinPackProtocolList: Auto # requires clang-format 7 ObjCBlockIndentWidth: 8 ObjCSpaceAfterProperty: true ObjCSpaceBeforeProtocolList: true PenaltyBreakAssignment: 10 PenaltyBreakBeforeFirstCallParameter: 30 PenaltyBreakComment: 10 PenaltyBreakFirstLessLess: 0 PenaltyBreakString: 10 PenaltyExcessCharacter: 100 PenaltyReturnTypeOnItsOwnLine: 60 PointerAlignment: Right ReflowComments: false SortIncludes: false SortUsingDeclarations: false SpaceAfterCStyleCast: false #SpaceAfterLogicalNot: false # requires clang-format 9 SpaceAfterTemplateKeyword: false SpaceBeforeAssignmentOperators: true #SpaceBeforeCtorInitializerColon: true # requires clang-format 7 #SpaceBeforeInheritanceColon: true # requires clang-format 7 SpaceBeforeParens: ControlStatements #SpaceBeforeRangeBasedForLoopColon: true # requires clang-format 7 SpaceInEmptyParentheses: false SpacesBeforeTrailingComments: 1 SpacesInAngles: false SpacesInCStyleCastParentheses: false SpacesInContainerLiterals: false SpacesInParentheses: false SpacesInSquareBrackets: false #StatementMacros: # requires clang-format 8 # - 'Q_OBJECT' TabWidth: 8 #TypenameMacros: # requires clang-format 9 # - 'DARRAY' UseTab: ForContinuationAndIndentation --- Language: ObjC SceneSwitcher-1.23.1/.github/000077500000000000000000000000001446472534000157155ustar00rootroot00000000000000SceneSwitcher-1.23.1/.github/ISSUE_TEMPLATE/000077500000000000000000000000001446472534000201005ustar00rootroot00000000000000SceneSwitcher-1.23.1/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000021101446472534000225640ustar00rootroot00000000000000--- name: Bug report about: Create a report to help us improve title: '' labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Logs** Please provide a log of your issue with verbose logging enabled (See General tab of the plugin). In case of a crash, please also include the corresponding crash log. See [here](https://obsproject.com/forum/threads/please-post-a-log-with-your-issue-heres-how.23074/) for a description where to find the log files and how to share them. Please share the currently used plugin settings by exporting them them to a file (See General tab of the plugin). If applicable, add screenshots to help explain your problem. **Version information** - OS: [e.g. Windows 10] - OBS Version [e.g. 27.1.3] - Plugin Version [e.g. 1.17.1] **Additional context** Add any other context about the problem here. SceneSwitcher-1.23.1/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000005771446472534000221010ustar00rootroot00000000000000blank_issues_enabled: true contact_links: - name: Help/Support url: https://github.com/WarmUpTill/SceneSwitcher/wiki about: For general questions about how to use and configure the plugin please have a look at the wiki (https://github.com/WarmUpTill/SceneSwitcher/wiki) or ask questions in the OBS forum (https://obsproject.com/forum/threads/advanced-scene-switcher.48264/)SceneSwitcher-1.23.1/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000011231446472534000236220ustar00rootroot00000000000000--- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. SceneSwitcher-1.23.1/.github/actions/000077500000000000000000000000001446472534000173555ustar00rootroot00000000000000SceneSwitcher-1.23.1/.github/actions/build-plugin/000077500000000000000000000000001446472534000217505ustar00rootroot00000000000000SceneSwitcher-1.23.1/.github/actions/build-plugin/action.yml000066400000000000000000000047411446472534000237560ustar00rootroot00000000000000name: 'Setup and build plugin' description: 'Builds the plugin for specified architecture and build config.' inputs: target: description: 'Build target for dependencies' required: true config: description: 'Build configuration' required: false default: 'Release' codesign: description: 'Enable codesigning (macOS only)' required: false default: 'false' codesignIdent: description: 'Developer ID for application codesigning (macOS only)' required: false default: '-' visualStudio: description: 'Visual Studio version (Windows only)' required: false default: 'Visual Studio 16 2019' portable: description: 'Set portable mode (Linux only)' required: false default: 'false' workingDirectory: description: 'Working directory for packaging' required: false default: ${{ github.workspace }} runs: using: 'composite' steps: - name: Setup cmake uses: jwlawson/actions-setup-cmake@v1.13 with: cmake-version: '3.24.x' - name: Run macOS Build if: ${{ runner.os == 'macOS' }} shell: zsh {0} env: CODESIGN_IDENT: ${{ inputs.codesignIdent }} run: | build_args=( -c ${{ inputs.config }} -t macos-${{ inputs.target }} ) if [[ '${{ inputs.codesign }}' == 'true' ]] build_args+=(-s) if (( ${+CI} && ${+RUNNER_DEBUG} )) build_args+=(--debug) ${{ inputs.workingDirectory }}/.github/scripts/build-macos.zsh ${build_args} - name: Run Linux Build if: ${{ runner.os == 'Linux' }} shell: bash run: | build_args=( -c ${{ inputs.config }} -t linux-${{ inputs.target }} ) if [[ -n "${CI}" && -n "${RUNNER_DEBUG}" ]]; then build_args+=(--debug) fi if [[ '${{ inputs.portable }}' == 'true' ]]; then build_args+=(-p) fi ${{ inputs.workingDirectory }}/.github/scripts/build-linux.sh "${build_args[@]}" - name: Run Windows Build if: ${{ runner.os == 'Windows' }} shell: pwsh run: | $BuildArgs = @{ Target = '${{ inputs.target }}' Configuration = '${{ inputs.config }}' CMakeGenerator = '${{ inputs.visualStudio }}' } if ( ( Test-Path env:CI ) -and ( Test-Path env:RUNNER_DEBUG ) ) { $BuildArgs += @{ Debug = $true } } ${{ inputs.workingDirectory }}/.github/scripts/Build-Windows.ps1 @BuildArgs SceneSwitcher-1.23.1/.github/actions/package-plugin/000077500000000000000000000000001446472534000222445ustar00rootroot00000000000000SceneSwitcher-1.23.1/.github/actions/package-plugin/action.yml000066400000000000000000000063061446472534000242510ustar00rootroot00000000000000name: 'Package plugin' description: 'Packages the plugin for specified architecture and build config.' inputs: target: description: 'Build target for dependencies' required: true config: description: 'Build configuration' required: false default: 'Release' codesign: description: 'Enable codesigning (macOS only)' required: false default: 'false' notarize: description: 'Enable notarization (macOS only)' required: false default: 'false' codesignIdent: description: 'Developer ID for application codesigning (macOS only)' required: false default: '-' installerIdent: description: 'Developer ID for installer package codesigning (macOS only)' required: false default: '' codesignUser: description: 'Apple ID username for notarization (macOS only)' required: false default: '' codesignPass: description: 'Apple ID password for notarization (macOS only)' required: false default: '' createInstaller: description: 'Create InnoSetup installer (Windows only)' required: false default: 'false' portable: description: 'Create deb package / portable archive (Linux only)' required: false default: 'false' workingDirectory: description: 'Working directory for packaging' required: false default: ${{ github.workspace }} runs: using: 'composite' steps: - name: Run macOS packaging if: ${{ runner.os == 'macOS' }} shell: zsh {0} env: CODESIGN_IDENT: ${{ inputs.codesignIdent }} CODESIGN_IDENT_INSTALLER: ${{ inputs.installerIdent }} CODESIGN_IDENT_USER: ${{ inputs.codesignUser }} CODESIGN_IDENT_PASS: ${{ inputs.codesignPass }} run: | package_args=( -c ${{ inputs.config }} -t macos-${{ inputs.target }} ) if [[ '${{ inputs.codesign }}' == 'true' ]] package_args+=(-s) if [[ '${{ inputs.notarize }}' == 'true' ]] package_args+=(-n) if (( ${+CI} && ${+RUNNER_DEBUG} )) build_args+=(--debug) package_args+=(-z) ${{ inputs.workingDirectory }}/.github/scripts/package-macos.zsh ${package_args} - name: Run Linux packaging if: ${{ runner.os == 'Linux' }} shell: bash run: | package_args=( -c ${{ inputs.config }} -t linux-${{ inputs.target }} ) if [[ -n "${CI}" && -n "${RUNNER_DEBUG}" ]]; then build_args+=(--debug) fi if [[ '${{ inputs.portable }}' == 'true' ]]; then package_args+=(-z) fi ${{ inputs.workingDirectory }}/.github/scripts/package-linux.sh "${package_args[@]}" - name: Run Windows packaging if: ${{ runner.os == 'Windows' }} shell: pwsh run: | $PackageArgs = @{ Target = '${{ inputs.target }}' Configuration = '${{ inputs.config }}' } if ( '${{ inputs.createInstaller }}' -eq 'true' ) { $PackageArgs += @{BuildInstaller = $true} } if ( ( Test-Path env:CI ) -and ( Test-Path env:RUNNER_DEBUG ) ) { $BuildArgs += @{ Debug = $true } } ${{ inputs.workingDirectory }}/.github/scripts/Package-Windows.ps1 @PackageArgs SceneSwitcher-1.23.1/.github/actions/run-tests/000077500000000000000000000000001446472534000213215ustar00rootroot00000000000000SceneSwitcher-1.23.1/.github/actions/run-tests/action.yml000066400000000000000000000021301446472534000233150ustar00rootroot00000000000000name: 'Package plugin' description: 'Packages the plugin for specified architecture and build config.' inputs: target: description: 'Build target' required: true workingDirectory: description: 'Working directory' required: false default: ${{ github.workspace }} runs: using: 'composite' steps: - name: Run macOS tests if: ${{ runner.os == 'macOS' }} shell: zsh {0} run: | if [[ '${{ inputs.target }}' != 'x86_64' ]]; then echo tests skipped! exit 0 fi ${{ inputs.workingDirectory }}/build_x86_64/tests/advanced-scene-switcher-tests - name: Run Linux packaging if: ${{ runner.os == 'Linux' }} shell: bash run: | if [[ '${{ inputs.target }}' != 'x86_64' ]]; then exit 0 fi ${{ inputs.workingDirectory }}/build_x86_64/tests/advanced-scene-switcher-tests - name: Run Windows packaging if: ${{ runner.os == 'Windows' }} shell: pwsh run: | ${{ inputs.workingDirectory }}/build_x64/tests/RelWithDebInfo/advanced-scene-switcher-tests.exe SceneSwitcher-1.23.1/.github/scripts/000077500000000000000000000000001446472534000174045ustar00rootroot00000000000000SceneSwitcher-1.23.1/.github/scripts/.Aptfile000066400000000000000000000002561446472534000207740ustar00rootroot00000000000000package 'cmake' package 'ccache' package 'curl' package 'git' package 'jq' package 'ninja-build', bin: 'ninja' package 'pkg-config' package 'clang' package 'clang-format-13' SceneSwitcher-1.23.1/.github/scripts/.Brewfile000066400000000000000000000001161446472534000211420ustar00rootroot00000000000000brew "ccache" brew "coreutils" brew "cmake" brew "git" brew "jq" brew "ninja" SceneSwitcher-1.23.1/.github/scripts/.Wingetfile000066400000000000000000000002261446472534000215020ustar00rootroot00000000000000package '7zip.7zip', path: '7-zip', bin: '7z' package 'cmake', path: 'Cmake\bin', bin: 'cmake' package 'innosetup', path: 'Inno Setup 6', bin: 'iscc' SceneSwitcher-1.23.1/.github/scripts/.build.zsh000077500000000000000000000271661446472534000213260ustar00rootroot00000000000000#!/usr/bin/env zsh builtin emulate -L zsh setopt EXTENDED_GLOB setopt PUSHD_SILENT setopt ERR_EXIT setopt ERR_RETURN setopt NO_UNSET setopt PIPE_FAIL setopt NO_AUTO_PUSHD setopt NO_PUSHD_IGNORE_DUPS setopt FUNCTION_ARGZERO ## Enable for script debugging # setopt WARN_CREATE_GLOBAL # setopt WARN_NESTED_VAR # setopt XTRACE autoload -Uz is-at-least && if ! is-at-least 5.2; then print -u2 -PR "%F{1}${funcstack[1]##*/}:%f Running on Zsh version %B${ZSH_VERSION}%b, but Zsh %B5.2%b is the minimum supported version. Upgrade Zsh to fix this issue." exit 1 fi _trap_error() { print -u2 -PR '%F{1} ✖︎ script execution error%f' print -PR -e " Callstack: ${(j:\n :)funcfiletrace} " exit 2 } build() { if (( ! ${+SCRIPT_HOME} )) typeset -g SCRIPT_HOME=${ZSH_ARGZERO:A:h} local host_os=${${(s:-:)ZSH_ARGZERO:t:r}[2]} local target="${host_os}-${CPUTYPE}" local project_root=${SCRIPT_HOME:A:h:h} local buildspec_file="${project_root}/buildspec.json" trap '_trap_error' ZERR fpath=("${SCRIPT_HOME}/utils.zsh" ${fpath}) autoload -Uz log_info log_error log_output set_loglevel check_${host_os} setup_${host_os} setup_obs setup_ccache if [[ ! -r ${buildspec_file} ]] { log_error \ 'No buildspec.json found. Please create a build specification for your project.' \ 'A buildspec.json.template file is provided in the repository to get you started.' return 2 } typeset -g -a skips=() local -i _verbosity=1 local -r _version='1.0.0' local -r -a _valid_targets=( macos-x86_64 macos-arm64 macos-universal linux-x86_64 ) local -r -a _valid_configs=(Debug RelWithDebInfo Release MinSizeRel) if [[ ${host_os} == 'macos' ]] { local -r -a _valid_generators=(Xcode Ninja 'Unix Makefiles') local generator="${${CI:+Ninja}:-Xcode}" } else { local -r -a _valid_generators=(Ninja 'Unix Makefiles') local generator='Ninja' } local -r _usage=" Usage: %B${functrace[1]%:*}%b