Commit graph

15 commits

Author SHA1 Message Date
Joshua Strobl
34ca201121 Implemented no albums view and improved indexing of file content directly within an artist.
Every KotoArtist now has a dedicated KotoPlaylist that is dynamically generated during KotoArtist initialization and contains references to all KotoTracks.

Fixed weird parsing error with some track names that had single quote (ew) and made changes so various parts of the UX would not freak out when we didn't have an album associated with a track.
2021-07-06 13:06:20 +03:00
Joshua Strobl
44e4564f1c Implement mutli-Library support.
Honestly, not going to bother summarizing this massive changeset. You are welcome to look it over in your own free time.

Fixes #10. Fixes #11
2021-06-22 16:48:13 +03:00
Joshua Strobl
a11ba1ec77 Separate out our functionality for reading from the database into db/loaders. 2021-06-01 13:10:18 +03:00
Joshua Strobl
7c7fe35b49 Implemented library hashtable, added / removed signals into Cartographer, add / remove / getters (ish).
Added KOTO_IS_CARTOGRAPHER macro and added that type check across all cartographer functions. Added more type checks and dropped use of g_object_get for UUIDs where possible.

Implemented koto_album_get_uuid function to be on parity with other structs like Artist, Playlist, Track.
2021-06-01 12:58:23 +03:00
Joshua Strobl
bfe4891620 Start cleanup of KotoLibrary logic and decoupling other components like Music Local from a specific library.
Fix the displaying of discs and tracks in an album on initial index due to missing cartographer add track call.

Cleanup lots of double empty newlines. Updated ptr spacing in uncrustify config to enforce consistency in pointer char (`*`) spacing.
2021-05-27 17:02:19 +03:00
Joshua Strobl
9f0e8dfbc8 Rename all KotoIndexed* to Koto*, KOTO_INDEXED_ to KOTO_, etc. Fixes #9. 2021-05-11 20:08:39 +03:00
Joshua Strobl
62de9c2032 Get to the point where we are fairly happy with our uncrustify config. Fixes #6. 2021-05-11 20:05:04 +03:00
Joshua Strobl
3e0e21e246 Implement Notification support. Fixes #8.
Implemented Notification support using notify-send as opposed to libnotify. This is because notify_notification_send does a synchronous dbus call to org.freedesktop.Notification and typically results in DBus timeouts. In the near future we will rewrite this to just use our own proxy and do an async send.

Refactored our GVariant metadata generation for a KotoIndexedTrack into a dedicated koto_indexed_track_get_metadata_vardict function. This can then be used across our playback engine and MPRIS.
2021-05-11 18:31:13 +03:00
Joshua Strobl
b4ffba62c7 Implement koto_utils_is_valid_string to replace repetitive NULL and g_strcmp0 code.
Reduce usage of g_return_if_fail since it results in unnecessary warnings.
2021-05-07 21:57:21 +03:00
Joshua Strobl
0e2244ba90 Implement Playlist functionality. My god...
Too many changes to summarize.

- Fixes #2.
- Fixes #3.
- Fixes #5.
- Fixes #7.

Start work on uncrustify config.
2021-05-07 16:47:47 +03:00
Joshua Strobl
05d90afc58 Implement start of Playback Engine, refactored most classes to leverage KotoCartographer, etc. 2021-03-23 19:50:09 +02:00
Joshua Strobl
b6db2003b8 Rename KotoIndexedFile and "files" to KotoIndexedTrack and "tracks" 2021-03-16 08:51:35 +02:00
Joshua Strobl
cf81682f8c Start implementing Playlist functionality via KotoCurrentPlaylist and KotoPlaylist.
Implement functionality for gracefully showing the play button on top of KotoAlbumArt images. Implemented a new koto_indexed_album_set_as_current_playlist function for setting an album as the current playlist, useful when clicking to play an album via its artwork.
2021-03-10 13:44:08 +02:00
Joshua Strobl
35762ca233 Implemented clearer database functions and response codes so we know when to do library indexing.
Implement reading of artists, albums, and tracks. Fixed a bug related to unnecessary file name parsing. Fix SIGSEGV related to file name parsing and koto_utils_get_filename_without_extension.

Implemented an unquote string function for use when reading database entries. Try to fix some weird random rendering issues. Changed where we are doing some KotoPageMusicLocal widget construction.
2021-03-09 11:45:44 +02:00
Joshua Strobl
7566fb39f9 Consolidate indexer struct header definitions, implement artist, album, and file inserts.
Tweaked database schema. Ensure we enable FOREIGN KEYS.

Refactored how and when we are doing cover art and track fetching for an album.
2021-03-02 19:12:12 +02:00