aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emms-player-gstreamer.el73
1 files changed, 39 insertions, 34 deletions
diff --git a/emms-player-gstreamer.el b/emms-player-gstreamer.el
index 881831f..e3cd782 100644
--- a/emms-player-gstreamer.el
+++ b/emms-player-gstreamer.el
@@ -1,58 +1,63 @@
;; emms-gstreamer.el --- EMMS Gstreamer interaction
-;; License : GPL v2.1 or later
-
-;; currently outside other files, as it's very preliminary support
+;; Copyright (C) 2005 Lucas Bonnet
+
+;; Author: Lucas Bonnet <lucas@rincevent.net>
+;; Keywords: emms, mp3, ogg, multimedia
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+;;
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+;; Boston, MA 02110-1301 USA
+
+;;; Commentary:
+
+;; Very basic 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.
+;; 1. Put (require 'emms-player-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.
+;; (add-to-list 'exec-path "/path/to/wrapper") or the other way,
+;; by moving it to an already known directory.
(require 'emms-player-simple)
-(defvar emms-gst-sink "alsasink"
+(defvar emms-player-gstreamer-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")
+(define-emms-simple-player gstreamer '(file)
+ (regexp-opt '(".mp3" ".ogg" ".mod" ".flac" ".xm" ".it" ".ft"
+ ".MP3" ".OGG" ".MOD" ".FLAC" ".XM" ".IT" ".FT"))
+ "gst-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-gstreamer-parameters (list emms-player-gstreamer-sink))
-(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))
+(emms-player-set emms-player-gstreamer 'pause 'emms-player-gstreamer-pause)
+(emms-player-set emms-player-gstreamer 'resume 'emms-player-gstreamer-resume)
-
-(defun emms-gstreamer-play/pause ()
+(defun emms-player-gstreamer-pause ()
(interactive)
- (if emms-gstreamer-paused-p
- (emms-gstreamer-resume)
- (emms-gstreamer-pause)))
+ (signal-process (get-process emms-player-simple-process-name) 'SIGSTOP))
-(defun emms-gstreamer-pause ()
+(defun emms-player-gstreamer-resume ()
(interactive)
- (signal-process (shell-command-to-string "pgrep gst-launch") 'SIGSTOP)
- (setq emms-gstreamer-paused-p t))
+ (signal-process (get-process emms-player-simple-process-name) 'SIGCONT))
-(defun emms-gstreamer-resume ()
- (interactive)
- (signal-process (shell-command-to-string "pgrep gst-launch") 'SIGCONT)
- (setq emms-gstreamer-paused-p nil))
(provide 'emms-player-gstreamer)