Enabling this can help with seeking within transcoded media.
Without knowing how big a file is, it's impossible to display an
accurate progress bar. This option asks the server to send a
"Content-Length" header with a guess (based on bitrate and song length)
of how big the streamed file is going to be, enabling a progress bar to
be shown.
This reliably works with CBR transcodes, but can have issues with VBR as
the server doesn't know how big the file will be before it's transcoded.
If the server estimates incorrectly then songs could stop playing before
they actually finish or cause other glitches.
For the most part servers are pretty good with their estimates and being
able to seek in a transcoded stream as it downloads is a substantial UX
improvement so the option is enabled by default.
- Moves the functions to make the jukebox-related API calls to the
subsonic service
- Initiate the API calls from the player directive to centralize the
logic.
- Using space to play/pause was broken due to an issue with data
binding. Running `$scope.$apply()` after updating the `player.pauseSong`
property using `player.togglePause()` seems to have fixed this.
- All of the key event processing has been moved into the JS. This means
that all the key event logic is all in one spot (easier to understand
IMO). Additionally, this removes the need to redefine functions for
each shortcut.
- Removed the now-unused `angular-ui-utils/keypress.js` package.
- Fixed key events being active when editing dropdown/checkbox controls
in the settings menu
- Removed the custom `[Home]` shortcut since this is done natively by
the browser already.
- Removed the 1-6 shortcuts for the tabs. Logic being that it seems
pretty rare that you would want to rapidly switch between them (you
would have to use the mouse to do anything on all tabs except the
subsonic one anyway), and they were already broken without anyone
complaining.
- Fixed tests
This fixes an issue where attempting to rapidly remove songs from the
queue would cause them to be played.
- When clicking the add/play/remove/star buttons quickly, the double
click event would propagate and start playing the song
- Fixed by extending the `stopEvent` directive to accept a
comma-delimited list of events to stop. This allowed for using
`stop-event="click,dblclick"` in the html to not propagate both click
and double click events.
- Also removed some duplicate directives that seemed to have snuck in
during a merge.
Among other things, this makes the output of `git diff` not show
line-by-line changes for files in this folder, making it much easier to
understand.
Also applies the same attributes to the package lock files.
**Please do a 'bower install' and 'npm install' to update**
**You should probably also do a 'bower prune' and 'npm prune' to remove deprecated dependencies !**
* Fixestsquillario/Jamstash#217
* Remove subsonic.js getStarred()
* Rename subsonic's getSongs() to getDirectory()
* Remove songs_lite.html
* Refactor queue.js
* Added angular-ui's ui-sortable directive as a bower dependency
* Refactor song selection across the app
* Refactor subsonic.js' loadPlaylistsForMenu
* Refactor subsonic-service.js to improve readability
* Updated bower deps to their latest versions
* Add a VersionEye badge in the README to track our dependencies
* Minor code style adjustments to comply with our jscsrc.
* Changed the localStorage key used to store the genre playlists names
* Enable removing genre auto-playlists from the list
* Use angular cache when querying getMusicFolders and getIndexes
* Refactor getAlbumListBy()
* Rework of the JSCS and JSHint configs
* Refactor breadcrumbs into a directive.
* Removes getAlbums() in subsonic-service, replaced by getSongs()
* Removes getSongTemplate() in subsonic-service which appears unused.
* Replaced Underscore with Lodash
* Fetch users' ID3 genres using Subsonic
* Update all npm packages, removes the "undef" rule to enable johnpapa's style
* Display the loading spinner gif for all angular ajax requests