For tracks, we will fetch the duration from the ID3 tag information, alongside genres. These genres will be used for multiple purposes, e.g. search. At the moment however, it is used in koto_album_add_track to collate a list of genres that apply to the album based on the contents of it.
We can have multiple genres, we separate them by semi-column as is the case for TagLib. We will attempt to filter and rename some select genres to enforce consistency.
Changed position and playback position from guint to guint64.
Implemented multiple koto utility functions:
- koto_utils_join_string_list
- koto_utils_string_contains_substring
- koto_utils_string_to_string_list
Drastically simplified koto_utils_replace_string_all.
Implement koto_track_helpers_init to initialize our hashtable.
Fixed a segfault during first load of Koto where we were attempting to get the playback engine last used volume in koto_config_save, when the KotoPlaybackEngine was not yet initialized. Default it to 1.0.
Fix code related to changing from temporary playlists to permanent ones.
Implement new centralized Koto Paths for defining our variables and revdns name for consistency.
Updated Album View to leverage KotoCoverArtButton component.
Started refactoring our theming to support multiple variants. It isn't where I want it yet but we'll get there.