Commit graph

10 commits

Author SHA1 Message Date
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
Joshua Strobl
eac4940c77 Start implementation of database functionality, starting with table generation.
This database will be stored in the user's XDG_DATA_HOME directory under a folder called `com.github.joshstrobl.koto`.

Refactored Koto Track Listing into a dedicated Disc View component, break apart out CDs / Discs into relevant Disc View components, sorting them by the disc and showing a label if there are more than one discs / CDs.

Started using the row-activated event for our Artist GtkListBox instead of having press events on the artist buttons. Makes switching between artists far more reliable. Added a slide left / right stack animation and set its animation to 400ms so it's in the goldilocks zone (IMO) of not being too fast or too slow.

Fix a warning related to scale factor fetching in the PlayerBar.
2021-02-27 17:26:24 +02:00
Joshua Strobl
56dd6b45b4 Convert from CSS to SCSS. Make a multitude of refinements to styling along the way.
Remove unused glade UI file. Added CSS classes to various components. Fix some alignment issues. Renamed our albums_strip to favorites_list.

Implement recursive file parsing in KotoIndexedAlbum with the intent of using it for "discs" / CD, useful for albums like Foo Fighters: In Your Honor that have 2 or more CDs. Still need to work on refining this further.

Add stub function in our album view for a planned separation of the track listing so we can do it based on discs and other depth-of-3 sub-folders.
2021-02-25 18:19:26 +02:00
Joshua Strobl
588a68b2cc Port to GTK4, start implementation of Local Music view, Artist and Album Views. 2021-02-24 20:17:18 +02:00
Joshua Strobl
304c7635da Implemented ID3 tag parsing in our KotoIndexedFile leveraging taglib, refactored our mimetype code.
Implemented KotoIndexedArtist as well as KotoIndexedAlbum, including moving the file indexing capabilities into the KotoIndexedAlbum (subject to change).

Added g_debug messages instead of using g_message for debug purposes. Re-introduced Koto Utils with new koto_utils_get_filename_without_extension, since that is used to get the extensionless file name across both album fetching and base file name fetching.
2021-02-16 17:15:10 +02:00