Commit Graph

103 Commits (7ef583340dbd783917214e709ea066d36ea21e1d)

Author SHA1 Message Date
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 6d09b72c1d Dynamic info now pushes to the correct track
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-12 07:29:02 -08:00
Christopher Snowhill 5ff1f95481 Add decoder open error indicator
When decoder is redirected to the internal silence decoder, show an icon
on the playlist indicating a playback error.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-10 02:15:48 -08:00
Christopher Snowhill d77a5472f3 Only seek on restart if file is seekable
Do not restart from the last position if file isn't seekable.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-09 13:42:47 -08:00
Christopher Snowhill 7cea254f4c Implement framework for dynamic metadata updates
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 21:21:53 -08:00
Christopher Snowhill b927f4c02b Replace more NSDictionary use with literals
Use literals to initialize fixed NSDictionary objects in various places.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-08 19:56:04 -08:00
Christopher Snowhill f4f4f80f64 Restart playback on device or output format change
Now the output is restarted on the current file at the current position
if the output format has changed. This should resolve the issue finally.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-07 22:44:56 -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 e7b78085ca New feature: Implemented headphone virtualization
This new virtualizer uses the Accelerate framework to process samples.
I've bundled a HeSuVi impulse for now, and will add an option to select
an impulse in the future. It will validate the selection before sending
it to the actual filter, which outright fails if it receives invalid
input. Impulses will be supported in any arbitrary format that Cog
supports, but let's not go too hog wild, it requires HeSuVi 14 channel
presets.
2022-01-25 16:50:42 -08:00
Christopher Snowhill ec7009f3fc Equalizer: Instances of GraphicEQ AU are now relinquished to the main thread for destruction instead of being destroyed by the Core Audio Output shutdown 2022-01-24 19:49:43 -08:00
Christopher Snowhill fe4e17a4a0 Equalizer: Remove equalizer from window, thus saving settings, on stop or shutdown
Fixes #204
2022-01-23 20:25:42 -08:00
Christopher Snowhill a743f914e9 HDCD Indicator: Made this less janky too 2022-01-21 15:00:44 -08:00
Christopher Snowhill 26e0e0cead HDCD Decoding: Add HDCD indicator 2022-01-20 23:53:45 -08:00
Christopher Snowhill f2feb3bcd7 Equalizer: Fix applying equalizer presets on automatic track change 2022-01-19 01:23:59 -08:00
Christopher Snowhill 5c17dc9207 Notifications: Only send position notifications periodically 2022-01-19 00:41:12 -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 7a0c1d230e Volume control: Make preamp optional, defaulting to a limit of 100% volume 2022-01-17 22:41:26 -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 dbc0698cee Equalizer: Implemented stock presets 2022-01-17 06:37:38 -08:00
Christopher Snowhill 87c771c67c Equalizer: Add option to toggle the equalizer on or off 2022-01-17 01:22:15 -08:00
Christopher Snowhill 71b2f7a4f2 Implement graphic equalizer 2022-01-16 07:32:47 -08:00
Christopher Snowhill 6e9266e194 Fix track position storage on quit 2022-01-09 03:06:36 -08:00
Christopher Snowhill 3e72087a41 Play position is stored every 10 seconds, and status is stored every time playback is started, paused, stopped, or seeked 2022-01-09 02:34:29 -08:00
Christopher Snowhill 7fe67b1630 Implement dock icon progress bar indicator for many processing operations, including adding tracks, removing tracks, and loading or reloading track metadata 2022-01-09 02:10:08 -08:00
Christopher Snowhill 917b7457b6 Made resume playback on startup so that seeking operation is entirely atomic with starting playback, so the new seeking behavior doesn't have the potential to crash the player 2021-12-26 04:35:54 -08:00
Christopher Snowhill 91bd653b55 Fading: Hopefully fix fading being broken after fading in once, possibly a rounding error that depends on the volume level set before fading in 2021-11-17 21:12:25 -08:00
Calvin Buckley d18c9c9bb0 Why was this commented out? 2021-08-08 17:57:42 -03:00
Calvin Buckley cdde55004a Send metadata so that NPIC can receive stop events at end of playback
Otherwise, the NPIC will just show the last track stuck at the last second.
There may be a better place to put this.
2021-08-08 17:55:51 -03:00
Calvin Buckley 0e6747c21a Provide more information to MPNowPlayingInfoCenter, including album art
NPIC can ask for a lot of metadata, but for now, provide it only what (at least I know) PlaylistEntry can provide. The biggest missing one was album art, so this change should be appreciated by those who do use it.

