diff --git a/Aural.xcodeproj/project.pbxproj b/Aural.xcodeproj/project.pbxproj index 32b7c5768..4907445d1 100644 --- a/Aural.xcodeproj/project.pbxproj +++ b/Aural.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 53; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -6687,7 +6687,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 3.22.0; + CURRENT_PROJECT_VERSION = 3.23.0; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/Frameworks"; @@ -6706,7 +6706,7 @@ "$(PROJECT_DIR)/Resources/ffmpeg/libopenmpt/src/libopenmpt-0.7.3+release.autotools/.libs", ); MACOSX_DEPLOYMENT_TARGET = 10.13; - MARKETING_VERSION = 3.22.0; + MARKETING_VERSION = 3.23.0; PRODUCT_BUNDLE_IDENTIFIER = com.kv.Aural; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = Source/FFmpeg/ffmpeg.h; @@ -6725,7 +6725,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 3.22.0; + CURRENT_PROJECT_VERSION = 3.23.0; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/Frameworks"; @@ -6744,7 +6744,7 @@ "$(PROJECT_DIR)/Resources/ffmpeg/libopenmpt/src/libopenmpt-0.7.3+release.autotools/.libs", ); MACOSX_DEPLOYMENT_TARGET = 10.13; - MARKETING_VERSION = 3.22.0; + MARKETING_VERSION = 3.23.0; PRODUCT_BUNDLE_IDENTIFIER = com.kv.Aural; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = Source/FFmpeg/ffmpeg.h; diff --git a/Aural.xcodeproj/project.xcworkspace/xcuserdata/kven.xcuserdatad/UserInterfaceState.xcuserstate b/Aural.xcodeproj/project.xcworkspace/xcuserdata/kven.xcuserdatad/UserInterfaceState.xcuserstate index 73bcf0ea7..803513a97 100644 Binary files a/Aural.xcodeproj/project.xcworkspace/xcuserdata/kven.xcuserdatad/UserInterfaceState.xcuserstate and b/Aural.xcodeproj/project.xcworkspace/xcuserdata/kven.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Documentation/Release Notes.md b/Documentation/Release Notes.md index d9a8d5a75..bd7d9aa23 100644 --- a/Documentation/Release Notes.md +++ b/Documentation/Release Notes.md @@ -1,18 +1,18 @@ -# What's New in Version 3.22.0 +# What's New in Version 3.23.0 -## #58 - Autoplay enhancement +## Bug Fixes -Many thanks to @LesterJitsi for requesting this enhancement! +### #65 - FFmpeg seeking causes crash (arm64) -Some users would prefer the app to quietly append files to the playlist when files are opened from Finder with the "Open With" action (equivalent to double-clicking files in Finder), without immediately starting playback of the opened files. So, a new option has been added under Preferences > Playback, to allow for this behavior. +Previously, seeking with FFmpeg (within non-native tracks) would cause a crash on arm64 systems. This has been fixed. -NOTE - The default behavior will continue to be that the app begins playback of files opened with "Open With", but this can now be overriden. +### #64 - Spectrogram visualization shows no activity in first band -## #63 - New app icon +The first band of the Spectrogram visualizer view would, in some cases, not show any activity / movement. A workaround for this bug has been implemented. -Many thanks to @VisualisationExpo for requesting this enhancement, and for providing the new icon! +### #66 - Seek interval stepper controls (preferences) -Aural has a new app icon ... can't you see ;) +In the preferences window, under the Playback tab, the seek interval stepper controls showed the wrong kind of formatting on newer macOS systems. The stepper controls have been simplified to solve this problem. ### **For more info** -Visit the [official release page](https://github.com/kartik-venugopal/aural-player/releases/tag/v3.22.0) +Visit the [official release page](https://github.com/kartik-venugopal/aural-player/releases/tag/v3.23.0) diff --git a/Source/UI/CustomViews/IntervalPicker.swift b/Source/UI/CustomViews/IntervalPicker.swift index 383465d9e..44f0be371 100644 --- a/Source/UI/CustomViews/IntervalPicker.swift +++ b/Source/UI/CustomViews/IntervalPicker.swift @@ -68,7 +68,7 @@ class FormattedIntervalLabel: NSTextField { override func awakeFromNib() { - self.alignment = .left + self.alignment = .right self.font = standardFontSet.mainFont(size: 11) self.isBordered = false self.drawsBackground = false diff --git a/Source/UI/Preferences/Playback/PlaybackPreferences.xib b/Source/UI/Preferences/Playback/PlaybackPreferences.xib index 06c6c0a58..802c2ba6d 100644 --- a/Source/UI/Preferences/Playback/PlaybackPreferences.xib +++ b/Source/UI/Preferences/Playback/PlaybackPreferences.xib @@ -1,8 +1,8 @@ - + - + @@ -25,12 +25,12 @@ - + - + - + @@ -48,24 +48,6 @@ - - - - - - - - - - - - - - - - - - - + @@ -116,7 +106,7 @@ - + @@ -147,7 +137,7 @@ - + @@ -171,7 +161,7 @@ - + @@ -199,7 +189,7 @@ - + @@ -212,7 +202,7 @@ - + @@ -221,27 +211,6 @@ - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + - - - - - - - + + + - - + + + + + + + - + - - - + + + - - + + diff --git a/Source/UI/Preferences/Playback/PlaybackPreferencesViewController.swift b/Source/UI/Preferences/Playback/PlaybackPreferencesViewController.swift index 4f13cbf79..46708371f 100644 --- a/Source/UI/Preferences/Playback/PlaybackPreferencesViewController.swift +++ b/Source/UI/Preferences/Playback/PlaybackPreferencesViewController.swift @@ -14,7 +14,7 @@ class PlaybackPreferencesViewController: NSViewController, PreferencesViewProtoc @IBOutlet weak var btnPrimarySeekLengthConstant: NSButton! @IBOutlet weak var btnPrimarySeekLengthPerc: NSButton! - @IBOutlet weak var primarySeekLengthPicker: IntervalPicker! + @IBOutlet weak var primarySeekLengthPicker: NSStepper! @IBOutlet weak var lblPrimarySeekLength: FormattedIntervalLabel! @IBOutlet weak var primarySeekLengthPercStepper: NSStepper! @@ -25,7 +25,7 @@ class PlaybackPreferencesViewController: NSViewController, PreferencesViewProtoc @IBOutlet weak var btnSecondarySeekLengthConstant: NSButton! @IBOutlet weak var btnSecondarySeekLengthPerc: NSButton! - @IBOutlet weak var secondarySeekLengthPicker: IntervalPicker! + @IBOutlet weak var secondarySeekLengthPicker: NSStepper! @IBOutlet weak var lblSecondarySeekLength: FormattedIntervalLabel! @IBOutlet weak var secondarySeekLengthPercStepper: NSStepper! @@ -77,7 +77,7 @@ class PlaybackPreferencesViewController: NSViewController, PreferencesViewProtoc // Primary seek length let primarySeekLength = prefs.primarySeekLengthConstant - primarySeekLengthPicker.setInterval(Double(primarySeekLength)) + primarySeekLengthPicker.integerValue = primarySeekLength primarySeekLengthAction(self) let primarySeekLengthPerc = prefs.primarySeekLengthPercentage @@ -96,7 +96,7 @@ class PlaybackPreferencesViewController: NSViewController, PreferencesViewProtoc // Secondary seek length let secondarySeekLength = prefs.secondarySeekLengthConstant - secondarySeekLengthPicker.setInterval(Double(secondarySeekLength)) + secondarySeekLengthPicker.integerValue = secondarySeekLength secondarySeekLengthAction(self) let secondarySeekLengthPerc = prefs.secondarySeekLengthPercentage @@ -146,11 +146,11 @@ class PlaybackPreferencesViewController: NSViewController, PreferencesViewProtoc } @IBAction func primarySeekLengthAction(_ sender: Any) { - lblPrimarySeekLength.interval = primarySeekLengthPicker.interval + lblPrimarySeekLength.interval = primarySeekLengthPicker.doubleValue } @IBAction func secondarySeekLengthAction(_ sender: Any) { - lblSecondarySeekLength.interval = secondarySeekLengthPicker.interval + lblSecondarySeekLength.interval = secondarySeekLengthPicker.doubleValue } @IBAction func primarySeekLengthPercAction(_ sender: Any) { @@ -207,11 +207,11 @@ class PlaybackPreferencesViewController: NSViewController, PreferencesViewProtoc let oldPrimarySeekLengthConstant = prefs.primarySeekLengthConstant prefs.primarySeekLengthOption = btnPrimarySeekLengthConstant.isOn ? .constant : .percentage - prefs.primarySeekLengthConstant = primarySeekLengthPicker.interval.roundedInt + prefs.primarySeekLengthConstant = primarySeekLengthPicker.doubleValue.roundedInt prefs.primarySeekLengthPercentage = primarySeekLengthPercStepper.integerValue prefs.secondarySeekLengthOption = btnSecondarySeekLengthConstant.isOn ? .constant : .percentage - prefs.secondarySeekLengthConstant = secondarySeekLengthPicker.interval.roundedInt + prefs.secondarySeekLengthConstant = secondarySeekLengthPicker.doubleValue.roundedInt prefs.secondarySeekLengthPercentage = secondarySeekLengthPercStepper.integerValue prefs.autoplayOnStartup = btnAutoplayOnStartup.isOn