Commit graph

98 commits

Author SHA1 Message Date
Christopher Snowhill
904ce1c4cd Move all dialog XIBs for translation
Make it easier to translate the relevant dialogs now.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-01 00:38:25 -07:00
Christopher Snowhill
170310d7e5 [Sandbox] Remove startup folder consent prompt
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-29 12:02:59 -07:00
bd8cfd300a [About Window] Fixed appearance for systems without Dark Mode
Signed-off-by: Kevin López Brante <kevin@kddlb.cl>
2022-06-29 14:13:40 -04:00
Christopher Snowhill
22085d94f1 [Sandbox] Show grant dialog on launch if empty
If there are no configured paths, show the grant page on every startup.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-28 22:58:13 -07:00
Christopher Snowhill
2c2a058126 Cog now requires macOS 10.13 as a minimum version
All optional fallback code for older versions has also been removed, and
everything now assumes 10.13.0 or newer. Some cases are still included
for point releases, such as 10.13.2.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-23 23:23:07 -07:00
Dzmitry Neviadomski
45345b810c Fix runtime warnings in Window/AboutWindowController.xib
Fix typo in File Owner class name and remove absent outlet.
2022-06-23 01:34:17 +03:00
Dzmitry Neviadomski
43467b6978 AboutWindow adjustments
Allow opening links in default browser
Close window on Esc
Add rounded corners
2022-06-22 19:01:42 +03:00
Christopher Snowhill
4a0d4bb093 [Volume Control] Only initialize view once
Only initialize viewController once, the first time the volume control
is opened. Re-initializing it can cause an error assigning it as first
responder to the volume slider popover view.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-21 22:52:52 -07:00
0679b146a3 [About Dialog] Switched to WebView for credits
Signed-off-by: Kevin López Brante <kevin@kddlb.cl>
2022-06-21 22:20:18 -04:00
Christopher Snowhill
2821cb36b5 [Crashlytics] Require asking user consent
Require asking user consent for data transmission on first launch, or
otherwise disable sending crash reports by default.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-21 19:03:37 -07:00
Christopher Snowhill
59176ef9ec Change version numbering system
In preparation for submitting to the App Store.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-21 06:27:29 -07:00
2ce719c7fa [About Dialog] Implemented new About dialog
Signed-off-by: Kevin López Brante <kevin@kddlb.cl>
2022-06-20 21:58:22 -04:00
Christopher Snowhill
39f4d09c1a Use NSNumber Literals as much as possible
Replaced a bunch of [NSNumber numberWith...] with NSNumber Literals.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-17 06:39:02 -07:00
Christopher Snowhill
8db2e41049 [Event Handling] Add context to all observers
Add context field to all observers that support it, in case it's useful.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-15 16:47:43 -07:00
Christopher Snowhill
e5ff6cd23d [Position Slider] Fix invalid duration setting
Fix NaN condition occurring when an invalid file is played.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-13 02:01:26 -07:00
Christopher Snowhill
7c8a270ed2 [Dialogs] Renamed HDCD toolbar items to be unique
The two toolbars seem to require unique identifiers for each of their
items, even when they're separate toolbars in separate windows.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-11 13:37:51 -07:00
Christopher Snowhill
0ba766023e Playlist/Time: Simplify font initialization
Apparently this simpler API already existed on a minimum of 10.11 for
creating a system font with monospaced digits.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-03 16:46:37 -07:00
Christopher Snowhill
f9040dd1d3 Fixed Mini Window appearing topmost on startup
This stupid setLevel default was something suggested when making a
window a drag target, and I was observing a setLevel for a window
control, not for a window itself. I should not have set that in the
first place.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-21 20:31:35 -08:00
Christopher Snowhill
763f4c8cd5 Shrink the time field on macOS 10.13 and older
Since 10.13 doesn't want to observe the auto sizing attribute of the
field properly, gotta use the tiny font size that the field is already
configured to use.

Should fix #243

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-21 16:51:46 -08:00
Christopher Snowhill
7ef583340d Equalizer: Replace dialog with custom job
New custom equalizer dialog, painstakingly hand assembled.
2022-02-13 11:05:32 -08:00
Christopher Snowhill
421eb8ed82 Replace playback buttons with SF Symbols on 11.0+
On macOS Big Sur and newer, replace the playback buttons with system
symbols.

Should fix #96

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 01:18:34 -08:00
Christopher Snowhill
60a7052868 Fix volume control tooltip appearance on the left
Increasing the threshold for the width of the tooltip to the right of
its intended location to a more generous value, makes it appear on the
left side sooner rather than later, but should fix positioning issues.

