The shuffletron Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The shuffletron Reference Manual

This is the shuffletron Reference Manual, version 0.0.5, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 05:51:06 2022 GMT+0.

Table of Contents


1 Introduction

Shuffletron is a music player based on search and tagging, with a terminal UI, for Linux, written in Common Lisp.

Shuffletron is a text-mode music player oriented around search and tagging. Its principle of operation is simple: search for songs, then play them.

Build

First make the binary for your Lisp:

make shuffletron-bin  # sbcl
# make shuffletron-ccl
# make shuffletron-ccl64

Install the binary and link the libraries:

sudo make install

Run it via the script:

./shuffletron

Dependencies

On Debian, you first need a Lisp implementation. In doubt, install SBCL:

apt install sbcl

You need those dependencies for Flac and Ogg support:

 apt install libflac-dev
 apt install libvorbis-dev

Alternatively you could remove the related mixalot packages in the shuffletron.asd:

:depends-on (:osicat :mixalot :mixalot-mp3 :mixalot-vorbis :mixalot-flac)

Usage

Searches are performed by typing a / followed by the search string.

If ID3 tags are present, songs after a search are presented in the following form:

Artist, [Album,] [Track:] Title

If ID3 information on the artist and title is not available, the filename is printed instead.

In the leftmost column is some subset of the letters 'f', 'a', 'b', and 't'. These indicate which fields matched the query string, as follows:

f: Filename
a: Artist
b: Album
t: Title

Successive searches refine the result of previous searches, and the prompt indicates the number of items you're currently searching within. If there had been more than 50 matches, they would not be printed by default, but you could use the show command at any time to print them.

Following this is a column of numbers, starting from zero. These allow you to choose songs to play as comma (or space) delimited numbers or ranges of numbers. If the song is already in the queue, the number is highlighted in bold white text. Here, I decide to play song 8 then 0-3 by entering this at the prompt:

9 matches> 8, 0-3

The currently playing song is interrupted, and the chosen songs are added to the head of the playback queue. To see the contents of the queue, use the 'queue' command:

9 matches> queue
     (0)  Chromeo, She's In Control, 10: Ah Oui Comme Ca
     (1)  "........................"  1: My And My Man
     (2)  "........................"  2: Needy Girl
     (3)  "........................"  3: You're So Gangsta

Notice that the prompt changed from "library>" to "9 matches>" after our initial search. Also note that the queue command doesn't disrupt the current search results (this is why numbering in the queue listing is surrounded with parentheses, to indicate that entering numbers for playback does not refer to them).

To add songs to the queue without interrupting the current song, prefix the song list with + (to append) or pre (to prepend).

The queue can be cleared with the clear command, and the skip command skips the current song and advances to the next song in the queue. The next command is similar, but differs when looping is enabled: 'next' retains the current song at the end of the queue so it will play again, 'skip' does not.

The loop command toggles looping mode. In looping mode, songs are returned to the end of the queue when they finish playing, or when they are bypassed using the 'next' command.

When you've completed a search, a single blank line moves backward through the search history, eventually returning to the "library>" prompt.

If you've imported a large library, the ID3 tags may not have been scanned. In this case, the program will suggest that you run the scanid3 command. Scanning ID3 tags can be very time consuming, as each file must be opened and read from. Once scanned, ID3 information is remembered by caching it in the ~/.shuffletron/id3-cache file, so you only need to do this the first time you run the program. ID3 tags of new files are scanned automatically when the program starts unless there are more than 1,000 new files.

Additional help topics:

help commands
help examples
help alarms

Licence

MIT


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 shuffletron

Music player

Author

Andy Hefner <ahefner@gmail.com>

License

MIT-style license

Version

0.0.5

Dependencies
  • osicat (system).
  • mixalot (system).
  • mixalot-mp3 (system).
  • mixalot-vorbis (system).
  • mixalot-flac (system).
Source

shuffletron.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 shuffletron/src

Source

shuffletron.asd.

Parent Component

