summaryrefslogtreecommitdiff
path: root/.config/emacs/bd-emms.el
blob: cf39f94aa9684464d643041092204846b003fb52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
;; -*- lexical-binding: t; -*-

(defun emms-open-playlist-buffer ()
  "Opens the current playlist in the
side window."
  (interactive)
  ;; if playlist open, open playlist view. Else, if browser open, open browser view. Else, print failure
  (cond ((match-buffer-name "*Playlist*")
         (display-buffer-in-side-window (get-buffer "*Playlist*") '((side . right)))
         (select-window (get-buffer-window "*Playlist*")))
        ((match-buffer-name "Browsing by: artist")
         (display-buffer-in-side-window (get-buffer "Browsing by: artist") '((side . right)))
         (select-window (get-buffer-window "Browsing by: artist")))
        (t (message "No EMMS buffers open!"))))

(defun emms-quickstart ()
  "Queues a shuffled playlist and starts
playback."
  (interactive)
  (emms-stop)
  (when (bufferp emms-playlist-buffer-name)
    (kill-buffer emms-playlist-buffer-name))
  (emms-play-directory-tree (expand-file-name "~/Personal/mpd/music/"))
  (emms-shuffle)
  (emms-next))

(use-package emms
  ;; need to load immediately for mode line
  :bind (("C-z C-m" . 'emms-open-playlist-buffer))
  :config
  (emms-all)
  (add-to-list 'emms-info-functions 'emms-info-functions 'emms-info-mpd)
  (add-to-list 'emms-player-list 'emms-player-mpd)
  ;; refresh database
  (emms-player-mpd-update-all-reset-cache)
  :custom
  ;; make sure mpd is configured similarly
  (emms-player-mpd-server-name "localhost")
  (emms-player-mod-server-port "6600")
  ;; set dir and volume keys
  (emms-player-mpd-music-directory "/home/bdunahu/Personal/mpd/music/")
  (emms-source-file-default-directory "/home/bdunahu/Personal/mpd/playlists/")
  (emms-volume-change-function 'emms-volume-mpd-change)
  ;; misc
  (emms-mode-line-format "%s ")
  (emms-playlist-buffer-name "*Playlist*"))