Code signing for macOS (#471)

* rewrite PCM interface
use public methods, hide internal implementation
use ifft for smoothing

* AutoLeveler

* remove slow std::transform()

* faster smooth algorithm

* perf - quick check for no equations

* adjustments for wavecode.bspectrum=1

* cleanup use of BeatDetect.beatSensitivity

* comments

* more comments

* enum CHANNEL

* fix windows build

* fix windows build

* wip

* macOS installer signing works finally

* version bump

Co-authored-by: Matthew Bellew <matthewb@labkey.com>
This commit is contained in:
Mischa Spiegelmock 2021-02-23 22:11:57 +02:00 committed by GitHub
parent e985a49fd3
commit 23027108b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 166 additions and 57 deletions

View File

@ -23,6 +23,10 @@
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
16CF110C25E1B35F00B4A951 /* Distribution.xml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 16CF110B25E1B35F00B4A951 /* Distribution.xml */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
1648A64525D7FD520075B8FC /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
@ -68,6 +72,7 @@
dstPath = "";
dstSubfolderSpec = 16;
files = (
16CF110C25E1B35F00B4A951 /* Distribution.xml in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -77,6 +82,7 @@
1648A64025D7FD520075B8FC /* SDLprojectM.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDLprojectM.xcodeproj; path = "src/projectM-sdl/SDLprojectM.xcodeproj"; sourceTree = "<group>"; };
168E975025D7FDDA0073B1B8 /* Music Plugin.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Music Plugin.xcodeproj"; path = "src/projectM-MusicPlugin/Music Plugin.xcodeproj"; sourceTree = "<group>"; };
168E976E25D800F90073B1B8 /* ProjectM-MusicPlugin.pkg */ = {isa = PBXFileReference; lastKnownFileType = file; name = "ProjectM-MusicPlugin.pkg"; path = "src/projectM-MusicPlugin/ProjectM-MusicPlugin.pkg"; sourceTree = "<group>"; };
16CF110B25E1B35F00B4A951 /* Distribution.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = Distribution.xml; path = mac/Distribution.xml; sourceTree = "<group>"; };
16F25E9C25D81737002EC64E /* ProjectM-SDL.pkg */ = {isa = PBXFileReference; lastKnownFileType = file; name = "ProjectM-SDL.pkg"; path = "src/projectM-sdl/ProjectM-SDL.pkg"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -84,6 +90,7 @@
1648A5E725D7FB650075B8FC = {
isa = PBXGroup;
children = (
16CF110B25E1B35F00B4A951 /* Distribution.xml */,
16F25E9C25D81737002EC64E /* ProjectM-SDL.pkg */,
168E976E25D800F90073B1B8 /* ProjectM-MusicPlugin.pkg */,
168E975025D7FDDA0073B1B8 /* Music Plugin.xcodeproj */,
@ -200,7 +207,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -euxo pipefail\n\necho BUILT_PRODUCTS_DIR $BUILT_PRODUCTS_DIR\nls \"$BUILT_PRODUCTS_DIR\"\n\nmkdir -p \"$TEMP_DIR\"\n\nSDL_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-SDL.pkg\"\nMUSIC_PLUGIN_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-MusicPlugin.pkg\"\n\nproductbuild --timestamp --sign '5926VBQM6Y' --package $SDL_PKG --package $MUSIC_PLUGIN_PKG \"$BUILT_PRODUCTS_DIR/ProjectM.pkg\"\n#productbuild --package \"$SDL_PKG\" --package \"$MUSIC_PLUGIN_PKG\" \"$TEMP_DIR/ProjectM.pkg\"\n\necho \"Created installer package $TEMP_DIR/ProjectM.pkg\"\n\ncp -rp \"$TEMP_DIR/ProjectM.pkg\" \"$SRCROOT/\"\n";
shellScript = "set -euxo pipefail\n\necho BUILT_PRODUCTS_DIR $BUILT_PRODUCTS_DIR\nls \"$BUILT_PRODUCTS_DIR\"\n\nmkdir -p \"$TEMP_DIR\"\n\nSDL_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-SDL.pkg\"\nMUSIC_PLUGIN_PKG=\"$BUILT_PRODUCTS_DIR/ProjectM-MusicPlugin.pkg\"\n\n#productbuild --timestamp --sign '5926VBQM6Y' --package $SDL_PKG --package $MUSIC_PLUGIN_PKG \"$TEMP_DIR/ProjectM.pkg\"\nproductbuild --timestamp --sign '5926VBQM6Y' --distribution mac/Distribution.xml --package-path \"$BUILT_PRODUCTS_DIR\" \"$TEMP_DIR/ProjectM.pkg\"\n#productbuild --package \"$SDL_PKG\" --package \"$MUSIC_PLUGIN_PKG\" \"$TEMP_DIR/ProjectM.pkg\"\n\necho \"Created installer package $TEMP_DIR/ProjectM.pkg\"\n\ncp -rp \"$TEMP_DIR/ProjectM.pkg\" \"$SRCROOT/\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

View File

@ -40,10 +40,16 @@ build-mac: macOS/Build/Products/Debug/presets
open macOS/Build/Products/Debug
ProjectM.pkg:
xcrun xcodebuild -scheme "ProjectM Installer" -configuration Release archive -archivePath build/ProjectM.xcarchive
xcrun xcodebuild -allowProvisioningUpdates -scheme "ProjectM Installer" -configuration Release archive -archivePath build/ProjectM.xcarchive
# do a macOS build
dist-mac: dist ProjectM.pkg
xcrun altool --notarize-app --primary-bundle-id "net.projectm.installer" \
--asc-provider 'MischaSpiegelmock10100337' \
--username thadwooster@gmail.com --password @keychain:AC_PASSWORD \
--file "$(PWD)/ProjectM.pkg"
@echo "Progress: $ xcrun altool -u thadwooster@gmail.com -p @keychain:AC_PASSWORD --notarization-info UUID"
@echo "Staple: $ xcrun stapler staple $(PWD)/dist/projectM-macOS.pkg"
rm -rf dist
mkdir -p dist
mv ProjectM.pkg dist/projectM-macOS.pkg

BIN
background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

View File

@ -1,4 +1,4 @@
AC_INIT([projectM], [3.1.12], [me@mish.dev], [projectM], [https://github.com/projectM-visualizer/projectm/])
AC_INIT([projectM], [3.1.13], [me@mish.dev], [projectM], [https://github.com/projectM-visualizer/projectm/])
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects tar-pax])
AX_IS_RELEASE([git-directory])

24
mac/Distribution.xml Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<installer-gui-script minSpecVersion="1">
<title>projectM Visualizer</title>
<!-- <background file="background.png" alignment="center" mime-type="image/png" scaling="tofit" />-->
<pkg-ref id="net.projectm.music-plugin"/>
<pkg-ref id="net.projectm.sdl"/>
<options customize="never" require-scripts="false" hostArchitectures="x86_64,arm64"/>
<choices-outline>
<line choice="default">
<line choice="net.projectm.music-plugin"/>
<line choice="net.projectm.sdl"/>
</line>
</choices-outline>
<choice id="default"/>
<choice id="net.projectm.music-plugin" visible="false">
<pkg-ref id="net.projectm.music-plugin"/>
</choice>
<pkg-ref id="net.projectm.music-plugin" onConclusion="none">ProjectM-MusicPlugin.pkg</pkg-ref>
<choice id="net.projectm.sdl" visible="false">
<pkg-ref id="net.projectm.sdl"/>
</choice>
<pkg-ref id="net.projectm.sdl" onConclusion="none">ProjectM-SDL.pkg</pkg-ref>
</installer-gui-script>

12
mac/notarize.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
DIR="$( dirname "$_" )"
xcrun altool --notarize-app --primary-bundle-id "net.projectm.installer" \
--asc-provider 'MischaSpiegelmock10100337' \
--username thadwooster@gmail.com --password @keychain:AC_PASSWORD \
--file "$DIR/../ProjectM.pkg"
# sleep 60
# xcrun altool --notarization-history 0 $AUTH
# xcrun stapler staple "$DIR/../ProjectM.pkg"

View File

@ -311,7 +311,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
shellScript = "set -euxo pipefail\n\nPOUT=\"$BUILT_PRODUCTS_DIR\"/\"$CONTENTS_FOLDER_PATH/Resources/presets\"\nPIN=\"$SRCROOT\"/../../presets\n\nmkdir -p \"$POUT\"\nfor preset_dir in \"$PIN/\"*; do\ncp \"$preset_dir/\"* \"$POUT/\"\ndone\necho \"Copied presets to $POUT\"\n\nPKGNAME=ProjectM-MusicPlugin.pkg\n\nmkdir -p \"$TEMP_DIR\"\npkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/Properties/ProjectM-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n\n# for combined installer\ncp \"$TEMP_DIR/$PKGNAME\" \"$BUILT_PRODUCTS_DIR/\"\n\n# for convenience\nmv \"$TEMP_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
shellScript = "set -euxo pipefail\n\nPOUT=\"$BUILT_PRODUCTS_DIR\"/\"$CONTENTS_FOLDER_PATH/Resources/presets\"\nPIN=\"$SRCROOT\"/../../presets\n\nmkdir -p \"$POUT\"\nfor preset_dir in \"$PIN/\"*; do\ncp \"$preset_dir/\"* \"$POUT/\"\ndone\necho \"Copied presets to $POUT\"\n\nPKGNAME=ProjectM-MusicPlugin.pkg\n\nmkdir -p \"$TEMP_DIR\"\npkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/Properties/ProjectM-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n#pkgbuild --component-plist \"$SRCROOT/Properties/ProjectM-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n\n# for combined installer\ncp \"$TEMP_DIR/$PKGNAME\" \"$BUILT_PRODUCTS_DIR/\"\n\n# for convenience\nmv \"$TEMP_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@ -367,6 +367,7 @@
CODE_SIGN_IDENTITY = "Developer ID Application: Mischa Spiegelmock (5926VBQM6Y)";
COPY_PHASE_STRIP = NO;
DEPLOYMENT_LOCATION = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
DYLIB_CURRENT_VERSION = 1.0.0;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
@ -392,6 +393,7 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks/";
MACOSX_DEPLOYMENT_TARGET = 10.7;
ONLY_ACTIVE_ARCH = YES;
OTHER_CODE_SIGN_FLAGS = "--timestamp";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_LDFLAGS = "";
SDKROOT = macosx;
@ -428,6 +430,7 @@
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
DYLIB_CURRENT_VERSION = 1.0.0;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
@ -446,6 +449,7 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks/";
MACOSX_DEPLOYMENT_TARGET = 10.7;
ONLY_ACTIVE_ARCH = YES;
OTHER_CODE_SIGN_FLAGS = "--timestamp";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_LDFLAGS = "";
SDKROOT = macosx;
@ -457,10 +461,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macos/contrib",
@ -491,7 +492,6 @@
MARKETING_VERSION = 2.5;
PRODUCT_BUNDLE_IDENTIFIER = "net.projectm.music-plugin";
PRODUCT_NAME = ProjectM;
PROVISIONING_PROFILE_SPECIFIER = "";
WRAPPER_EXTENSION = bundle;
};
name = Debug;
@ -500,10 +500,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macos/contrib",
@ -534,7 +531,6 @@
MARKETING_VERSION = 2.5;
PRODUCT_BUNDLE_IDENTIFIER = "net.projectm.music-plugin";
PRODUCT_NAME = ProjectM;
PROVISIONING_PROFILE_SPECIFIER = "";
WRAPPER_EXTENSION = bundle;
};
name = Release;

View File

@ -400,7 +400,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "ls \"$CONFIGURATION_BUILD_DIR\"\nPKGNAME=ProjectM-SDL.pkg\n\nset -euxo pipefail\n\nmkdir -p \"$DSTROOT/Applications\" \"$DERIVED_FILE_DIR\"\ncp -rp \"$CONFIGURATION_BUILD_DIR/ProjectM.app\" \"$DSTROOT/Applications\"\n\necho \"DSTROOT: $DSTROOT/Applications\"\nls \"$DSTROOT/Applications\"\n\npkgbuild --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n#pkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$BUILT_PRODUCTS_DIR/$PKGNAME\"\n\necho \"Created installer package $TEMP_DIR/$PKGNAME\"\n\n# for combined installer\ncp \"$TEMP_DIR/$PKGNAME\" \"$BUILT_PRODUCTS_DIR/\"\n\n# for convenience\nmv \"$TEMP_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
shellScript = "ls \"$CONFIGURATION_BUILD_DIR\"\nPKGNAME=ProjectM-SDL.pkg\n\nset -euxo pipefail\n\nmkdir -p \"$DSTROOT/Applications\" \"$DERIVED_FILE_DIR\"\ncp -rp \"$CONFIGURATION_BUILD_DIR/ProjectM.app\" \"$DSTROOT/Applications\"\n\necho \"DSTROOT: $DSTROOT/Applications\"\nls \"$DSTROOT/Applications\"\n\n#pkgbuild --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\npkgbuild --timestamp --sign '5926VBQM6Y' --component-plist \"$SRCROOT/projectMSDL-pkg.plist\" --root \"$DSTROOT\" \"$TEMP_DIR/$PKGNAME\"\n\necho \"Created installer package $TEMP_DIR/$PKGNAME\"\n\n# for combined installer\ncp \"$TEMP_DIR/$PKGNAME\" \"$BUILT_PRODUCTS_DIR/\"\n\n# for convenience\nmv \"$TEMP_DIR/$PKGNAME\" \"$SRCROOT/\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@ -450,19 +450,15 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
GCC_UNROLL_LOOPS = YES;
INFOPLIST_FILE = "projectM-SDL/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
MARKETING_VERSION = 3.1.11;
MARKETING_VERSION = 3.1.12;
OTHER_CFLAGS = "-DDATADIR_PATH='\"/usr/local/share/projectM\"'";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app;
@ -473,20 +469,16 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 5926VBQM6Y;
GCC_OPTIMIZATION_LEVEL = fast;
GCC_UNROLL_LOOPS = YES;
INFOPLIST_FILE = "projectM-SDL/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
MARKETING_VERSION = 3.1.11;
MARKETING_VERSION = 3.1.12;
OTHER_CFLAGS = "-DDATADIR_PATH='\"/usr/local/share/projectM\"'";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app;
@ -515,7 +507,9 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_ENTITLEMENTS = SDLprojectM.entitlements;
CODE_SIGN_IDENTITY = "Developer ID Application: Mischa Spiegelmock (5926VBQM6Y)";
DEVELOPMENT_TEAM = 5926VBQM6Y;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
@ -543,6 +537,7 @@
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "-DDATADIR_PATH='\"/usr/local/share/projectM\"'";
OTHER_CODE_SIGN_FLAGS = "--timestamp";
OTHER_LDFLAGS = "-lSDL2";
};
name = Debug;
@ -569,7 +564,9 @@
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_ENTITLEMENTS = SDLprojectM.entitlements;
CODE_SIGN_IDENTITY = "Developer ID Application: Mischa Spiegelmock (5926VBQM6Y)";
DEVELOPMENT_TEAM = 5926VBQM6Y;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
@ -591,6 +588,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "-DDATADIR_PATH='\"/usr/local/share/projectM\"'";
OTHER_CODE_SIGN_FLAGS = "--timestamp";
OTHER_LDFLAGS = "-lSDL2";
};
name = Release;
@ -599,17 +597,11 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_ENTITLEMENTS = SDLprojectM.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 5926VBQM6Y;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = "$(SRCROOT)/projectM-SDL/Info.plist";
LIBRARY_SEARCH_PATHS = /usr/local/lib;
MARKETING_VERSION = 3.1.11;
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SYMROOT = "$(SRCROOT)/build";
};
name = Debug;
@ -618,17 +610,11 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_ENTITLEMENTS = SDLprojectM.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 5926VBQM6Y;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = "$(SRCROOT)/projectM-SDL/Info.plist";
LIBRARY_SEARCH_PATHS = /usr/local/lib;
MARKETING_VERSION = 3.1.11;
PRODUCT_BUNDLE_IDENTIFIER = net.projectm.sdl;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SYMROOT = "$(SRCROOT)/build";
};
name = Release;

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "C34521431BF02293001707D2"
BuildableName = "SDLprojectM"
BlueprintName = "SDLprojectM"
ReferencedContainer = "container:SDLprojectM.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "C34521431BF02293001707D2"
BuildableName = "SDLprojectM"
BlueprintName = "SDLprojectM"
ReferencedContainer = "container:SDLprojectM.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "CG_CONTEXT_SHOW_BACKTRACE"
value = "1"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "C34521431BF02293001707D2"
BuildableName = "SDLprojectM"
BlueprintName = "SDLprojectM"
ReferencedContainer = "container:SDLprojectM.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Release">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -107,7 +107,7 @@ int projectMSDL::toggleAudioInput() {
}
int projectMSDL::initAudioInput() {
// params for audio input
SDL_AudioSpec want, have;
@ -142,7 +142,7 @@ int projectMSDL::initAudioInput() {
audioSampleCount = have.samples;
audioFormat = have.format;
audioInputDevice = audioDeviceID;
return 1;
}
@ -153,7 +153,7 @@ int projectMSDL::openAudioInput() {
const char* driver_name = SDL_GetCurrentAudioDriver();
SDL_Log("Using audio driver: %s\n", driver_name);
#endif
// get audio input device
NumAudioDevices = SDL_GetNumAudioDevices(true); // capture, please
@ -169,11 +169,11 @@ int projectMSDL::openAudioInput() {
SDL_Log("Found audio capture device %d: %s", i, SDL_GetAudioDeviceName(i, true));
}
#endif
// default selected Audio Device to 0.
selectedAudioDevice = 0;
initAudioInput();
return 1;
}
@ -251,7 +251,7 @@ void projectMSDL::nextMonitor()
std::vector<SDL_Rect> displayBounds;
int nextWindow = currentWindowIndex + 1;
if (nextWindow >= displayCount) nextWindow = 0;
for (int i = 0; i < displayCount; i++)
{
displayBounds.push_back(SDL_Rect());
@ -320,7 +320,7 @@ void projectMSDL::keyHandler(SDL_Event *sdl_evt) {
}
break;
case SDLK_ESCAPE:
if (projectM::isTextInputActive())
if (projectM::isTextInputActive())
SDL_StopTextInput();
break;
case SDLK_i:
@ -443,7 +443,7 @@ void projectMSDL::resize(unsigned int width_, unsigned int height_) {
void projectMSDL::pollEvent() {
SDL_Event evt;
int mousex = 0;
float mousexscale = 0;
int mousey = 0;
@ -528,12 +528,12 @@ void projectMSDL::pollEvent() {
// Scale those coordinates. libProjectM supports a scale of 0.1 instead of absolute pixel coordinates.
mousexscale = (mousex / (float)width);
mouseyscale = ((height - mousey) / (float)height);
// Drag Touch.
// Drag Touch.
touchDrag(mousexscale, mouseyscale, mousepressure);
}
}
// This touches the screen to generate a waveform at X / Y.
// This touches the screen to generate a waveform at X / Y.
void projectMSDL::touch(float x, float y, int pressure, int touchtype) {
#ifdef PROJECTM_TOUCH_ENABLED
projectM::touch(x, y, pressure, touchtype);
@ -695,7 +695,7 @@ void projectMSDL::renderTexture() {
void projectMSDL::presetSwitchedEvent(bool isHardCut, size_t index) const {
std::string presetName = getPresetName(index);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "Displaying preset: %s\n", presetName.c_str());
std::string newTitle = "projectM ➫ " + presetName;
SDL_SetWindowTitle(win, newTitle.c_str());
}

View File

@ -13,7 +13,7 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>projectM SDL.app</string>
<string>ProjectM.app</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>

View File

@ -24,15 +24,8 @@
#include "sdltoprojectM.h"
#include "ConfigFile.h"
#include "getConfigFilename.h"
#include "projectM-opengl.h"
#include <stdlib.h>
#ifdef __unix__
#include <GL/gl.h>
#endif
#ifdef __APPLE__
#include <OpenGL/gl.h>
#endif
#include <cassert>
projectM *globalPM= NULL;