;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310\311\312%\210\313\314\315\316#\210\317\320\321\322\323DD\324\325\326%\210\317\327\321\322\330DD\331\325\322%\207" [require libmpdel-directory mpdel-core mpdel-tablist mpdel-playlist custom-declare-group mpdel-browser nil "Display and navigate listings of MPD entities." :group libmpdel custom-declare-face mpdel-browser-directory-face ((t :inherit italic)) "Face for directories in browser." custom-declare-variable mpdel-browser-top-level-entries funcall function #[0 "\300\207" [(directories empty-line albums artists empty-line stored-playlists current-playlist empty-line search-album search-title search-artist search-filter)] 1] "A list of the entries to show in the browser's top level buffer.\n\nEach entry is shown as a selectable line with the entry's\ndescription; selecting it with the keyboard or mouse will list\nits contents in a new buffer." :type (repeat (choice (const :tag "Directories" directories) (string :tag "Directory") (const :tag "All albums" albums) (const :tag "All artists" artists) (const :tag "Stored playlists" stored-playlists) (const :tag "Current playlist" current-playlist) (const :tag "Search by artist" search-artist) (const :tag "Search by album" search-album) (const :tag "Search by title" search-title) (const :tag "Search using filter" search-filter) (const :tag "Separator" empty-line))) mpdel-browser-list-clean-up-function #[0 "\300\207" [identity] 1] "Function called with the list of entries to be displayed, for clean-up.\n\nThe function is called with the list of retreived entries, and\nshould return a new list of entries, possibly modified and\nre-ordered. Use cases include elimination of duplicates (some\nbackends accumulate renamed songs in their listings) or custom\norderings."] 6) (defvar mpdel-browser--song-format (byte-code "\300\301\302\303E\304\305\306E\307\302\303E\310\311\303E\312\313\303E\314\315\303E&\207" [vector "Directory / Title" 30 t "#" 6 nil "Album" "Disk" 4 "Date" 5 "Artist" 0] 9)) #@90 Return the navigel column format for a directory that is a child of PARENT. (fn PARENT) (defalias 'mpdel-browser--directory-format #[257 "\301\302!>\204\303\304\305D\"\210\306H\206\307\310\311E!\207" [cl-struct-libmpdel-directory-tags vector type-of signal wrong-type-argument libmpdel-directory 1 "" 60 t] 6 (#$ . 2131)]) #@67 Format of the tablist before the children of an entity are known. (defvar mpdel-browser--retrieving-format (byte-code "\300\301\302\303E!\207" [vector "Retrieving ..." 60 t] 4) (#$ . 2469)) #@64 Check whether there is any song among CHILDREN. (fn CHILDREN) (defalias 'mpdel-browser--includes-songs-p #[257 "\300\301\"\207" [cl-some libmpdel-song-p] 4 (#$ . 2665)]) #@109 Return format for a directory, given its PARENT-DIRECTORY and its CHILDREN. (fn PARENT-DIRECTORY CHILDREN) (defalias 'mpdel-browser--format #[514 "\301!\203\207\302!\207" [mpdel-browser--song-format mpdel-browser--includes-songs-p mpdel-browser--directory-format] 4 (#$ . 2844)]) #@68 Return a column for DIRECTORY containing its name. (fn DIRECTORY) (defalias 'mpdel-browser--directory-columns #[257 "\300\301\206\302\303\304#\302\211\211\211\211&\207" [vector propertize "" face mpdel-browser-directory-face] 8 (#$ . 3136)]) (byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\307\302\310\302\311%\210\300\307\302\312\302\313%\210\300\314\302\315\302\316%\210\300\314\302\317\302\320%\207" [cl-generic-define-method navigel-tablist-format-children nil ((directory libmpdel-directory) children &context (navigel-app mpdel)) #[514 "\300\"\207" [mpdel-browser--format] 5 "\n\n(fn DIRECTORY CHILDREN)"] ((_e (eql directories)) _c &context (navigel-app mpdel)) #[514 "\300\301\302\303E!\207" [vector "Directories" 60 t] 6 "\n\n(fn E C)"] navigel-tablist-format ((_e libmpdel-directory) &context (navigel-app mpdel)) #[257 "\207" [mpdel-browser--retrieving-format] 2 "\n\n(fn E)"] ((_e (eql directories)) &context (navigel-app mpdel)) #[257 "\207" [mpdel-browser--retrieving-format] 2 "\n\n(fn E)"] navigel-entity-to-columns ((directory libmpdel-directory) &context (navigel-app mpdel)) #[257 "\300\301!!\207" [mpdel-browser--directory-columns libmpdel-entity-name] 4 "\n\n(fn DIRECTORY)"] ((_e (eql directories)) &context (navigel-app mpdel)) #[257 "\300\301!\207" [vector "Music directory"] 3 "\n\n(fn E)"]] 6) #@69 Return the name of a browser buffer displaying ENTITY. (fn ENTITY) (defalias 'mpdel-browser--buffer-name #[257 "\301\302;\203 \2022\303!>\203/\304\303!>\204$\305\306\307D\"\210\310H\206+\311!\2022\312!\"\207" [cl-struct-libmpdel-directory-tags format "* %s *" type-of file-name-nondirectory signal wrong-type-argument libmpdel-directory 1 "" libmpdel-entity-name] 8 (#$ . 4499)]) (byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\307\302\310\302\311%\210\300\307\302\312\302\313%\210\300\314\302\315\302\316%\210\300\317\302\320\302\321%\210\300\322\302\323\302\324%\207" [cl-generic-define-method navigel-buffer-name nil ((_e (eql directories)) &context (navigel-app mpdel)) #[257 "\300\301!\207" [mpdel-browser--buffer-name directories] 3 "\n\n(fn E)"] ((entity libmpdel-directory) &context (navigel-app mpdel)) #[257 "\300!\207" [mpdel-browser--buffer-name] 3 "\n\n(fn ENTITY)"] navigel-entity-buffer ((_e (eql directories)) &context (navigel-app mpdel)) #[257 "\300\301!\207" [mpdel-browser--buffer-name directories] 3 "\n\n(fn E)"] ((entity libmpdel-directory) &context (navigel-app mpdel)) #[257 "\300!\207" [mpdel-browser--buffer-name] 3 "\n\n(fn ENTITY)"] navigel-children (entity callback &context (navigel-app mpdel) (major-mode mpdel-browser-mode)) #[514 "\300\301\302\"\"\207" [libmpdel-list make-closure #[257 "\300 !!\207" [V0 mpdel-browser-list-clean-up-function] 4 "\n\n(fn C)"]] 7 "\n\n(fn ENTITY CALLBACK)"] libmpdel-entity-name ((_e (eql empty-line))) #[257 "\300\207" [""] 2 "The empty line has an empty name.\n\n(fn E)"] navigel-open ((_e (eql empty-line)) _t &context (navigel-app mpdel)) #[514 "\300\207" [nil] 3 "\n\n(fn E T)"]] 6) #@87 An utility macro for defining methods associated with a search for THING. (fn THING) (defalias 'mpdel-browser--defsearch '(macro . #[257 "\300\301\302\"!\301\303\"\301\304\"\305!\306\307\310\311\312DDCF\313\314\315\311\312\nDD\316B\317\320\321\nDDC\315\322\323 \324BBB\325BBE\257E\207" [intern format "search-%s" "Search by %s" "%s: " symbol-name progn cl-defmethod libmpdel-entity-name _e eql navigel-method mpdel navigel-open (_t) let what read-from-minibuffer libmpdel-search-criteria-create :type (:what what) (nil)] 18 (#$ . 6208)])) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\301\302\310\302\311%\210\300\305\302\312\302\313%\210\300\301\302\314\302\315%\210\300\305\302\316\302\317%\210\300\301\302\320\302\321%\210\300\305\302\322\302\323%\210\300\301\302\324\302\325%\210\300\305\302\326\302\327%\210\300\301\302\330\302\331%\210\300\332\302\333\302\334%\210\300\335\302\336\302\337%\210\300\340\302\341\302\342%\210\300\343\302\344\302\345%\210\300\346\302\347\302\350%\210\300\351\302\352\302\353%\210\300\354\302\355\302\356%\210\300\354\302\357\302\360%\210\300\354\302\361\302\362%\210\300\354\302\363\302\364%\210\300\354\302\365\302\366%\210\300\367\302\370\302\371%\207" [cl-generic-define-method libmpdel-entity-name nil ((_e (eql search-album))) #[257 "\300\207" ["Search by album"] 2 "\n\n(fn E)"] navigel-open ((_e (eql search-album)) _t &context (navigel-app mpdel)) #[514 "\300\301!\302\303\304\305#\306\"\207" [read-from-minibuffer "Search by album: " navigel-open record libmpdel-search-criteria "album" nil] 8 "\n\n(fn E T)"] ((_e (eql search-artist))) #[257 "\300\207" ["Search by artist"] 2 "\n\n(fn E)"] ((_e (eql search-artist)) _t &context (navigel-app mpdel)) #[514 "\300\301!\302\303\304\305#\306\"\207" [read-from-minibuffer "Search by artist: " navigel-open record libmpdel-search-criteria "artist" nil] 8 "\n\n(fn E T)"] ((_e (eql search-title))) #[257 "\300\207" ["Search by title"] 2 "\n\n(fn E)"] ((_e (eql search-title)) _t &context (navigel-app mpdel)) #[514 "\300\301!\302\303\304\305#\306\"\207" [read-from-minibuffer "Search by title: " navigel-open record libmpdel-search-criteria "title" nil] 8 "\n\n(fn E T)"] ((_e (eql search-filter))) #[257 "\300\207" ["Search by filter"] 2 "\n\n(fn E)"] ((_e (eql search-filter)) _t &context (navigel-app mpdel)) #[514 "\300\301!\302\303\304\305#\306\"\207" [read-from-minibuffer "Search by filter: " navigel-open record libmpdel-search-criteria "filter" nil] 8 "\n\n(fn E T)"] ((path string)) #[257 "\207" [] 2 "\n\n(fn PATH)"] ((path string) target &context (navigel-app mpdel)) #[514 "\301\302\303\304\305#\")\207" [navigel-app mpdel navigel-open record libmpdel-directory nil] 7 "\n\n(fn PATH TARGET)"] ((_e (eql browser))) #[257 "\300\207" ["Browser"] 2 "The name of the top level browser entity.\n\n(fn E)"] libmpdel-list ((_e (eql browser)) callback) #[514 "\211!\207" [mpdel-browser-top-level-entries] 4 "Listing of the top level browser, passed to CALLBACK.\n\nThis listing is constructed using `mpdel-browser-top-level-entries'.\n\n(fn E CALLBACK)"] libmpdel-entity-parent ((_e (eql directories))) #[257 "\300\207" [browser] 2 "The new parent of directories is the browser.\n\n(fn E)"] navigel-buffer-name ((_e (eql browser)) &context (navigel-app mpdel)) #[257 "\302\303 #\207" [libmpdel-hostname libmpdel-port format "* MPDel - %s:%d *"] 5 "\n\n(fn E)"] navigel-entity-buffer ((_e (eql browser)) &context (navigel-app mpdel)) #[257 "\300\301!\207" [navigel-buffer-name browser] 3 "\n\n(fn E)"] navigel-tablist-format ((_e (eql browser)) &context (navigel-app mpdel)) #[257 "\300\301\302\303E!\207" [vector "MPDel Browser" 60 t] 5 "\n\n(fn E)"] navigel-entity-to-columns ((_e (eql browser)) &context (navigel-app mpdel)) #[257 "\300\301!\207" [vector "Top level"] 3 "\n\n(fn E)"] navigel-parent ((_e (eql artists)) &context (navigel-app mpdel)) #[257 "\300\207" [browser] 2 "\n\n(fn E)"] ((_e (eql albums)) &context (navigel-app mpdel)) #[257 "\300\207" [browser] 2 "\n\n(fn E)"] ((_e (eql directories)) &context (navigel-app mpdel)) #[257 "\300\207" [browser] 2 "\n\n(fn E)"] ((_e (eql stored-playlists)) &context (navigel-app mpdel)) #[257 "\300\207" [browser] 2 "\n\n(fn E)"] ((_e (eql current-playlist)) &context (navigel-app mpdel)) #[257 "\300\207" [browser] 2 "\n\n(fn E)"] navigel-children ((_e (eql directories)) callback &context (navigel-app mpdel)) #[514 "\300\301\302\303\"\"\207" [libmpdel-list directories make-closure #[257 "\300\301B!\207" [V0 browser] 4 "\n\n(fn CHILDREN)"]] 7 "\n\n(fn E CALLBACK)"]] 6) #@42 Open the top level MPDel browser buffer. (defalias 'mpdel-browser-open #[0 "\300\301!\207" [mpdel-core-open browser] 2 (#$ . 10788) nil]) (defvar mpdel-browser-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [mpdel-browser-mode-hook variable-documentation put "Hook run after entering MPDel Browser mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp mpdel-browser-mode-map definition-name mpdel-browser-mode] 4) (defvar mpdel-browser-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [mpdel-browser-mode-abbrev-table mpdel-browser-mode-map variable-documentation put purecopy "Keymap for `mpdel-browser-mode'." boundp mpdel-browser-mode-syntax-table definition-name mpdel-browser-mode (lambda (#1=#:def-tmp-var) (defvar mpdel-browser-mode-syntax-table #1#)) make-syntax-table "Syntax table for `mpdel-browser-mode'." (lambda (#1#) (defvar mpdel-browser-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `mpdel-browser-mode'." derived-mode-parent mpdel-tablist-mode] 5) #@263 Mode for browsing directories and their contents In addition to any hooks its parent mode `mpdel-tablist-mode' might have run, this mode runs the hook `mpdel-browser-mode-hook', as the final or penultimate step during initialization. \{mpdel-browser-mode-map} (defalias 'mpdel-browser-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 )\331\332!\207" [delay-mode-hooks major-mode mode-name mpdel-browser-mode-map mpdel-browser-mode-syntax-table mpdel-browser-mode-abbrev-table make-local-variable t mpdel-tablist-mode mpdel-browser-mode "MPDel Browser" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks mpdel-browser-mode-hook local-abbrev-table] 5 (#$ . 12185) nil]) (byte-code "\301\302\303\304\303\305%\210\301\302\303\306\303\307%\210\301\302\303\310\303\311%\210\301\302\303\312\303\313%\210\301\314\303\315\303\316%\210\301\317\303\320\303\321%\210\301\317\303\322\303\323%\210\324\325\326#\210\327\330!\207" [mpdel-core-map cl-generic-define-method navigel-entity-tablist-mode nil ((_e (eql browser)) &context (navigel-app mpdel)) #[257 "\300 \207" [mpdel-browser-mode] 2 "\n\n(fn E)"] ((_e (eql directories)) &context (navigel-app mpdel)) #[257 "\300 \207" [mpdel-browser-mode] 2 "\n\n(fn E)"] ((_e libmpdel-directory) &context (navigel-app mpdel)) #[257 "\300 \207" [mpdel-browser-mode] 2 "\n\n(fn E)"] ((_e (eql stored-playlists)) &context (navigel-app mpdel)) #[257 "\300 \207" [mpdel-browser-mode] 2 "\n\n(fn E)"] navigel-delete ((stored-playlists list) &context (navigel-app mpdel) (major-mode mpdel-browser-mode) &optional _callback) #[513 "\300!\207" [libmpdel-stored-playlists-delete] 4 "\n\n(fn STORED-PLAYLISTS &optional CALLBACK)"] navigel-parent-to-open (_e &context (major-mode mpdel-browser-mode)) #[257 "\301!\206\302C\207" [navigel-entity navigel-parent browser] 3 "Find parent of ENTITY when in a buffer with MAJOR-MODE `mpdel-browser-mode'.\n\n(fn E)"] (_e &context (major-mode mpdel-playlist-current-playlist-mode)) #[257 "\300\207" [(browser . current-playlist)] 2 "Find parent of ENTITY when in a buffer with MAJOR-MODE `mpdel-playlist-current-playlist-mode'.\n\n(fn E)"] define-key ":" mpdel-browser-open provide mpdel-browser] 6)