Commit Graph

331 Commits (main)

Author SHA1 Message Date
Christopher Snowhill 71b2f7a4f2 Implement graphic equalizer 2022-01-16 07:32:47 -08:00
Christopher Snowhill d3548d77e7 Hide current artist from dock context menu when not playing or when there is no artist set 2022-01-15 23:41:02 -08:00
Christopher Snowhill 7da599fe3c Remove stale function declarations 2022-01-15 23:30:43 -08:00
Christopher Snowhill 602facf31a Move feed and downloads back to S3 2022-01-15 19:04:26 -08:00
Christopher Snowhill 3b62842021 Playback Notifications: Prevent crash when notifying a track with unusable album artwork 2022-01-11 20:39:10 -08:00
Christopher Snowhill c4c9a741ef Replaced AudioToolbox converter process with homebrew solution, using the RetroArch sinc resampler 2022-01-11 04:09:19 -08:00
Christopher Snowhill 87ebca5e03 Really fix saving track position on quit 2022-01-09 03:17:43 -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 2445cc94a9 - Retrieve profile paths properly instead of hard coding
- Display playlist total duration in units up to weeks and down to just seconds, and only pluralize units as necessary
- Major change: Implemented a SQLite disk backed playlist, track data, and queue storage system, which will be synchronized from the player in real time, and will hopefully survive system or app crashes. Existing plist playlist will be imported on first run, and removed on shutdown.
2021-12-24 01:01:21 -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
Christopher Snowhill 71dd68036b Remove obsolete donation methods 2021-10-02 18:42:19 -07:00
Christopher Snowhill fdae7eec21 File info: Implemented support for Album Artist and Codec fields 2021-10-01 19:18:42 -07: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
Christopher Snowhill fc70e0e8b4 Notifications: Fix so it supports external artwork, and also fix a crash where invalid embedded artwork would cause it to crash 2021-08-07 15:09:36 -07: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
Dzmitry Neviadomski 9c58f67c48 Fix Info button sizing when album art not present. 2021-05-05 02:03:55 +03:00
Christopher Snowhill 4cf76dd7e3 MIDI: Replaced BASSMIDI with FluidSynth 2021-05-03 19:18:55 -07: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 d06eec4ff0 Set allowed extensions for the save picker when saving a playlist 2021-04-09 11:16:12 -07:00
Christopher Snowhill cadb54b454 Fix shutdown action so it removes the playlist filter before saving the playlist 2021-04-09 11:09:18 -07:00
Dzmitry Neviadomski 3a3694d78b Add option for Mini Player to appear on top. 2021-03-03 00:04:59 +03:00
Christopher Snowhill 483b8d6647 Don't load metadata for stream URLs 2021-02-28 18:48:21 -08:00
Dzmitry Neviadomski 8105b9e2b2 Modernize PlaybackEventController. 2021-02-26 23:01:48 +03:00
Dzmitry Neviadomski 604edc8099 Update playback control tooltips. 2021-02-21 01:38:52 +03:00
Dzmitry Neviadomski 97cc1e9845 Remove Apple Remote leftovers. 2021-02-19 07:32:33 +03:00
Dzmitry Neviadomski 18896dcc3e Rework Titlebar.
Show Album art in info button.
2021-02-19 02:58:57 +03:00
Dzmitry Neviadomski b08263159e Show Now Playing bar only when needed.
Fixes #101
Fixes #105
2021-02-19 01:07:05 +03:00
Dzmitry Neviadomski a07d07c9f9 Fix Mini window restoring.
Fixes #99
2021-02-14 03:10:03 +03:00
Dzmitry Neviadomski a64f5e08e6 Use GitHub issues for reporting feedback. 2021-02-09 03:12:31 +03:00
Dzmitry Neviadomski 899152db49 Add ability to change toolbar style.
Fixes #86
2021-02-07 01:15:12 +03:00
Dzmitry Neviadomski e313cdac14 Reflect playback status in log correctly 2021-02-07 00:39:19 +03:00
Dzmitry Neviadomski 864c56a408 Store AppController<NSApplicationDelegate> in MediaKeysApplication 2021-02-07 00:33:47 +03:00
Dzmitry Neviadomski 5e3ed2af4b Remove ThirdParty SPMediaKeyTap 2021-02-07 00:27:14 +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
Dzmitry Neviadomski a0afe85130 Fix deprecations with replacemnt and reindent touched files. 2021-01-27 05:30:19 +03:00
Dzmitry Neviadomski 19dbf4c9f5 Migrate to MASShortcut.
Removed NDHotKey code.
Added ability to restore default shortcuts.
Migrated old user-set shortcuts.
2021-01-25 06:47:09 +03:00
Dzmitry Neviadomski ab88e1b65c Use NSSet for broken feed URL lookup. 2021-01-25 06:23:48 +03:00
Dzmitry Neviadomski 84b473f847 Cleanup NSDrawer leftovers from AppController. 2021-01-09 12:47:11 +03:00
Dzmitry Neviadomski 78d8c0050c Revamp Mini Window shortcuts.
Fix deprecation warnings.
Set max and min size for content view in code.
2021-01-08 12:15:01 +03:00
Christopher Snowhill 1aa9b5a01c
Merge pull request #61 from nevack/nevack/notifications
Show album art with UserNotification api.
2021-01-06 23:22:15 -08:00
Dzmitry Neviadomski e16d4e8aa7 Save artwork to jpg instead of png to reduce size. 2021-01-07 08:45:44 +03:00
Dzmitry Neviadomski 05f66d40f3 Show Album Art with UserNotification. 2021-01-07 07:44:07 +03:00
Dzmitry Neviadomski 52c31c5117 Hide Zoom button for Mini Window.
Also fix 4 deprecation warnings.
2021-01-07 07:41:58 +03:00
Dzmitry Neviadomski c192fb5c41 Fix crash when Quitting without active track set. 2021-01-07 01:40:49 +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 41d11bdfa8 Fix one deprecation warning 2021-01-06 02:17:30 -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 474dca3967 Update donation menu items 2020-11-24 16:03:49 -08:00
Christopher Snowhill dedeb399a8 - Big Sur phase two
- Restructure main window a bit more
- Remove attempt at SF Symbols icons for now
- Add Now Playing popout to Stacks style main window, tooltip instructs to click to select the current track in playlist
- Disable libFLAC plugin on macOS 10.13 and newer, letting Core Audio handle it instead. Apparently, libFLAC is not really ready for Apple Silicon yet.
2020-11-22 18:16:34 -08:00
Christopher Snowhill 3b41af0dc2 Update donation menu 2020-05-02 00:53:08 -07:00
Christopher Snowhill 3e6d599452 Implement new notification display system, when running on Mojave or newer 2020-03-21 01:51:35 -07:00
Christopher Snowhill 7f3da31b45 Consider URLs as 'internal' source so they don't auto play 2020-03-10 02:17:19 -07:00
Christopher Snowhill 17bb70e729 Fix macOS version detection to use a proper API 2020-03-05 20:34:15 -08:00
Christopher Snowhill d05ada5d0a Disable MPRemoteCommandCenter unless on Mojave or newer 2020-02-28 00:40:29 -08:00
Christopher Snowhill eba116d92e Replace Feedback submission dialog with link to special contact form 2019-11-16 14:49:30 -08:00
Christopher Snowhill 6847f1bcbf Add MediaPlayer stop command and correctly handle return values for all MediaPlayer remote events 2019-11-14 19:24:13 -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 9a47c0ebe9 - Remove obsolete Growl framework
- Update BASS and friends to latest versions
- Remove unused unmo3 library
- Add entitlements to Hardened Runtime for unsigned plugins (for
  AU MIDI playback), and for executable memory use (for the USF
  recompiler)