I don't know what it can do with the other metadata though, seeing at least on macOS, it can only do album/artist/track title/artwork.
2021-06-21 19:45:46 -03:00
Christopher Snowhill 13bd399b31 Clean up most warnings and update some dependencies 2021-04-29 18:16:24 -07:00
Christopher Snowhill 5c6b145f9a Update playback position 5 times per second instead of once, increasing smoothness of seekbar on shorter tracks, and hopefully solving jitter on some tracks 2021-04-19 23:51:31 -07:00
Christopher Snowhill 483b8d6647 Don't load metadata for stream URLs 2021-02-28 18:48:21 -08:00
Dzmitry Neviadomski e313cdac14 Reflect playback status in log correctly 2021-02-07 00:39:19 +03:00
Dzmitry Neviadomski d0ee3622ed Use MPRemoteCommandCenter without avaliability checks. 2021-02-07 00:24:45 +03:00
Dzmitry Neviadomski 9840d87127 Convert CogStatus enum to NS_ENUM 2021-02-07 00:22:19 +03:00
Christopher Snowhill 0a99093af0 Fix status bar bodge so stopping manually doesn't prevent playback for 3 seconds 2021-01-06 02:18:09 -08:00
Christopher Snowhill 97fee7e486 Add a bodge so playback status bar doesn't pop in and out repeatedly on manual track changes 2021-01-06 00:39:12 -08:00
Christopher Snowhill 2476f8827d Hopefully fix compatibility with systems older than 10.12.1 2019-11-14 19:16:43 -08:00
Christopher Snowhill 09777d4554 Implemented support for MediaPlayer framework, which fixes media key support on newer systems, and also media info reporting 2019-11-13 19:13:59 -08:00
Christopher Snowhill 67495009ff Updates for new build system. 2018-06-28 04:03:37 -07:00
Christopher Snowhill a95280626f Fix Projects. Fix a major deadlock introduced by previous commit. Introduce new mGBA based GSF player. 2016-09-04 12:49:43 -07:00
Chris Moeller 17272ce43c Clean up lots of warnings and minor issues. 2016-06-29 22:10:29 -07:00
Chris Moeller e531f288b2 Fix a race condition with opening files externally through file associations or the 'open' terminal command. 2016-05-07 22:41:28 -07:00
Chris Moeller b50ed67591 Fixed Repeat None correctly this time 2015-02-10 21:42:36 -08:00
Chris Moeller 759aeab4fb Implemented pause on startup 2013-10-12 19:16:47 -07:00
Chris Moeller e5a648578b mamburu: Logging improved, no more excessive logging in release builds 2013-10-11 05:03:55 -07:00
Chris Moeller 380993ff16 Move forced metadata lookup to PlaybackController so ReplayGain information will always be available when it's needed 2013-10-07 16:15:15 -07:00
Chris Moeller 7c5eaed629 Added now playing spam hotkey, currently format hard coded 2013-10-04 04:16:09 -07:00
Chris Moeller ec0e45381e Cleaned up most of the warnings, eliminated use of deprecated APIs, and fixed the hotkeys crashing. 2013-10-03 01:00:58 -07:00
Chris Moeller 4c0cf34250 More ReplayGain support, now with metadata handling, but only if the metadata is already loaded 2013-10-02 02:30:04 -07:00