« get me outta code hell

mtui - Music Text User Interface - user-friendly command line music player
about summary refs log tree commit diff
AgeCommit message (Collapse)Author
2020-07-12support stop-playing over client socketsFlorrie
2020-07-12allow lines spread across multiple data chunksFlorrie
Wrapper functions 4 lyfe.
2020-07-12move data-handling code inside connection handlerFlorrie
This should make it easier to add state for individual sockets, which will be needed in coding better data handling. (Update: Actually, that wasn't necessary, because I wrote it as a more general wrapper function which contains its own state. Still, this could come in useful in the future, and it arguably reduces the code complexity anyway.)
2020-07-11let client specify host through command lineFlorrie
2020-07-11synchronize playing new tracks across socketsFlorrie
2020-07-11support queue controls over socket clientsFlorrie
2020-07-10basic command relay across socket clientsFlorrie
2020-07-10basic working backend save/restore & socket serverFlorrie
Backend save/restore code (living in serialized-backend.js) has been well tested and shouldn't need much change going forward. Now we get to begin working on the actual synchronized-over-socket-server commands!
2020-07-10update old process.argv checks to use parseOptionsFlorrie
2020-07-10rename telnet-server.js to telnet.jsFlorrie
...for consistency with a socket.js (coming soon to a theater near you!)
2020-07-09don't show Reveal option if track has no parentFlorrie
2020-07-09don't show a divider as the first item in a menuFlorrie
2020-07-09add seekTo player functionFlorrie
2020-07-09replace existing empty tab when loading playlistFlorrie
2020-07-09simple findTrackObject opimizationsFlorrie
2020-07-09rename handlePlaylistSource & let accept grouplikeFlorrie
It's called loadPlaylistOrSource now, and can take a grouplike (which it will process with processSmartPlaylist as usual) instead of a URL to pass to a crawler. This is so that all functionality for loading a playlist can be collected in and accessed through one interface, so that modifications to the way playlists are loaded will be reflected across everywhere that loads a playlist.
2020-07-08add function for finding track object by ref dataFlorrie
This is the start of a project to let two (or more) instances of mtui link together and host a party where tracks are accessed on each user's own machine. Backends will be linked so that any actions taken in one will be reflected in another. This function is a key part of implementing this, since mtui depends on all instances of a track be referred to by the same JS object, and the new function allows the (approximate) identity of a track to be serialized and transferred over the internet (or any static format) and restored later, on another device, and/or even in a differently structured music library.
2020-07-07make the mtui menu work again!Florrie
i forgot to implement menuItems. oops. :P
2020-07-06update queue length as metadata is processedFlorrie
this makes a very nice animation of the duration going up as data is processed for new tracks :3
2020-07-03add a space for padding behind track duration textFlorrie
2020-07-03fix current track index being one too lowFlorrie
oops v_v i apparently forgot to commit this!!
2020-07-03make crawl-local accept some common video formatsFlorrie
2020-07-03make locally opened playlists have a group name!Florrie
2020-05-06clear timeData when a new track startsFlorrie
this makes it so that the value of timeData at any point will always be associated with the track which is currently playing. i thought this was already how timeData worked -- that assumption is what makes a lot of the math in updateQueueLengthLabel work!
2020-05-06make the queue listing a little widerFlorrie
this should help make the wider length label fit better!
2020-05-06refactor to use 'select' instead of 'selected'Florrie
2020-05-04select child grouplike when loading parentFlorrie
This was already the previous behavior, but a misplaced restoreGrouplikeData was overwriting that effect. With this commit, the scroll position will still be restored, but the selected item will be correctly changed to whichever was opened. (This arguably means it's no longer necessary to restore the selected item in save/restoreGrouplikeData at all, but it's kept there in case a grouplike is ever unloaded through some means besides opening its child -- actually this is the case if you reveal an item whos ancestor groups don't fully overlap with that of the previously open group.)
2020-05-03show queue length in collapsed progress infoFlorrie
2020-05-03remember scroll position of each groupFlorrie
2020-05-03clean up some context menu logic to fix reveal bugFlorrie
2020-05-02comment out pane for text editorFlorrie
this was causing a funky visual bug which made the queue pane look like its bottom-right corner was pointing downwards (like the top-right corner of a pane is)!
2020-04-30fix process-metadata pausing context menuFlorrie
2020-04-26further hackery to make the multi menu more usefulFlorrie
2020-04-23update tui-lib; change wheel mode in autoscrollFlorrie
2020-04-23new feature: autoscroll!Florrie
2020-04-18make note of socat in readmeFlorrie
2020-04-18comment out notes and labels features... For Now™Florrie
2020-04-16add new todoFlorrie
2020-04-16draw when pressing select-allFlorrie
2020-04-16be even more careful with socatFlorrie
2020-04-06yeah thats embarrassingFlorrie
2020-04-06Auto-DJFlorrie
2020-03-13display duration in track context menuFlorrie
2020-02-15whoopsFlorrie
2020-02-15cli args (bass boost ur music)Florrie
$ mtui --player sox --player-options bass +25 \;
2020-02-06more socat stuff : shrug emoji : :)Florrie
2020-02-06fix volumeFlorrie
2020-02-04sanitize yo cacheFlorrie
2020-02-04more os.homedir()Florrie
2020-02-04OS-agnostic default music directoryFlorrie