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