Commit Graph

89 Commits (main)

Author SHA1 Message Date
Christopher Snowhill 4bed0af868 Core Data Store: Handle concurrency properly
All concurrency from other threads should pass through the viewContext's
performBlock or performBlockAndWait functions, and no other way. So now,
all access to Core Data is either happening on the main thread, or by
using these code blocks, all of which will wait for their access to
proceed.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-10-30 16:54:52 -07:00
Christopher Snowhill c9181f571f Better locking behavior for playlist storage
This should fix up potential locking issues with maintaining a copy of
the results set while certain other background actions may happen, such
as the player updating play counts while playing.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-10-11 23:09:05 -07:00
Christopher Snowhill 47258b02b1 [Core Data] Add access locking
Apparently we need this to prevent Core Data from stomping on itself
when another thread accesses it.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-15 07:00:11 -07:00
Christopher Snowhill 4df50c7fc3 Fix the Spotlight search panel
It was previously crashing horribly on adding search results. This makes
it actually functional, and renders it using a view-based table instead.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-15 06:18:01 -07:00
Christopher Snowhill b4e3c05c87 [Playlist Loader] Load files in the background
Load new playlist entries in the background, asynchronously.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-06 14:28:14 -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
Christopher Snowhill 5cb08291bf [Sandbox / Core Data] Refine global variable usage
Refine the global variable usage, eliminating double underscore prefixes
and trusting that static global variables will exist in the object where
the class was created. Got rid of that nasty NSApplication extension
hack that was previously in use.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-21 00:01:07 -07:00
Christopher Snowhill 333c6c7e8b [Spotlight Panel] Fixed to work with new Core Data
Fixed the implementation to work correctly with the new Core Data
storage system. Tracks will be garbage collected later.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-16 17:37:11 -07:00
Christopher Snowhill 4c95c943ef [Playlist Storage] Rewrite to use Core Data
Completely rewrite the playlist storage once again, this time with a
much faster Core Data implementation. It still uses a little magic for
Album Artwork consolidation, but string consolidation doesn't seem to be
needed to reduce the disk storage size. Works much faster than my silly
implementation, too.

Old implementations are still kept for backwards compatibility with
existing playlists.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-16 07:14:33 -07: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 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 684951bdc0 Change a bunch of NSArray declarations to const collection literals 2022-01-18 18:12:57 -08:00
Christopher Snowhill 217b3d4cf9 Attempt to clean up 10.13+ stuff with fallbacks to the old ways 2021-09-23 00:49:51 -07:00
Christopher Snowhill 13bd399b31 Clean up most warnings and update some dependencies 2021-04-29 18:16:24 -07:00
Dzmitry Neviadomski 832fa6dbd0 Even more deprecations fixes. 2021-01-27 05:45:02 +03:00
Chris Moeller 0e3644177e Updated everything else to ARC, and plugged a release cycle. 2016-05-05 13:05:39 -07:00
Chris Moeller 97f6e8b472 mamburu: Made clicking on pop-up menu items of path control inside spotlight panel work 2013-10-11 06:35:53 -07:00
Chris Moeller 7f449edc14 mamburu: Fixed hanging/crashing on directory change in spotlight panel 2013-10-11 06:13:57 -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 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
vspader 288c5cbee5 Misc leaks fixes. 2009-09-01 21:14:07 -07:00
vspader a1a50b6f8b Moved Spotlight panel into English.lproj. 2009-03-07 13:38:25 -08:00
vspader 03937f480b Cleaned up modified add behavior. 2009-02-28 14:22:33 -08:00
vspader 9ad32e82ad Moved commonly used file to a new location. 2009-02-28 09:45:08 -08:00
vspader 3b9d20fdc5 Fixed sorting for non-0 padded files. 2009-02-28 09:41:37 -08: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 ae469a43ec Fix for spotlight crash. 2008-03-13 02:07:49 +00:00
matthewleon e24ee695a6 Spotlight window properly saves location. 2008-03-11 22:10:18 +00:00
vspader 208065494c Fix for spotlight playlistentry dealloc and added missing fields to playlistentry dealloc. 2008-03-09 02:05:00 +00:00
matthewleon c94d31f6d9 Dealloc for PlaylistEntry seems to shrink memory leak. 2008-03-09 00:22:48 +00:00
matthewleon 2124066761 Wrote dealloc for SpotlightPlaylistEntry. Still need to find large leak. 2008-03-08 23:47:29 +00:00
matthewleon 2d00f4b70b Spotlight panel font size bindings completed. 2008-03-05 13:16:06 +00:00
matthewleon 34fc115253 Playlist sorts are case insensitive. 2008-03-05 12:26:30 +00:00
vspader 9ded206919 Fixed tab in spotlight panel. 2008-03-04 01:03:13 +00:00
vspader 5346f0dbde Fixed font-size changing. 2008-03-04 01:00:09 +00:00
matthewleon 69e802052e Spotlight sorts by track number properly. 2008-03-03 23:02:52 +00:00
matthewleon 9e8173bc74 PlaylistEntry cleanup. 2008-02-29 21:54:09 +00:00
matthewleon 5346d85099 Fixed compiler warnings by converting PlaylistEntry length property to NSNumber. 2008-02-29 20:09:59 +00:00
vspader b7beb276f2 Moved SpotlightController registerDefaults to awakeFromNib to hopefully prevent crash. 2008-02-23 14:09:34 +00:00
areff a624737861 Both File Drawer and Spotlight Panel will now show and hide when their shortcuts are pressed. 2008-02-21 10:45:09 +00:00
vspader eeba50f6e1 Cleaned up PlaylistEntry. 2008-02-20 00:44:40 +00:00
matthewleon 94f23c4fdb Spotlight: Search scopes work and crash solved. We now return to regular programming. 2008-02-18 20:46:53 +00:00
matthewleon b6a46c5ca1 Search scopes no longer work but the program won't crash :) 2008-02-18 20:40:02 +00:00
matthewleon 67816346e0 Spotlight: Elegant solution to storing search scopes. 2008-02-18 20:09:02 +00:00
matthewleon aa3b716e09 Fixed Spotlight import. 2008-02-18 16:55:31 +00:00
matthewleon b68a2c3a69 Overhauled Spotlight metadata importing to make it more easily expandable and reuse NSValueTransformer code. 2008-02-18 12:59:20 +00:00
matthewleon 678f6e2dbb Eliminated SpotlightPlaylistView, which is redundant for the time being. 2008-02-18 10:28:24 +00:00
matthewleon a02859a3fc Moved rowHeight binding of PlaylistView from IB into code. 2008-02-18 10:21:34 +00:00
matthewleon 7f52608e6c Font size implemented through bindings. 2008-02-18 00:11:38 +00:00
vspader c2a2f531a8 Moved StringToURLTransformer initialize code. 2008-02-17 21:18:01 +00:00