fordon_greeman / voidfiles

Branch: 2079ec5
Switch branches/tags
main
theidioticdev add emacs 2079ec5 22h ago
81 lines · 2.5 KB Raw Blame History
1 ;;; emms-player-mplayer.el --- mplayer support for EMMS -*- lexical-binding: t; -*-
2
3 ;; Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
4
5 ;; Authors: William Xu <william.xwl@gmail.com>
6 ;; Jorgen Schaefer <forcer@forcix.cx>
7
8 ;; This file is part of EMMS.
9
10 ;; EMMS is free software; you can redistribute it and/or
11 ;; modify it under the terms of the GNU General Public License
12 ;; as published by the Free Software Foundation; either version 3
13 ;; of the License, or (at your option) any later version.
14
15 ;; EMMS is distributed in the hope that it will be useful,
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ;; GNU General Public License for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with EMMS; if not, write to the Free Software Foundation,
22 ;; Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
23
24 ;;; Commentary:
25
26 ;; This provides a player that uses mplayer. It supports pause and
27 ;; seeking. For loading subtitles automatically, try adding
28 ;; "sub-fuzziness=1" to your `~/.mplayer/config', see mplayer manual for
29 ;; more.
30
31 ;;; Code:
32
33 (require 'emms-compat)
34 (require 'emms-player-simple)
35
36 (define-emms-simple-player mplayer '(file url)
37 (concat "\\`\\(http[s]?\\|mms\\)://\\|"
38 (apply #'emms-player-simple-regexp
39 emms-player-base-format-list))
40 "mplayer" "-slave" "-quiet" "-really-quiet")
41
42 (define-emms-simple-player mplayer-playlist '(streamlist)
43 "\\`http[s]?://"
44 "mplayer" "-slave" "-quiet" "-really-quiet" "-playlist")
45
46 (emms-player-set emms-player-mplayer
47 'pause
48 'emms-player-mplayer-pause)
49
50 ;;; Pause is also resume for mplayer
51 (emms-player-set emms-player-mplayer
52 'resume
53 nil)
54
55 (emms-player-set emms-player-mplayer
56 'seek
57 'emms-player-mplayer-seek)
58
59 (emms-player-set emms-player-mplayer
60 'seek-to
61 'emms-player-mplayer-seek-to)
62
63 (defun emms-player-mplayer-pause ()
64 "Depends on mplayer's -slave mode."
65 (process-send-string
66 emms-player-simple-process-name "pause\n"))
67
68 (defun emms-player-mplayer-seek (sec)
69 "Depends on mplayer's -slave mode."
70 (process-send-string
71 emms-player-simple-process-name
72 (format "seek %d\n" sec)))
73
74 (defun emms-player-mplayer-seek-to (sec)
75 "Depends on mplayer's -slave mode."
76 (process-send-string
77 emms-player-simple-process-name
78 (format "seek %d 2\n" sec)))
79
80 (provide 'emms-player-mplayer)
81 ;;; emms-player-mplayer.el ends here