Fixes #226

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 22:51:39 -08:00
Christopher Snowhill
85c7073649 Reformat my own source code with clang-format
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00
Christopher Snowhill
61a30c959c Bundled resources: Use NSBundle interface
These methods should use NSBundle, rather than CF* C functions

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-01 14:40:02 -08:00
Christopher Snowhill
54ccad7c5d Volume Slider: Fix appearance of tooltip
Tooltip should appear on the left side when the volume bar is close to
the right side of the screen.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-30 14:05:12 -08:00
Christopher Snowhill
808710b881 Volume Control: Fix linear 100% range control
Range is now linear on 100%, like it should be.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-30 00:18:07 -08:00
Christopher Snowhill
77a079bd53 Mini Window: Fix saving and restoring position
Fixes #212

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-29 18:00:34 -08:00
Christopher Snowhill
abffadef4e Equalizer: Prevent circular application of presets
This prevents the apply presets function from resaving the preset number
and retriggering itself repeatedly, which would cause a crash.

Fixes #223

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-29 17:27:10 -08:00
Christopher Snowhill
e695e36599 Equalizer: Store custom presets on change
Store custom presets on value changes, on half second intervals, as the
listener observes the user changing the settings.

Fixes #222

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-29 17:21:43 -08:00
Dzmitry Neviadomski
050a3d3112 Scale VolumeSlider linearly if volume is limited.
Fixes #198
2022-01-29 05:57:19 +03:00
Christopher Snowhill
9caf704630 Equalizer: Better handle interpolating presets
The old quadra method was broken, too. Now it uses a simple linear
difference sliding scale for the extra points, which seems to work much
better for the 20 kHz band. And the 16 kHz band doesn't get predicted to
heck any more, either.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-01-27 14:30:14 -08:00
Christopher Snowhill
4567df54b7 Playback Buttons: Correctly assign tooltips on button changes 2022-01-24 22:11:54 -08:00
Christopher Snowhill
4bc3a2a1f3 Playback Buttons: Made stop button optional, hidden by default 2022-01-24 22:05:00 -08:00
Christopher Snowhill
fa67b79b22 Mini Window: Window now acts as a drop target for files, sending them to the end of the playlist 2022-01-24 21:30:36 -08:00
Christopher Snowhill
e471945a08 Equalizer: Implemented new presets contributed by Oleg-Chashko 2022-01-24 20:01:22 -08:00
Christopher Snowhill
9e42df41bd Equalizer: Adjust dialog somewhat again, changing the splitter style, and cleaning up the effects of changing the bands manually, and bringing back the Flatten button 2022-01-23 22:34:41 -08:00
Christopher Snowhill
f35c632f00 Equalizer: Fix the app switching presets in the background versus the open equalizer dialog
This should fix #198
2022-01-23 20:40:48 -08:00
Christopher Snowhill
26e0e0cead HDCD Decoding: Add HDCD indicator 2022-01-20 23:53:45 -08:00
Christopher Snowhill
3a2d360d24 Play Time Field: Rename function used to count digits 2022-01-20 22:33:15 -08:00
Christopher Snowhill
6e68494f09 Play Time Field: Now pads with spaces up to the duration size plus hyphen, as necessary 2022-01-20 22:30:31 -08:00
Christopher Snowhill
71347aab83 Play Time Field: Changed how control achieves monospace numbers, and changed font 2022-01-20 22:03:59 -08:00
Christopher Snowhill
f2feb3bcd7 Equalizer: Fix applying equalizer presets on automatic track change 2022-01-19 01:23:59 -08:00
Christopher Snowhill
2c7d083588 Equalizer: JSON parser can now read the equalizer preset items out of order, and supports an 'altGenres' field, which should be an array of strings, alternate genre names to match for a given preset 2022-01-18 20:24:52 -08:00
Christopher Snowhill
684951bdc0 Change a bunch of NSArray declarations to const collection literals 2022-01-18 18:12:57 -08:00
Christopher Snowhill
96166f9e8d Equalizer: Hide stock control's 'Flatten EQ' button 2022-01-17 23:19:18 -08:00
Christopher Snowhill
7a0c1d230e Volume control: Make preamp optional, defaulting to a limit of 100% volume 2022-01-17 22:41:26 -08:00
Christopher Snowhill
4aa6ef0b14 Equalizer: Load presets when first used by genre tracking if dialog hasn't been opened yet 2022-01-17 21:16:39 -08:00
Christopher Snowhill
c56852437d Equalizer: Track band count changes 2022-01-17 21:10:57 -08:00
Christopher Snowhill
83ad969d9b Equalizer: Add option for presets to track the music genre tags 2022-01-17 20:43:08 -08:00
Christopher Snowhill
147de11d89 Equalizer: Interpolate to reach bands outside of presets 2022-01-17 18:45:59 -08:00