;ELC ;;; Compiled by heimdall@baldur on Fri Feb 1 18:34:54 2008 ;;; from file /home/heimdall/repos/emms/emms-player-mpg321-remote.el ;;; in Emacs version 23.0.60.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`emms-player-mpg321-remote.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312&\207" [require emms emms-player-simple custom-declare-group emms-player-mpg321-remote nil "*EMMS player using mpg321's remote mode." :group emms-player :prefix "emms-player-mpg321-remote"] 8) #@30 *The command name of mpg321. (custom-declare-variable 'emms-player-mpg321-remote-command '"mpg321" '(#$ . -877) :type 'string :group 'emms-player-mpg321-remote) #@91 *Extra arguments to pass to mpg321 when using remote mode For example: (list "-o" "alsa") (custom-declare-variable 'emms-player-mpg321-remote-parameters 'nil '(#$ . -1044) :type '(repeat string) :group 'emms-player-mpg321-remote) #@21 *A player for EMMS. (custom-declare-variable 'emms-player-mpg321-remote '(emms-player 'emms-player-mpg321-remote-start-playing 'emms-player-mpg321-remote-stop-playing 'emms-player-mpg321-remote-playable-p) '(#$ . -1280) :type '(cons symbol alist) :group 'emms-player-mpg321-remote) #@45 Initial args to pass to the mpg321 process. (defvar emms-player-mpg321-remote-initial-args (list "--skip-printing-frames=10" "-R" "-") (#$ . 1568)) #@46 The name of the mpg321 remote player process (defvar emms-player-mpg321-remote-process-name "emms-player-mpg321-remote-proc" (#$ . 1722)) #@56 Number of stop messages to ignore, due to user action. (defvar emms-player-mpg321-remote-ignore-stop 0 (#$ . 1866)) (defalias 'emms-player-mpg321-remote-add '(macro . #[(cmd func) "\302\303 F\207" [cmd func emms-player-set 'emms-player-mpg321-remote] 4])) (byte-code "\300\301\302\303\304\305\"#\210\300\301\306\307#\210\300\301\310\307#\210\300\301\311\312#\207" [emms-player-set emms-player-mpg321-remote regex emms-player-simple-regexp "mp3" "mp2" pause emms-player-mpg321-remote-pause resume seek emms-player-mpg321-remote-seek] 6) #@53 Start a new remote process, and return the process. (defalias 'emms-player-mpg321-remote-start-process #[nil "\305\306\307 \310\n \"%\311\f\312\"\210\313\f\314\"\210\f)\207" [emms-player-mpg321-remote-process-name emms-player-mpg321-remote-command emms-player-mpg321-remote-initial-args emms-player-mpg321-remote-parameters process apply start-process nil append set-process-sentinel emms-player-mpg321-remote-sentinel set-process-filter emms-player-mpg321-remote-filter] 8 (#$ . 2409)]) #@60 Stop the currently playing process, if indeed there is one (defalias 'emms-player-mpg321-remote-stop #[nil "\301 \211\205\302!\210\303!)\207" [process emms-player-mpg321-remote-process kill-process delete-process] 3 (#$ . 2905)]) #@42 Return the remote process, if it exists. (defalias 'emms-player-mpg321-remote-process #[nil "\301!\207" [emms-player-mpg321-remote-process-name get-process] 2 (#$ . 3146)]) #@51 True if the remote process exists and is running. (defalias 'emms-player-mpg321-remote-running-p #[nil "\301 \211\205\f\302!\303=)\207" [proc emms-player-mpg321-remote-process process-status run] 3 (#$ . 3326)]) #@45 Sentinel for determining the end of process (defalias 'emms-player-mpg321-remote-sentinel #[(proc str) "\302!\303=\204\302!\304=\205\305\306\307!\207" [proc emms-player-mpg321-remote-ignore-stop process-status exit signal 0 message "Remote process died!"] 2 (#$ . 3547)]) #@60 Send TEXT to the mpg321 remote process, and add a newline. (defalias 'emms-player-mpg321-remote-send #[(text) "\302\303 \204\n\304 \210\305 \306 \307P\")\207" [proc text nil emms-player-mpg321-remote-running-p emms-player-mpg321-remote-start-process emms-player-mpg321-remote-process process-send-string "\n"] 4 (#$ . 3832)]) (defalias 'emms-player-mpg321-remote-filter #[(proc str) "\306\307\310#\311\211\311 \311\211\205O @\306 !\211@\211\312\230\2036\n\211A@)\313\230\2036\314 \210\202G\f\315\230\203G\316\317\320\321\322\n8!!\"\210 A\211\204\311.\207" [str data-lines data line cmd --dolist-tail-- split-string "\n" t nil "@P" "0" emms-player-mpg321-remote-notify-emms "@F" run-hook-with-args emms-player-time-set-functions truncate string-to-number 3 x] 7]) #@113 Start playing a song by telling the remote process to play it. If the remote process is not running, launch it. (defalias 'emms-player-mpg321-remote-start-playing #[(track) "\301 \204\302 \210\303!\207" [track emms-player-mpg321-remote-running-p emms-player-mpg321-remote-start-process emms-player-mpg321-remote-play-track] 2 (#$ . 4627)]) #@155 Tell emms that the current song has finished. If USER-ACTION, set `emms-player-mpg321-remote-ignore-stop' so that we ignore the next message from mpg321. (defalias 'emms-player-mpg321-remote-notify-emms #[(&optional user-action) "\203 \303\nT\304 )\207\305\n!\204\nS\211\207\304 \207" [user-action emms-player-ignore-stop emms-player-mpg321-remote-ignore-stop t emms-player-stopped zerop] 2 (#$ . 4977)]) #@32 Stop the current song playing. (defalias 'emms-player-mpg321-remote-stop-playing #[nil "\300\301!\210\302\303!\207" [emms-player-mpg321-remote-notify-emms t emms-player-mpg321-remote-send "stop"] 2 (#$ . 5395)]) #@52 Send a play command to the remote, based on TRACK. (defalias 'emms-player-mpg321-remote-play-track #[(track) "\301\302\303\304\"P!\210\305\306!\207" [track emms-player-mpg321-remote-send "load " emms-track-get name emms-player-started emms-player-mpg321-remote] 5 (#$ . 5613)]) (defalias 'emms-player-mpg321-remote-playable-p #[(track) "\301!\207" [track emms-player-mpg321-playable-p] 2]) #@19 Pause the player. (defalias 'emms-player-mpg321-remote-pause #[nil "\300\301!\207" [emms-player-mpg321-remote-send "pause"] 2 (#$ . 6011)]) #@20 Resume the player. (defalias 'emms-player-mpg321-remote-resume #[nil "\300\301!\207" [emms-player-mpg321-remote-send "pause"] 2 (#$ . 6157)]) #@39 Seek forward or backward in the file. (defalias 'emms-player-mpg321-remote-seek #[(seconds) "\302\303_!\304 !\305=\204\306 P\307\310 P!)\207" [seconds frame-string number-to-string 35 string-to-char 45 "+" emms-player-mpg321-remote-send "jump "] 3 (#$ . 6305)]) (provide 'emms-player-mpg321-remote)