GithubHelp home page GithubHelp logo

vedgy / venturous Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 424 KB

Random playback manager for Audacious (and potentially for other players).

License: GNU General Public License v3.0

CMake 2.06% Shell 1.10% HTML 11.97% C++ 84.87%
audio-player playlist random tree

venturous's People

Contributors

vedgy avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

venturous's Issues

Allow extended selection in playlist tree in non-edit mode

Implementation plan (feel free to comment, vote for this feature, suggest alternatives):

  1. Selection of multiple items will be possible in tree non-edit mode in the same way as it is currently in edit mode.
  2. Pressing will activate all selected items and play them in external player (currently this works for single selected item). All playable descendants of unplayable selected items will be played.

Store all file patterns in preferences

Currently storing file patterns is not implemented properly. Various pattern information can be lost because of this.
Default file patterns should be set in Preferences analogously to custom actions.

Detached Audacious process - alternative external player implementation

There is a Song Change Audacious plugin, which allows to run a command when Audacious reaches the end of the playlist. By appending ventool next command (if the command is not empty - insert ; before ventool next) one can achieve random playback without dubious -q audacious option. The biggest problem with current approach is that Audacious must be restarted often. Detached Audacious would be available as alternative player, so the old way would still be available as an option.

Implementing alternative Audacious support has another advantage: adding another external player support that can be switched to at runtime will be much easier after accompanying interface changes.

Add support for other external players

Feel free to suggest players, vote for them or even implement support for some player yourself.
Player must support minimal command line interface.
Essential features of external player:

  1. Directories and files for playlist can be specified as command line arguments.
  2. External player notifies Venturous when playback finishes (prints something to stdout or quits).
  3. External player can be shut down from command line.

Don't block GUI when adding files to playlist

Files should be added in a separate thread.
A special dialog should be visible when files are being added. This dialog should display currently analyzed path, have Cancel button.

Custom actions in context menu

Implementation plan (feel free to comment, vote for this feature, suggest alternatives):

  1. Tab "Custom actions" in preferences - contains a list of user-defined custom actions, which will be available in context menu. Triples <name, command, comment> can be added/edited/disabled/removed.
  2. The same context menu is present both in playlist tree and history window.
  3. All occurences of "%f" in command are substituted with selected item(s)' path(s).

Examples (will be present by default, but disabled):

  • <"Open in file manager", "thunar %f", "Thunar must be installed">
  • <"Move to music trash", "mv %f /Music/trash/", "/Music/trash directory must exist">
  • <"Move to Trash", "trash-put %f", "trash-cli must be installed">

Add playback history

Implementation plan (feel free to comment and suggest alternatives):

  1. Store playback history in plain text file "/history".
  2. Tab "History" in preferences (the fourth tab).
  3. Option in "History" preferences: "Maximum size" - determines maximum number of items in history (default: 100).
  4. Menu "History" with actions "Export", "Import", "Clear".
  5. History window is dockable (this implies that it can be hidden/shown/moved in the same way as toolbar, can be resized) and contains list of absolute item paths (the last played file - usually currently playing - is at the top of the list).
  6. Activating (double-clicking or pressing ) item in history window starts playing it. Pressing Delete removes selected history items.
  7. "Previous" action in Playback menu.
  8. Option in "History" preferences: "Copy played from history item at the top" - allows copying manually repeated item from history at the history top (default: OFF).
  9. Option in "History" preferences (enabled only if previous option is OFF): "Play next item from history if available" - allows repeating exact playback sequence after selecting some old item from history (default: OFF).
  10. Option in "History" preferences: "Number of hidden directories in item path" - for example, if set to 3 and the path is "/home/username/Music/Bach/BWV 565.flac", then only "Bach/BWV 565.flac" will be displayed in history window (default: 3).
  11. Option in "History" preferences: "Save history to disk immediately" - if checked, history will be saved after each update (new item played) (default: OFF).

Add possibility to reload preferences from file

Currently if user decides to manually edit Venturous.xml, it is necessary to restart Venturous in order for the changes to take effect; furthermore quitting should be done before editing is started.
So the current Venturous state can be inconvenient and a special loading-from-file action can be useful.

Allow activating and playing items in edit mode

Implementation plan (feel free to comment, vote for this feature, suggest alternatives):
Activating (, but not double click!) tree items in edit mode will produce the same results as it does in non-edit mode.

Playlist and history search

Details:

  • add Search action in the playlist and history context menus;
  • search the whole playlist/history if no items are selected;
  • it is possible to limit search to file/directory names only or perform a full-text search;
  • full-text search is performed on the files of the user-specified file formats that are present in the selection area;
  • search results - files or directories - can be opened in the appropriate application. This application is specified by the system mime-type configuration (QDesktopServices::openUrl).

Translation

Feel free to suggest languages and vote for them. Specify what should be translated: GUI, manual or both.
If this feature would become popular enough, I could prepare Venturous for transations. But since I know only Ukrainian, Russian and English, volunteers would be necessary to translate to other languages.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.