aboutsummaryrefslogtreecommitdiff
path: root/emms-player-gstreamer.el
diff options
context:
space:
mode:
authorforcer <forcer>2005-09-12 11:50:00 +0000
committerforcer <mwolson@gnu.org>2005-09-12 11:50:00 +0000
commitc1308f0e1322af1cc1677b8487271700b2ae91c8 (patch)
tree9448425e759a61ce233c32620b7ff21102770308 /emms-player-gstreamer.el
parent649edac3b50b7eed9a7ca8f4f85a8783a8e84bbc (diff)
Rename emms-gstreamer.el to emms-player-gstreamer.el
darcs-hash:20050912115010-2189f-ca853d135f22c7c55b55f268a87e8e8accaaac26.gz
Diffstat (limited to 'emms-player-gstreamer.el')
-rw-r--r--emms-player-gstreamer.el58
1 files changed, 58 insertions, 0 deletions
diff --git a/emms-player-gstreamer.el b/emms-player-gstreamer.el
new file mode 100644
index 0000000..5f3aa88
--- /dev/null
+++ b/emms-player-gstreamer.el
@@ -0,0 +1,58 @@
+;; emms-gstreamer.el --- EMMS Gstreamer interaction
+
+;; License : GPL v2.1 or later
+
+;; currently outside other files, as it's very preliminary support
+
+;; The wrapper concept is easier to set up than a generic gstreamer
+;; support, but in the long term, it's probably not a good idea.
+
+;; Installation instructions :
+
+;; 1. Put (require 'emms-gstreamer) in your ~/.emacs or whatever you
+;; use to configure EMMS.
+
+;; 2. Put the wrappers in your `exec-path' :
+;; (add-to-list 'exec-path "/path/to/wrappers") or the other way,
+;; by moving them in an already present directory.
+
+(require 'emms-player-simple)
+
+(defvar emms-gst-sink "alsasink"
+ "The audio output sink to use")
+
+(defvar emms-gstreamer-paused-p nil)
+
+(define-emms-simple-player gst-mp3 '(file) "\\.[mM][pP][23]$" "gst-mp3-wrapper")
+(define-emms-simple-player gst-ogg '(file) (regexp-opt '(".ogg" ".OGG")) "gst-ogg-wrapper")
+(define-emms-simple-player gst-flac '(file) (regexp-opt '(".FLAC" ".flac" )) "gst-flac-wrapper")
+(define-emms-simple-player gst-mod '(file) (regexp-opt '(".xm" ".it" ".ft" ".mod")) "gst-mod-wrapper")
+
+(add-to-list 'emms-player-list 'emms-player-gst-mp3)
+(add-to-list 'emms-player-list 'emms-player-gst-ogg)
+(add-to-list 'emms-player-list 'emms-player-gst-flac)
+(add-to-list 'emms-player-list 'emms-player-gst-mod)
+
+(setq emms-player-gst-mp3-parameters `(,emms-gst-sink))
+(setq emms-player-gst-ogg-parameters `(,emms-gst-sink))
+(setq emms-player-gst-flac-parameters `(,emms-gst-sink))
+(setq emms-player-gst-mod-parameters `(,emms-gst-sink))
+
+
+(defun emms-gstreamer-play/pause ()
+ (interactive)
+ (if emms-gstreamer-paused-p
+ (emms-gstreamer-resume)
+ (emms-gstreamer-pause)))
+
+(defun emms-gstreamer-pause ()
+ (interactive)
+ (signal-process (shell-command-to-string "pgrep gst-launch") 'SIGSTOP)
+ (setq emms-gstreamer-paused-p t))
+
+(defun emms-gstreamer-resume ()
+ (interactive)
+ (signal-process (shell-command-to-string "pgrep gst-launch") 'SIGCONT)
+ (setq emms-gstreamer-paused-p nil))
+
+(provide 'emms-gstreamer)