BUG FIX :
1. Artist Added Notification moved out of for loop
this caused it to sustain for more than one second.
FEATURE :
Added Functionality to pass addAndPlay bool which defines if
the title is played after adding or not. Helpful for l and a
keybindings
AddToPlaylist adds the album, artist, track to the playlist.
Some Minor changes to UpdateSearchView have been done:
Added Colors.
AddAlbum Function also has been changed.
Following Functions have been added:
1. GenerateContentSlice :
This Function Generates a slice of interfaces which are mostly
string slices or strings. The Reason for this is the random
nature of the maps. and also this makes adding songs to playlist
a breeze as we only need the row number to add the
song/album/artist to the playlist.
2. UpdateSearchView :
this is the Update function for the search view which just
iterates over the interface slice and draws their content to the
expanded view
3. AddAlbum :
As the Name Suggests adds all the contents of the Album to the
Playlist
4. AddTitle :
As the Name Suggests adds the track to the Playlist
5. QueryArtistTreeForAlbums :
This Functions finds all the albums named album in the Artist
tree and returns an album map. This is because two artists can
have same album names too.
Album Map is basically a [2]string{artist, album} -> path to all the songs in the album
Following Functions Have been changed:
1. AddArtist :
It now sends notifications.
Following Functions Have been removed:
1. GetAlbumTree
2. PrintAlbumTree
Album Trees are no longer needed
The Following Utility Functions have been added:
1. AddAlbum : Adds Album to the Playlist
2. AddArtist : Adds all the Track of the Artist to Playlist
3. QueryArtistTree : Searches the Artist Tree for the track name
and returns a map of [ artist, album, track ] -> path
Artist tree is a map that maps the artist names to a map of albums
Similarly the Album tree is a map that maps album names to their
content.
Album trees are generated from artist trees.
the content of the album is a map of title to the destinationFile.
Using a Notification Server that will keep listening for notifications
and will render the notification upon receiving read notification.go for
more information
The Caching Module Caches the images that have been extracted and for
persistence writes the images to a cache file.
In the cache file the data is stored by tab separated values
`%s\t%s\t%s`
the cache is first loaded in the memory ( CACHE_LIST ) during the start of application
and then extracted images are added to the map CACHE_LIST which is
writtern to the cache file before exiting the program.
Following changes have been made:
1. The OpenImage() function now checks if the image returned by the
mp3 and flac parsers is the default image if it is true then it
will query the lastfm api for cover image if no error is
received then the path to that downloaded image is passed else
the path is unchanged ( that is it will be the default image )
Following Changes have been made:
1. conn -> CONN
2. CONN is now a global as a lot of functions were requiring it and
passing them as a parameter didn't seem intuitive.
3. In progressBar.go now we are sending only the short path instead of
absolute path.
Following Changes have been made:
1. Using GenerateMappings() function
2. Using the KEY_MAP map to handle events which shortens the code
and adds modularity.