- TODO: Replace Growl branding with generic notification icon
2019-10-10 15:47:46 -07:00
Christopher Snowhill 62c4e71227 Remove Media Keys warning dialog, let user discover why their global hotkeys aren't working on their own if they aren't the type to complain about features that have been in since the beginning. 2019-06-20 21:04:19 -07:00
Christopher Snowhill a71b2b2f65 Fix media key hook for Mojave. 2018-06-28 05:04:15 -07:00
Christopher Snowhill 67495009ff Updates for new build system. 2018-06-28 04:03:37 -07:00
Christopher Snowhill 6e6648624d Hopefully implemented a proper workaround for new Mojave permissions required for the Media Key event hook. We shouldn't crash any more. 2018-06-27 20:50:26 -07:00
Christopher Snowhill 3901305105 No longer send '(null)' notifications for files missing artist and/or album tags. 2018-06-03 18:39:07 -07:00
Kevin López faf5eb586a Implement proper fullscreen enter and exit animations. 2017-12-27 18:51:44 -08:00
Christopher Snowhill 368bb003c2 Make resume-playback-on-startup optional, and disabled by default. 2017-03-21 22:08:35 -07:00
Christopher Snowhill ebfcd03c5d - Change MIDI overrides to support 'default (auto)' mode
- Change MIDI flavor default to 'default (auto)'
- Fix MIDI preference page to correctly enable the flavor option only where applicable
- Fix SCVA player to reset existing instances reliably
2016-11-29 15:46:38 -08:00
Christopher Snowhill b5967bb2e1 Fix HotKey initialization to deinitialize any existing instances, as the global hash table is not reference counted, and the previous design would result in the hash table being set twice, then cleared. 2016-10-10 22:33:00 -07:00
Christopher Snowhill c2bf3225d1 Use new symbols from macOS 10.12 SDK, which have the same values as the deprecated symbols. 2016-10-10 22:31:46 -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 55ecd008ad Update feed location and script. 2016-07-15 22:41:17 -07:00
Chris Moeller 17272ce43c Clean up lots of warnings and minor issues. 2016-06-29 22:10:29 -07:00
Chris Moeller dee388d22c Changed the Support Cog link. 2016-05-09 21:57:04 -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 68db8edae3 Fixed setting keycode 0 as a hotkey. 2016-05-05 14:03:48 -07:00
Chris Moeller 0e3644177e Updated everything else to ARC, and plugged a release cycle. 2016-05-05 13:05:39 -07:00
Chris Moeller 6c8a08fff1 Implemented MIDI flavor override control for Sound Canvas VA Audio Unit 2016-04-12 21:16:25 -07:00
Chris Moeller 039788226d - MIDI player now loops non-looping files internally if Repeat One is enabled
- MIDI player now supports installed Audio Unit plug-ins, and defaults to the DLS MIDI synthesizer
2016-01-20 21:11:05 -08:00
Chris Moeller b50ed67591 Fixed Repeat None correctly this time 2015-02-10 21:42:36 -08:00
o1 8bd04594dd Cog will now re-maximize window(s) when dock icon clicked after minimization. 2015-01-15 16:57:22 +03:00
Chris Moeller 540069c019 Change to mimic iTunes to a limited degree instead, hopefully this is enough info for most applications 2014-12-04 15:22:27 -08:00
Chris Moeller 22e97735c6 On second thought, let's pretend we're Swinsian 2014-12-03 22:50:59 -08:00
Chris Moeller da26e6757b Implemented a distributed notification for track information and playback status 2014-12-03 22:13:27 -08:00
Chris Moeller 2a0ef29ebe Updated notification system 2014-12-03 21:36:55 -08:00
Chris Moeller f2e0be8c9e Fixed feed URL, I hope 2014-09-05 23:25:32 -07:00
Chris Moeller 5618d058a3 Updated DUMB and modplay, and added a setting to control the resampling used by both, as well as by BASSMIDI, which will use sinc if specified 2014-03-26 21:49:31 -07:00
Chris Moeller 591730eea3 Fix the default updates feed URL setting, and override the current setting if it matches the former default 2013-10-22 17:46:33 -07:00
Chris Moeller 96c0081d73 Changed the AppCasts to https 2013-10-21 18:31:23 -07:00
Chris Moeller 9d6f583eff Bypass sending notifications to Growl if Last.fm is enabled and running, as Last.fm has its own display notifications 2013-10-13 15:13:27 -07:00
Chris Moeller 759aeab4fb Implemented pause on startup 2013-10-12 19:16:47 -07:00
Chris Moeller e87fd1b4b7 Ryan Brignoni: Updating AppleRemote with latest files from VideoLAN repo and adding support for new 2009 Apple remote buttons in Cog. 2013-10-12 14:47:39 -07:00
Chris Moeller 078caa7980 mamburu: Added an option to enable/disable giving up media keys control to Last.fm app 2013-10-12 14:41:57 -07:00
Chris Moeller 85937086d2 mamburu: SPMediaKeyTap (https://github.com/nevyn/SPMediaKeyTap) is now used to handle media keys - iTunes won't start on Play button while Cog is running 2013-10-12 14:26:52 -07:00
Chris Moeller 012ef22b40 Major UI overhaul; Now supports mini mode 2013-10-11 12:02:05 -07:00
Chris Moeller 8cf6b86ba2 Moved NDHotKey to its own framework, and removed useless Edit buttons from the hotkeys preference pane 2013-10-11 09:37:45 -07:00
Chris Moeller 2fe9e86eb9 Added optional colorful dock icons by tuurngait; Imported the Growl configuration page for disabling notifications if Growl.app is not installed 2013-10-11 08:35:57 -07:00
Chris Moeller d1f6ec850e tuurngait: Major UI Improvements 2013-10-11 07:16:47 -07:00
Chris Moeller 73524776e7 mamburu: Added a toolbar button to shuffle the playlist 2013-10-11 05:27:19 -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 602aaa6938 Enter Full Screen menu item and separator are now hidden until the main window wakes and detects toggleFullScreen selector 2013-10-11 03:39:57 -07:00
Chris Moeller 3f35b5e07f mamburu: Expandedness state of file drawer is now persisted over app restarts 2013-10-11 03:03:23 -07:00
Chris Moeller 0ad3106355 mamburu: Added bar that shows name of currently playing entry 2013-10-11 02:09:26 -07:00
Chris Moeller 1aedb01c6b Changed feed and feedback URLs 2013-10-11 01:30:49 -07:00
Chris Moeller 555ccc9e87 Now storing all album art internally as its original format and synthesizing NSImage objects on demand 2013-10-09 13:53:13 -07:00
Chris Moeller b5fd1207b8 Now saves and loads the default playlist in an XML plist format, so loaded metadata is cached 2013-10-09 08:45:16 -07:00
Chris Moeller b4ffb2684f Removed pause on startup, since it doesn't seem to have any effect 2013-10-09 02:08:35 -07:00
Chris Moeller 3e579801a1 AppController now stores the last playback status and position in the defaults container and resumes playback on restart 2013-10-09 02:02:49 -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
Chris Moeller 6ea103b1c3 Implemented ReplayGain support, so far only in the HighlyComplete component. 2013-10-01 23:00:16 -07:00
vspader 26d44d6f37 Fix Growl so it only shows up on non-error tracks and display album art in the notification. 2009-03-11 20:26:29 -07:00
vspader 7cbebef352 Fixed up metadata loading so metadata isn't always read when you play. 2009-03-05 20:46:42 -08:00
vspader d6a0b0670e Playback events for last.fm and growl are now done in the background via an operation queue. Removed hack to load metadata for autoplay. Now metadata is reloaded for each file you play. 2009-03-05 20:37:44 -08:00
vspader e2d590c167 Added PlaybackEventController. 2009-03-05 09:04:16 -08:00
vspader 4bd8f6142c Moved growl/scrobbler notifications into PlaybackEventController. 2009-03-05 09:03:30 -08:00
vspader 4dacefe989 Fix leak of dock image. 2009-02-28 22:28:37 -08:00
vspader 38743b7dbf Added badges to the icon to indicate the current playback status. 2009-02-28 15:54:36 -08:00
vspader 03937f480b Cleaned up modified add behavior. 2009-02-28 14:22:33 -08:00
vspader 1fcf3bb2ff Fixed up fading logic. 2009-02-28 13:19:26 -08:00
vspader fd4fa4c62d Fixed playback buttons on mini mode. Play now turns to pause. 2009-02-28 13:13:06 -08:00
vspader fda5d50712 If you change the playlist near the end of a song, it should now play the correct song. 2009-02-28 10:57:21 -08:00
vspader c96c3448d8 Volume is now saved across launches. 2009-02-28 10:19:15 -08:00
vspader 2883e93725 Removed unused method. 2009-02-28 09:52:40 -08:00
vspader a2f360177e Organized things a little better. 2009-02-22 14:57:02 -08:00
vspader 8bd1cc32d5 Fixed position slider max. 2009-02-22 14:40:22 -08:00
vspader faf0df17f2 Removed unused methods from playbackcontroller. 2009-02-22 14:29:11 -08:00
vspader a1f6139ea4 Fixed up position slider and time display. 2009-02-22 14:28:09 -08:00
vspader fcf886321f Mini window will now reopen on launch if it. 2009-02-22 11:56:28 -08:00
vspader ce2f61564c Removed old classes. 2009-02-22 11:22:51 -08:00
vspader c107c67ba7 Added dual window classes. 2009-02-22 11:22:35 -08:00
vspader f24afa4c86 Fixed up timers so they are still in effect while in the tracking runloop mode. 2009-02-09 06:16:16 +00:00
vspader c9e542f570 Added better tooltip feedback. 2009-02-09 05:53:38 +00:00
lmsilva 0df5123d05 fixed a bug introduced before, double clicking on a song in the tableview wouldnt work 2008-11-21 15:43:34 +00:00
lmsilva dda74d0608 fixed seek slider from becoming active & disabling it when STOP occurs 2008-11-21 15:14:23 +00:00
vspader 5132465651 Save previous height when hidden. 2008-06-22 19:44:09 +00:00
vspader ab6f61c591 Updated preference key. 2008-06-22 19:04:15 +00:00
vspader 2e819f4970 Remember mini mode. 2008-06-22 19:02:53 +00:00
vspader f53bfc861d Side pane say what? 2008-06-21 04:05:30 +00:00
vasfed 584710ffb1 Changed playlist behavior preferences to be pop-up buttons with choices 2008-05-18 09:38:53 +00:00
vasfed e063790e93 Updated APL plugin to use new protocol
Added support for behavior modifiers on addition/opening of files
Added Command+Control as modifier for open/enqueue
2008-05-09 21:24:49 +00:00
vspader db65925ff0 Fixed now playing in dock menu. 2008-03-13 01:21:54 +00:00
vspader 477bdbd4ef Fixed strange whitespace issue. Also, increased bottom border a bit to make it match other status bar heights. 2008-03-05 01:22:42 +00:00