shuffletron (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

4.1.1 shuffletron/shuffletron.asd

Source

shuffletron.asd.

Parent Component

shuffletron (system).

ASDF Systems

shuffletron.


4.1.2 shuffletron/src/packages.lisp

Source

shuffletron.asd.

Parent Component

src (module).

Packages

shuffletron.


4.1.3 shuffletron/src/util.lisp

Dependency

packages.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.4 shuffletron/src/global.lisp

Dependency

util.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface

*shuffletron-version* (special variable).

Internals

4.1.5 shuffletron/src/help.lisp

Dependency

global.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Internals

4.1.6 shuffletron/src/profiles.lisp

Dependency

help.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.7 shuffletron/src/library.lisp

Dependency

profiles.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.8 shuffletron/src/query.lisp

Dependency

library.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.9 shuffletron/src/tags.lisp

Dependency

query.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.10 shuffletron/src/audio.lisp

Dependency

tags.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.11 shuffletron/src/ui.lisp

Dependency

audio.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.12 shuffletron/src/alarms.lisp

Dependency

ui.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.13 shuffletron/src/main.lisp

Dependency

alarms.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.14 shuffletron/src/status-bar.lisp

Dependency

main.lisp (file).

Source

shuffletron.asd.

Parent Component

src (module).

Internals

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 shuffletron

Source

packages.lisp.

Use List
  • common-lisp.
  • mixalot.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


6.1.1 Special variables

Special Variable: *current-stream*
Package

shuffletron.

Source

audio.lisp.

Special Variable: *filtered-library*

The library, excluding songs tagged ’ignore’

Package

shuffletron.

Source

library.lisp.

Special Variable: *library*
Package

shuffletron.

Source

library.lisp.

Special Variable: *loop-mode*
Package

shuffletron.

Source

audio.lisp.

Special Variable: *mixer*
Package

shuffletron.

Source

audio.lisp.

Special Variable: *playqueue*
Package

shuffletron.

Source

audio.lisp.

Special Variable: *profile*
Package

shuffletron.

Source

profiles.lisp.

Special Variable: *selection*
Package

shuffletron.

Source

query.lisp.

Special Variable: *shuffletron-version*
Package

shuffletron.

Source

global.lisp.

Special Variable: *wakeup-time*

Time to wake up if alarm clock is enabled.

Package

shuffletron.

Source

alarms.lisp.


6.1.2 Symbol macros

Symbol Macro: *library-base*
Package

shuffletron.

Source

library.lisp.


6.1.3 Macros

Macro: when-playing ((name) &body body)
Package

shuffletron.

Source

audio.lisp.

Macro: with-playqueue (() &body body)
Package

shuffletron.

Source

audio.lisp.

Macro: with-stream-control (() &body body)
Package

shuffletron.

Source

audio.lisp.


6.1.4 Ordinary functions

Function: add-songs (songs)

Append songs to queue, beginning playback if stopped.

Package

shuffletron.

Source

audio.lisp.

Function: current-song-playing ()
Package

shuffletron.

Source

audio.lisp.

Function: decode-as-filename (string)
Package

shuffletron.

Source

tags.lisp.

Function: emptyp (seq)
Package

shuffletron.

Source

util.lisp.

Function: encode-as-filename (string)
Package

shuffletron.

Source

tags.lisp.

Function: end-stream (stream)
Package

shuffletron.

Source

audio.lisp.

Function: expand-ranges (ranges)
Package

shuffletron.

Source

ui.lisp.

Function: extract-ranges (vector rangespec-string)
Package

shuffletron.

Source

ui.lisp.

Function: finish-stream (stream)
Package

shuffletron.

Source

audio.lisp.

Function: kill-tag (tag)
Package

shuffletron.

Source

ui.lisp.

Function: parse-alarm-args (args)

Parse the arguments to the alarm command, returning NIL or a universal time.

Package

shuffletron.

Source

alarms.lisp.

Function: parse-and-execute (line)
Package

shuffletron.

Source

main.lisp.

Function: parse-item-list (string start)
Package

shuffletron.

Source

ui.lisp.

Function: parse-ranges (string start max)

Parse comma delimited numeric ranges, returning a list of min/max pairs as cons cells.

Package

shuffletron.

Source

ui.lisp.

Function: parse-relative-time (in)
Package

shuffletron.

Source

alarms.lisp.

Function: parse-tag-list (tags-arg)
Package

shuffletron.

Source

ui.lisp.

Function: play-command ()
Package

shuffletron.

Source

audio.lisp.

Function: play-next-song ()
Package

shuffletron.

Source

audio.lisp.

Function: play-song (song)

Start a song playing, overriding the existing song. Returns the new stream if successful, or NIL if the song could not be played.

Package

shuffletron.

Source

audio.lisp.

Function: play-songs (songs)

Prepend songs to the queue and play the first one immediately.

Package

shuffletron.

Source

audio.lisp.

Function: playqueue-and-current ()
Package

shuffletron.

Source

audio.lisp.

Function: pref (name &optional default)
Package

shuffletron.

Source

profiles.lisp.

Function: (setf pref) (name)
Package

shuffletron.

Source

profiles.lisp.

Function: prefpath (prefname &key profile)
Package

shuffletron.

Source

profiles.lisp.

Function: query (substring)
Package

shuffletron.

Source

query.lisp.

Function: querying-library-p ()
Package

shuffletron.

Source

query.lisp.

Function: queue-remove-indices (indices)
Package

shuffletron.

Source

audio.lisp.

Function: queue-remove-songs (songs)
Package

shuffletron.

Source

audio.lisp.

Function: refine-query (substring)
Package

shuffletron.

Source

query.lisp.

Function: reset-query ()
Package

shuffletron.

Source

query.lisp.

Function: run ()
Package

shuffletron.

Source

main.lisp.

Function: set-selection (new-selection &key record)
Package

shuffletron.

Source

query.lisp.

Function: sgr (modes)
Package

shuffletron.

Source

ui.lisp.

Function: skip-song ()
Package

shuffletron.

Source

audio.lisp.

Reader: song-full-path (instance)
Writer: (setf song-full-path) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

full-path.

Reader: song-id3 (instance)
Writer: (setf song-id3) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

id3.

Reader: song-id3-p (instance)
Writer: (setf song-id3-p) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

id3-p.

Reader: song-local-path (instance)
Writer: (setf song-local-path) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

local-path.

Reader: song-properties (instance)
Writer: (setf song-properties) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

properties.

Function: song-start-time (song)
Package

shuffletron.

Source

tags.lisp.

Function: (setf song-start-time) (song)
Package

shuffletron.

Source

tags.lisp.

Reader: song-tags (instance)
Writer: (setf song-tags) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

tags.

Function: songs-matching-tag (tag)
Package

shuffletron.

Source

tags.lisp.

Function: songs-matching-tags (query)
Package

shuffletron.

Source

tags.lisp.

Function: spacing (n)
Package

shuffletron.

Source

ui.lisp.

Function: stop-command ()
Package

shuffletron.

Source

audio.lisp.

Function: tag-count-pairs (songs)
Package

shuffletron.

Source

ui.lisp.

Function: tag-current-song (tags-arg)
Package

shuffletron.

Source

ui.lisp.

Function: tag-song (song tag)
Package

shuffletron.

Source

tags.lisp.

Function: tag-songs (songs tag)
Package

shuffletron.

Source

tags.lisp.

Function: time->string (seconds)
Package

shuffletron.

Source

ui.lisp.

Function: toggle-pause ()
Package

shuffletron.

Source

audio.lisp.

Function: unpause ()
Package

shuffletron.

Source

audio.lisp.

Function: untag-current-song (tags-arg)
Package

shuffletron.

Source

ui.lisp.

Function: untag-song (song tag)
Package

shuffletron.

Source

tags.lisp.

Function: untag-songs (songs tag)
Package

shuffletron.

Source

tags.lisp.

Function: utime->string (utime)
Package

shuffletron.

Source

alarms.lisp.

Function: walk (path fn)

Walk directory tree, ignoring symlinks.

Package

shuffletron.

Source

util.lisp.


6.1.5 Generic functions

Generic Reader: song-of (object)
Package

shuffletron.

Methods
Reader Method: song-of ((shuffletron-stream-mixin shuffletron-stream-mixin))

automatically generated reader method

Source

audio.lisp.

Target Slot

song.

Generic Writer: (setf song-of) (object)
Package

shuffletron.

Methods
Writer Method: (setf song-of) ((shuffletron-stream-mixin shuffletron-stream-mixin))

automatically generated writer method

Source

audio.lisp.

Target Slot

song.

Generic Reader: stopped (object)
Package

shuffletron.

Methods
Reader Method: stopped ((shuffletron-stream-mixin shuffletron-stream-mixin))

automatically generated reader method

Source

audio.lisp.

Target Slot

stopped.

Generic Writer: (setf stopped) (object)
Package

shuffletron.

Methods
Writer Method: (setf stopped) ((shuffletron-stream-mixin shuffletron-stream-mixin))

automatically generated writer method

Source

audio.lisp.

Target Slot

stopped.


6.1.6 Standalone methods

Method: streamer-cleanup :after ((stream shuffletron-stream-mixin) mixer)
Package

mixalot.

Source

audio.lisp.


6.1.7 Structures

Structure: song
Package

shuffletron.

Source

library.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: full-path
Readers

song-full-path.

Writers

(setf song-full-path).

Slot: local-path
Readers

song-local-path.

Writers

(setf song-local-path).

Slot: tags
Readers

song-tags.

Writers

(setf song-tags).

Slot: smashed
Readers

song-smashed.

Writers

(setf song-smashed).

Slot: properties
Readers

song-properties.

Writers

(setf song-properties).

Slot: matchprops
Readers

song-matchprops.

Writers

(setf song-matchprops).

Slot: id3
Readers

song-id3.

Writers

(setf song-id3).

Slot: id3-p
Readers

song-id3-p.

Writers

(setf song-id3-p).


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Special variables

Special Variable: *alarm-thread*
Package

shuffletron.

Source

alarms.lisp.

Special Variable: *argv*
Package

shuffletron.

Source

global.lisp.

Special Variable: *color-prefs*
Package

shuffletron.

Source

ui.lisp.

Special Variable: *cslock*
Package

shuffletron.

Source

audio.lisp.

Special Variable: *debug-mode*
Package

shuffletron.

Source

global.lisp.

Special Variable: *donecounter*
Package

shuffletron.

Source

status-bar.lisp.

Special Variable: *funcounter*
Package

shuffletron.

Source

status-bar.lisp.

Special Variable: *history-depth*
Package

shuffletron.

Source

query.lisp.

Special Variable: *i-took-the-cs-look*
Package

shuffletron.

Source

audio.lisp.

Special Variable: *library-progress*
Package

shuffletron.

Source

library.lisp.

Special Variable: *local-path->song*
Package

shuffletron.

Source

library.lisp.

Special Variable: *max-query-results*

Maximum number of results to print without an explicit ’show’ command.

Package

shuffletron.

Source

ui.lisp.

Special Variable: *output-lock*
Package

shuffletron.

Source

ui.lisp.

Special Variable: *pqlock*
Package

shuffletron.

Source

audio.lisp.

Special Variable: *selection-changed*
Package

shuffletron.

Source

query.lisp.

Special Variable: *selection-history*
Package

shuffletron.

Source

query.lisp.

Special Variable: *tag-file-registry*
Package

shuffletron.

Source

tags.lisp.

Special Variable: *term-cols*
Package

shuffletron.

Source

ui.lisp.

Special Variable: *term-rows*
Package

shuffletron.

Source

ui.lisp.

Special Variable: *waitcounter*
Package

shuffletron.

Source

status-bar.lisp.


6.2.2 Macros

Macro: any (&body forms)

Similar to the OR macro, but doesn’t short-circuit.

Package

shuffletron.

Source

query.lisp.

Macro: disjunction ((&optional string) &body branches)
Package

shuffletron.

Source

util.lisp.

Macro: parsing ((&optional string) &body body)
Package

shuffletron.

Source

util.lisp.

Macro: with-output (() &body body)
Package

shuffletron.

Source

ui.lisp.

Macro: with-posix-interface (() &body body)
Package

shuffletron.

Source

util.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.3 Ordinary functions

Function: %split-list-directory (path)
Package

shuffletron.

Source

util.lisp.

Function: 12hour (in)
Package

shuffletron.

Source

alarms.lisp.

Function: abs-sorted-list-directory (path)
Package

shuffletron.

Source

util.lisp.

Function: add-song-file (full-filename relative-filename)
Package

shuffletron.

Source

library.lisp.

Function: alarm-thread-toplevel ()
Package

shuffletron.

Source

alarms.lisp.

Function: all-profiles ()
Package

shuffletron.

Source

profiles.lisp.

Function: audio-init ()
Package

shuffletron.

Source

audio.lisp.

Function: build-sequence-table (seq &optional key test)
Package

shuffletron.

Source

util.lisp.

Function: carriage-return ()
Package

shuffletron.

Source

library.lisp.

Function: colon (in)
Package

shuffletron.

Source

util.lisp.

Function: compute-filtered-library ()
Package

shuffletron.

Source

library.lisp.

Function: configure-library-path ()

Prompt user and verify library path

Package

shuffletron.

Source

main.lisp.

Function: copy-song (instance)
Package

shuffletron.

Source

library.lisp.

Function: daytime->alarm-time (daytime)

Translate a daytime (in minutes) to a universal time for the alarm. Since the daytime doesn’t specify a date, we choose tomorrow rather than today if the date would be less than the current time.

Package

shuffletron.

Source

alarms.lisp.

Function: dirty-tag-pathnames ()
Package

shuffletron.

Source

tags.lisp.

Function: dirty-tags ()
Package

shuffletron.

Source

tags.lisp.

Function: display-status-bar ()
Package

shuffletron.

Source

status-bar.lisp.

Function: do-query (substring update-highlighting)
Package

shuffletron.

Source

query.lisp.

Function: do-seek (args)
Package

shuffletron.

Source

main.lisp.

Function: do-set-alarm (args)
Package

shuffletron.

Source

alarms.lisp.

Function: eof (in)
Package

shuffletron.

Source

util.lisp.

Function: eval* (string)

Read a form from STRING, evaluate it in the Shuffletron package and print the result.

Package

shuffletron.

Source

main.lisp.

Function: file (filename)
Setf Expander: (setf file) (filename)
Package

shuffletron.

Source

util.lisp.

Function: find-type-via-stat (path name)
Package

shuffletron.

Source

util.lisp.

Function: get-profile-base (profile-name)
Package

shuffletron.

Source

profiles.lisp.

Function: get-song-metadata (absolute-path)
Package

shuffletron.

Source

library.lisp.

Function: get-terminal-size ()
Package

shuffletron.

Source

ui.lisp.

Function: getline ()
Package

shuffletron.

Source

ui.lisp.

Function: init ()
Package

shuffletron.

Source

main.lisp.

Function: init-library ()
Package

shuffletron.

Source

library.lisp.

Function: invalidate-tags ()
Package

shuffletron.

Source

tags.lisp.

Function: item-list-delim (char)
Package

shuffletron.

Source

ui.lisp.

Function: join-paths (a b)

Append a file name to a path, adding a directory separator if necessary.

Package

shuffletron.

Source

util.lisp.

Function: library-scan (path)
Package

shuffletron.

Source

library.lisp.

Function: list-remove-by-index (list indices)
Package

shuffletron.

Source

audio.lisp.

Function: list-tag-files ()
Package

shuffletron.

Source

tags.lisp.

Function: load-metadata-cache ()
Package

shuffletron.

Source

library.lisp.

Function: load-tag-group (tag)
Package

shuffletron.

Source

tags.lisp.

Function: load-tags ()

Load all tags from disk.

Package

shuffletron.

Source

tags.lisp.

Function: mainloop ()
Package

shuffletron.

Source

main.lisp.

Function: make-song (&key full-path local-path tags smashed properties matchprops id3 id3-p)
Package

shuffletron.

Source

library.lisp.

Function: make-streamer (song)
Package

shuffletron.

Source

audio.lisp.

Function: match (in match)
Package

shuffletron.

Source

util.lisp.

Function: match-extension (filename extension)
Package

shuffletron.

Source

library.lisp.

Function: maybe-underlined (string markings-or-nil style)
Package

shuffletron.

Source

ui.lisp.

Function: mod60 (in)
Package

shuffletron.

Source

util.lisp.

Function: move-cursor (col row)
Package

shuffletron.

Source

status-bar.lisp.

Function: music-file-type (filename)
Package

shuffletron.

Source

library.lisp.

Function: note-tag-write-time (tag)
Package

shuffletron.

Source

tags.lisp.

Function: num (in)
Package

shuffletron.

Source

util.lisp.

Function: parse-12-hour-format (in)

Parse numeric portions (hour or h:mm) of 12-hour time format, returning a count in minutes.

Package

shuffletron.

Source

alarms.lisp.

Function: parse-command-line-args ()
Package

shuffletron.

Source

ui.lisp.

Function: parse-daytime (in)

Parse string as a time of day (AM/PM), for the alarm clock. Returns time in minutes from midnight.

Package

shuffletron.

Source

alarms.lisp.

Function: parse-timespec (string)

Parse a time/duration, in one of three formats (seconds, m:ss, h:mm:ss)

Package

shuffletron.

Source

alarms.lisp.

Function: print-alarm-help ()
Package

shuffletron.

Source

help.lisp.

Function: print-commands ()
Package

shuffletron.

Source

help.lisp.

Function: print-decorated (style-0 style-1 string markings style)
Package

shuffletron.

Source

ui.lisp.

Function: print-examples ()
Package

shuffletron.

Source

help.lisp.

Function: print-help ()
Package

shuffletron.

Source

help.lisp.

Function: print-id3-properties (stream props)
Package

shuffletron.

Source

ui.lisp.

Function: print-time ()
Package

shuffletron.

Source

alarms.lisp.

Function: print-usage-message ()
Package

shuffletron.

Source

help.lisp.

Function: quit ()
Package

shuffletron.

Source

main.lisp.

Function: relative-to (path filename)
Package

shuffletron.

Source

util.lisp.

Function: restore-cursor ()
Package

shuffletron.

Source

status-bar.lisp.

Function: save-cursor ()
Package

shuffletron.

Source

status-bar.lisp.

Function: save-metadata-cache ()
Package

shuffletron.

Source

library.lisp.

Function: save-tags-list (tag)
Package

shuffletron.

Source

tags.lisp.

Function: scan-file-metadata (&key verbose adjective)
Package

shuffletron.

Source

library.lisp.

Function: selection-songs (rangespec)
Package

shuffletron.

Source

ui.lisp.

Function: set-alarm (utime)
Package

shuffletron.

Source

alarms.lisp.

Function: show-all-tags ()
Package

shuffletron.

Source

ui.lisp.

Function: show-current-query ()
Package

shuffletron.

Source

main.lisp.

Function: show-current-song (&optional delimit)
Package

shuffletron.

Source

ui.lisp.

Function: show-current-song-tags ()
Package

shuffletron.

Source

ui.lisp.

Function: show-playqueue ()
Package

shuffletron.

Source

ui.lisp.

Function: show-song-matches (items &key mode highlight-queue)
Package

shuffletron.

Source

ui.lisp.

Function: show-song-tags (song &key no-tags-fmt)
Package

shuffletron.

Source

ui.lisp.

Function: smash-string (string)
Package

shuffletron.

Source

library.lisp.

Reader: song-matchprops (instance)
Writer: (setf song-matchprops) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

matchprops.

Function: song-p (object)
Package

shuffletron.

Source

library.lisp.

Reader: song-smashed (instance)
Writer: (setf song-smashed) (instance)
Package

shuffletron.

Source

library.lisp.

Target Slot

smashed.

Function: song-start-prefname (song)
Package

shuffletron.

Source

tags.lisp.

Function: songs-needing-id3-scan ()
Package

shuffletron.

Source

library.lisp.

Function: split-list-directory (path)
Package

shuffletron.

Source

util.lisp.

Function: spooky-init ()
Package

shuffletron.

Source

main.lisp.

Function: subpath (list)
Package

shuffletron.

Source

profiles.lisp.

Function: tag-file-dirty-p (tag)
Package

shuffletron.

Source

tags.lisp.

Function: tag-pathname-dirty-p (pathname)
Package

shuffletron.

Source

tags.lisp.

Function: tag-unescaped-char-p (character)
Package

shuffletron.

Source

tags.lisp.

Function: trigger-alarm ()
Package

shuffletron.

Source

alarms.lisp.

Function: update-status-bar ()
Package

shuffletron.

Source

status-bar.lisp.

Function: update-terminal-size ()
Package

shuffletron.

Source

ui.lisp.

Function: val (x)
Package

shuffletron.

Source

util.lisp.

Function: vector-select-ranges (vector rangespec)
Package

shuffletron.

Source

ui.lisp.

Function: whitespace (in)
Package

shuffletron.

Source

util.lisp.

Function: write-sexp-file (filename object)
Package

shuffletron.

Source

util.lisp.


6.2.4 Classes

Class: shuffletron-flac-stream
Package

shuffletron.

Source

audio.lisp.

Direct superclasses
Class: shuffletron-mp3-stream
Package

shuffletron.

Source

audio.lisp.

Direct superclasses
Class: shuffletron-ogg-stream
Package

shuffletron.

Source

audio.lisp.

Direct superclasses
Class: shuffletron-stream-mixin
Package

shuffletron.

Source

audio.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: song
Initargs

:song

Readers

song-of.

Writers

(setf song-of).

Slot: stopped
Readers

stopped.

Writers

(setf stopped).


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (   1  
A   B   C   D   E   F   G   I   J   K   L   M   N   P   Q   R   S   T   U   V   W  
Index Entry  Section

%
%split-list-directory: Private ordinary functions

(
(setf file): Private ordinary functions
(setf pref): Public ordinary functions
(setf song-full-path): Public ordinary functions
(setf song-id3): Public ordinary functions
(setf song-id3-p): Public ordinary functions
(setf song-local-path): Public ordinary functions
(setf song-matchprops): Private ordinary functions
(setf song-of): Public generic functions
(setf song-of): Public generic functions
(setf song-properties): Public ordinary functions
(setf song-smashed): Private ordinary functions
(setf song-start-time): Public ordinary functions
(setf song-tags): Public ordinary functions
(setf stopped): Public generic functions
(setf stopped): Public generic functions

1
12hour: Private ordinary functions

A
abs-sorted-list-directory: Private ordinary functions
add-song-file: Private ordinary functions
add-songs: Public ordinary functions
alarm-thread-toplevel: Private ordinary functions
all-profiles: Private ordinary functions
any: Private macros
audio-init: Private ordinary functions

B
build-sequence-table: Private ordinary functions

C
carriage-return: Private ordinary functions
colon: Private ordinary functions
compute-filtered-library: Private ordinary functions
configure-library-path: Private ordinary functions
copy-song: Private ordinary functions
current-song-playing: Public ordinary functions

D
daytime->alarm-time: Private ordinary functions
decode-as-filename: Public ordinary functions
dirty-tag-pathnames: Private ordinary functions
dirty-tags: Private ordinary functions
disjunction: Private macros
display-status-bar: Private ordinary functions
do-query: Private ordinary functions
do-seek: Private ordinary functions
do-set-alarm: Private ordinary functions

E
emptyp: Public ordinary functions
encode-as-filename: Public ordinary functions
end-stream: Public ordinary functions
eof: Private ordinary functions
eval*: Private ordinary functions
expand-ranges: Public ordinary functions
extract-ranges: Public ordinary functions

F
file: Private ordinary functions
find-type-via-stat: Private ordinary functions
finish-stream: Public ordinary functions
Function, %split-list-directory: Private ordinary functions
Function, (setf pref): Public ordinary functions
Function, (setf song-full-path): Public ordinary functions
Function, (setf song-id3): Public ordinary functions
Function, (setf song-id3-p): Public ordinary functions
Function, (setf song-local-path): Public ordinary functions
Function, (setf song-matchprops): Private ordinary functions
Function, (setf song-properties): Public ordinary functions
Function, (setf song-smashed): Private ordinary functions
Function, (setf song-start-time): Public ordinary functions
Function, (setf song-tags): Public ordinary functions
Function, 12hour: Private ordinary functions
Function, abs-sorted-list-directory: Private ordinary functions
Function, add-song-file: Private ordinary functions
Function, add-songs: Public ordinary functions
Function, alarm-thread-toplevel: Private ordinary functions
Function, all-profiles: Private ordinary functions
Function, audio-init: Private ordinary functions
Function, build-sequence-table: Private ordinary functions
Function, carriage-return: Private ordinary functions
Function, colon: Private ordinary functions
Function, compute-filtered-library: Private ordinary functions
Function, configure-library-path: Private ordinary functions
Function, copy-song: Private ordinary functions
Function, current-song-playing: Public ordinary functions
Function, daytime->alarm-time: Private ordinary functions
Function, decode-as-filename: Public ordinary functions
Function, dirty-tag-pathnames: Private ordinary functions
Function, dirty-tags: Private ordinary functions
Function, display-status-bar: Private ordinary functions
Function, do-query: Private ordinary functions
Function, do-seek: Private ordinary functions
Function, do-set-alarm: Private ordinary functions
Function, emptyp: Public ordinary functions
Function, encode-as-filename: Public ordinary functions
Function, end-stream: Public ordinary functions
Function, eof: Private ordinary functions
Function, eval*: Private ordinary functions
Function, expand-ranges: Public ordinary functions
Function, extract-ranges: Public ordinary functions
Function, file: Private ordinary functions
Function, find-type-via-stat: Private ordinary functions
Function, finish-stream: Public ordinary functions
Function, get-profile-base: Private ordinary functions
Function, get-song-metadata: Private ordinary functions
Function, get-terminal-size: Private ordinary functions
Function, getline: Private ordinary functions
Function, init: Private ordinary functions
Function, init-library: Private ordinary functions
Function, invalidate-tags: Private ordinary functions
Function, item-list-delim: Private ordinary functions
Function, join-paths: Private ordinary functions
Function, kill-tag: Public ordinary functions
Function, library-scan: Private ordinary functions
Function, list-remove-by-index: Private ordinary functions
Function, list-tag-files: Private ordinary functions
Function, load-metadata-cache: Private ordinary functions
Function, load-tag-group: Private ordinary functions
Function, load-tags: Private ordinary functions
Function, mainloop: Private ordinary functions
Function, make-song: Private ordinary functions
Function, make-streamer: Private ordinary functions
Function, match: Private ordinary functions
Function, match-extension: Private ordinary functions
Function, maybe-underlined: Private ordinary functions
Function, mod60: Private ordinary functions
Function, move-cursor: Private ordinary functions
Function, music-file-type: Private ordinary functions
Function, note-tag-write-time: Private ordinary functions
Function, num: Private ordinary functions
Function, parse-12-hour-format: Private ordinary functions
Function, parse-alarm-args: Public ordinary functions
Function, parse-and-execute: Public ordinary functions
Function, parse-command-line-args: Private ordinary functions
Function, parse-daytime: Private ordinary functions
Function, parse-item-list: Public ordinary functions
Function, parse-ranges: Public ordinary functions
Function, parse-relative-time: Public ordinary functions
Function, parse-tag-list: Public ordinary functions
Function, parse-timespec: Private ordinary functions
Function, play-command: Public ordinary functions
Function, play-next-song: Public ordinary functions
Function, play-song: Public ordinary functions
Function, play-songs: Public ordinary functions
Function, playqueue-and-current: Public ordinary functions
Function, pref: Public ordinary functions
Function, prefpath: Public ordinary functions
Function, print-alarm-help: Private ordinary functions
Function, print-commands: Private ordinary functions
Function, print-decorated: Private ordinary functions
Function, print-examples: Private ordinary functions
Function, print-help: Private ordinary functions
Function, print-id3-properties: Private ordinary functions
Function, print-time: Private ordinary functions
Function, print-usage-message: Private ordinary functions
Function, query: Public ordinary functions
Function, querying-library-p: Public ordinary functions
Function, queue-remove-indices: Public ordinary functions
Function, queue-remove-songs: Public ordinary functions
Function, quit: Private ordinary functions
Function, refine-query: Public ordinary functions
Function, relative-to: Private ordinary functions
Function, reset-query: Public ordinary functions
Function, restore-cursor: Private ordinary functions
Function, run: Public ordinary functions
Function, save-cursor: Private ordinary functions
Function, save-metadata-cache: Private ordinary functions
Function, save-tags-list: Private ordinary functions
Function, scan-file-metadata: Private ordinary functions
Function, selection-songs: Private ordinary functions
Function, set-alarm: Private ordinary functions
Function, set-selection: Public ordinary functions
Function, sgr: Public ordinary functions
Function, show-all-tags: Private ordinary functions
Function, show-current-query: Private ordinary functions
Function, show-current-song: Private ordinary functions
Function, show-current-song-tags: Private ordinary functions
Function, show-playqueue: Private ordinary functions
Function, show-song-matches: Private ordinary functions
Function, show-song-tags: Private ordinary functions
Function, skip-song: Public ordinary functions
Function, smash-string: Private ordinary functions
Function, song-full-path: Public ordinary functions
Function, song-id3: Public ordinary functions
Function, song-id3-p: Public ordinary functions
Function, song-local-path: Public ordinary functions
Function, song-matchprops: Private ordinary functions
Function, song-p: Private ordinary functions
Function, song-properties: Public ordinary functions
Function, song-smashed: Private ordinary functions
Function, song-start-prefname: Private ordinary functions
Function, song-start-time: Public ordinary functions
Function, song-tags: Public ordinary functions
Function, songs-matching-tag: Public ordinary functions
Function, songs-matching-tags: Public ordinary functions
Function, songs-needing-id3-scan: Private ordinary functions
Function, spacing: Public ordinary functions
Function, split-list-directory: Private ordinary functions
Function, spooky-init: Private ordinary functions
Function, stop-command: Public ordinary functions
Function, subpath: Private ordinary functions
Function, tag-count-pairs: Public ordinary functions
Function, tag-current-song: Public ordinary functions
Function, tag-file-dirty-p: Private ordinary functions
Function, tag-pathname-dirty-p: Private ordinary functions
Function, tag-song: Public ordinary functions
Function, tag-songs: Public ordinary functions
Function, tag-unescaped-char-p: Private ordinary functions
Function, time->string: Public ordinary functions
Function, toggle-pause: Public ordinary functions
Function, trigger-alarm: Private ordinary functions
Function, unpause: Public ordinary functions
Function, untag-current-song: Public ordinary functions
Function, untag-song: Public ordinary functions
Function, untag-songs: Public ordinary functions
Function, update-status-bar: Private ordinary functions
Function, update-terminal-size: Private ordinary functions
Function, utime->string: Public ordinary functions
Function, val: Private ordinary functions
Function, vector-select-ranges: Private ordinary functions
Function, walk: Public ordinary functions
Function, whitespace: Private ordinary functions
Function, write-sexp-file: Private ordinary functions

G
Generic Function, (setf song-of): Public generic functions
Generic Function, (setf stopped): Public generic functions
Generic Function, song-of: Public generic functions
Generic Function, stopped: Public generic functions
get-profile-base: Private ordinary functions
get-song-metadata: Private ordinary functions
get-terminal-size: Private ordinary functions
getline: Private ordinary functions

I
init: Private ordinary functions
init-library: Private ordinary functions
invalidate-tags: Private ordinary functions
item-list-delim: Private ordinary functions

J
join-paths: Private ordinary functions

K
kill-tag: Public ordinary functions

L
library-scan: Private ordinary functions
list-remove-by-index: Private ordinary functions
list-tag-files: Private ordinary functions
load-metadata-cache: Private ordinary functions
load-tag-group: Private ordinary functions
load-tags: Private ordinary functions

M
Macro, any: Private macros
Macro, disjunction: Private macros
Macro, parsing: Private macros
Macro, when-playing: Public macros
Macro, with-output: Private macros
Macro, with-playqueue: Public macros
Macro, with-posix-interface: Private macros
Macro, with-stream-control: Public macros
mainloop: Private ordinary functions
make-song: Private ordinary functions
make-streamer: Private ordinary functions
match: Private ordinary functions
match-extension: Private ordinary functions
maybe-underlined: Private ordinary functions
Method, (setf song-of): Public generic functions
Method, (setf stopped): Public generic functions
Method, song-of: Public generic functions
Method, stopped: Public generic functions
Method, streamer-cleanup: Public standalone methods
mod60: Private ordinary functions
move-cursor: Private ordinary functions
music-file-type: Private ordinary functions

N
note-tag-write-time: Private ordinary functions
num: Private ordinary functions

P
parse-12-hour-format: Private ordinary functions
parse-alarm-args: Public ordinary functions
parse-and-execute: Public ordinary functions
parse-command-line-args: Private ordinary functions
parse-daytime: Private ordinary functions
parse-item-list: Public ordinary functions
parse-ranges: Public ordinary functions
parse-relative-time: Public ordinary functions
parse-tag-list: Public ordinary functions
parse-timespec: Private ordinary functions
parsing: Private macros
play-command: Public ordinary functions
play-next-song: Public ordinary functions
play-song: Public ordinary functions
play-songs: Public ordinary functions
playqueue-and-current: Public ordinary functions
pref: Public ordinary functions
prefpath: Public ordinary functions
print-alarm-help: Private ordinary functions
print-commands: Private ordinary functions
print-decorated: Private ordinary functions
print-examples: Private ordinary functions
print-help: Private ordinary functions
print-id3-properties: Private ordinary functions
print-time: Private ordinary functions
print-usage-message: Private ordinary functions

Q
query: Public ordinary functions
querying-library-p: Public ordinary functions
queue-remove-indices: Public ordinary functions
queue-remove-songs: Public ordinary functions
quit: Private ordinary functions

R
refine-query: Public ordinary functions
relative-to: Private ordinary functions
reset-query: Public ordinary functions
restore-cursor: Private ordinary functions
run: Public ordinary functions

S
save-cursor: Private ordinary functions
save-metadata-cache: Private ordinary functions
save-tags-list: Private ordinary functions
scan-file-metadata: Private ordinary functions
selection-songs: Private ordinary functions
set-alarm: Private ordinary functions
set-selection: Public ordinary functions
Setf Expander, (setf file): Private ordinary functions
sgr: Public ordinary functions
show-all-tags: Private ordinary functions
show-current-query: Private ordinary functions
show-current-song: Private ordinary functions
show-current-song-tags: Private ordinary functions
show-playqueue: Private ordinary functions
show-song-matches: Private ordinary functions
show-song-tags: Private ordinary functions
skip-song: Public ordinary functions
smash-string: Private ordinary functions
song-full-path: Public ordinary functions
song-id3: Public ordinary functions
song-id3-p: Public ordinary functions
song-local-path: Public ordinary functions
song-matchprops: Private ordinary functions
song-of: Public generic functions
song-of: Public generic functions
song-p: Private ordinary functions
song-properties: Public ordinary functions
song-smashed: Private ordinary functions
song-start-prefname: Private ordinary functions
song-start-time: Public ordinary functions
song-tags: Public ordinary functions
songs-matching-tag: Public ordinary functions
songs-matching-tags: Public ordinary functions
songs-needing-id3-scan: Private ordinary functions
spacing: Public ordinary functions
split-list-directory: Private ordinary functions
spooky-init: Private ordinary functions
stop-command: Public ordinary functions
stopped: Public generic functions
stopped: Public generic functions
streamer-cleanup: Public standalone methods
subpath: Private ordinary functions

T
tag-count-pairs: Public ordinary functions
tag-current-song: Public ordinary functions
tag-file-dirty-p: Private ordinary functions
tag-pathname-dirty-p: Private ordinary functions
tag-song: Public ordinary functions
tag-songs: Public ordinary functions
tag-unescaped-char-p: Private ordinary functions
time->string: Public ordinary functions
toggle-pause: Public ordinary functions
trigger-alarm: Private ordinary functions

U
unpause: Public ordinary functions
untag-current-song: Public ordinary functions
untag-song: Public ordinary functions
untag-songs: Public ordinary functions
update-status-bar: Private ordinary functions
update-terminal-size: Private ordinary functions
utime->string: Public ordinary functions

V
val: Private ordinary functions
vector-select-ranges: Private ordinary functions

W
walk: Public ordinary functions
when-playing: Public macros
whitespace: Private ordinary functions
with-output: Private macros
with-playqueue: Public macros
with-posix-interface: Private macros
with-stream-control: Public macros
write-sexp-file: Private ordinary functions

Jump to:   %   (   1  
A   B   C   D   E   F   G   I   J   K   L   M   N   P   Q   R   S   T   U   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
F   I   L   M   P   S   T  
Index Entry  Section

*
*alarm-thread*: Private special variables
*argv*: Private special variables
*color-prefs*: Private special variables
*cslock*: Private special variables
*current-stream*: Public special variables
*debug-mode*: Private special variables
*donecounter*: Private special variables
*filtered-library*: Public special variables
*funcounter*: Private special variables
*history-depth*: Private special variables
*i-took-the-cs-look*: Private special variables
*library*: Public special variables
*library-base*: Public symbol macros
*library-progress*: Private special variables
*local-path->song*: Private special variables
*loop-mode*: Public special variables
*max-query-results*: Private special variables
*mixer*: Public special variables
*output-lock*: Private special variables
*playqueue*: Public special variables
*pqlock*: Private special variables
*profile*: Public special variables
*selection*: Public special variables
*selection-changed*: Private special variables
*selection-history*: Private special variables
*shuffletron-version*: Public special variables
*tag-file-registry*: Private special variables
*term-cols*: Private special variables
*term-rows*: Private special variables
*waitcounter*: Private special variables
*wakeup-time*: Public special variables

F
full-path: Public structures

I
id3: Public structures
id3-p: Public structures

L
local-path: Public structures

M
matchprops: Public structures

P
properties: Public structures

S
Slot, full-path: Public structures
Slot, id3: Public structures
Slot, id3-p: Public structures
Slot, local-path: Public structures
Slot, matchprops: Public structures
Slot, properties: Public structures
Slot, smashed: Public structures
Slot, song: Private classes
Slot, stopped: Private classes
Slot, tags: Public structures
smashed: Public structures
song: Private classes
Special Variable, *alarm-thread*: Private special variables
Special Variable, *argv*: Private special variables
Special Variable, *color-prefs*: Private special variables
Special Variable, *cslock*: Private special variables
Special Variable, *current-stream*: Public special variables
Special Variable, *debug-mode*: Private special variables
Special Variable, *donecounter*: Private special variables
Special Variable, *filtered-library*: Public special variables
Special Variable, *funcounter*: Private special variables
Special Variable, *history-depth*: Private special variables
Special Variable, *i-took-the-cs-look*: Private special variables
Special Variable, *library*: Public special variables
Special Variable, *library-progress*: Private special variables
Special Variable, *local-path->song*: Private special variables
Special Variable, *loop-mode*: Public special variables
Special Variable, *max-query-results*: Private special variables
Special Variable, *mixer*: Public special variables
Special Variable, *output-lock*: Private special variables
Special Variable, *playqueue*: Public special variables
Special Variable, *pqlock*: Private special variables
Special Variable, *profile*: Public special variables
Special Variable, *selection*: Public special variables
Special Variable, *selection-changed*: Private special variables
Special Variable, *selection-history*: Private special variables
Special Variable, *shuffletron-version*: Public special variables
Special Variable, *tag-file-registry*: Private special variables
Special Variable, *term-cols*: Private special variables
Special Variable, *term-rows*: Private special variables
Special Variable, *waitcounter*: Private special variables
Special Variable, *wakeup-time*: Public special variables
stopped: Private classes
Symbol Macro, *library-base*: Public symbol macros

T
tags: Public structures

Jump to:   *  
F   I   L   M   P   S   T  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   A   C   F   G   H   L   M   P   Q   S   T   U  
Index Entry  Section

A
alarms.lisp: The shuffletron/src/alarms․lisp file
audio.lisp: The shuffletron/src/audio․lisp file

C
Class, shuffletron-flac-stream: Private classes
Class, shuffletron-mp3-stream: Private classes
Class, shuffletron-ogg-stream: Private classes
Class, shuffletron-stream-mixin: Private classes

F
File, alarms.lisp: The shuffletron/src/alarms․lisp file
File, audio.lisp: The shuffletron/src/audio․lisp file
File, global.lisp: The shuffletron/src/global․lisp file
File, help.lisp: The shuffletron/src/help․lisp file
File, library.lisp: The shuffletron/src/library․lisp file
File, main.lisp: The shuffletron/src/main․lisp file
File, packages.lisp: The shuffletron/src/packages․lisp file
File, profiles.lisp: The shuffletron/src/profiles․lisp file
File, query.lisp: The shuffletron/src/query․lisp file
File, shuffletron.asd: The shuffletron/shuffletron․asd file
File, status-bar.lisp: The shuffletron/src/status-bar․lisp file
File, tags.lisp: The shuffletron/src/tags․lisp file
File, ui.lisp: The shuffletron/src/ui․lisp file
File, util.lisp: The shuffletron/src/util․lisp file

G
global.lisp: The shuffletron/src/global․lisp file

H
help.lisp: The shuffletron/src/help․lisp file

L
library.lisp: The shuffletron/src/library․lisp file

M
main.lisp: The shuffletron/src/main․lisp file
Module, src: The shuffletron/src module

P
Package, shuffletron: The shuffletron package
packages.lisp: The shuffletron/src/packages․lisp file
profiles.lisp: The shuffletron/src/profiles․lisp file

Q
query.lisp: The shuffletron/src/query․lisp file

S
shuffletron: The shuffletron system
shuffletron: The shuffletron package
shuffletron-flac-stream: Private classes
shuffletron-mp3-stream: Private classes
shuffletron-ogg-stream: Private classes
shuffletron-stream-mixin: Private classes
shuffletron.asd: The shuffletron/shuffletron․asd file
song: Public structures
src: The shuffletron/src module
status-bar.lisp: The shuffletron/src/status-bar․lisp file
Structure, song: Public structures
System, shuffletron: The shuffletron system

T
tags.lisp: The shuffletron/src/tags․lisp file

U
ui.lisp: The shuffletron/src/ui․lisp file
util.lisp: The shuffletron/src/util․lisp file

Jump to:   A   C   F   G   H   L   M   P   Q   S   T   U