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.
Following Changes Have been made:
1. Rename KMAP -> SPECIAL_KEYS
2. Added Default Mappings through KEY_MAPPINGS
so when the config is read it will change the KEY_MAPPINGS map
which will be then used by the handler function for events.
Following Changes have been made in addition to
`1572a460b0`
1. config.go :
ReadMappings Reads Array for each function
Basically we are going to define mappings like this :
```yml
Function :
- first mapping
- second mapping
- third mapping
`````
2. kMap.go :
GetAsciiValues will help us to get e.Rune() for the event for
the handler function. So basically we will have a keymappings map
generated which will help us to handle events.
for e.g
if an user has defined following mappings
````yml
togglePlayBack :
- P
- p
- B
````
then the keymappings map will look like this
[]keymappings = {
GetAsciiValues("P") : togglePlayBack(),
GetAsciiValues("p") : togglePlayBack(),
GetAsciiValues("B") : togglePlayBack(),
}
so when the handler function will get an event e
we will just pass it to this keymappings map i.e
keymappings[e] which will return the function
Following changes have been made:
1. Moving the getMusicDirectory() to config package
2. Moving the config.go to config package
3. Generating a Function Map that will be used for Generating keymappings in main.go
4. Using the config packge in main.go
5. First we are reading the user configuration values with
config.ReadConfig() and then we are reading the mappings with
config.ReadMappings() with the help of Function Map that is
generated.