yarock.jl

Christopher Roy Bratusek <[email protected]>
Newsgroups gmane.comp.window-managers.sawfish
Message-ID <1674195.qyichN9Xor@ambassador>
I don't know if many use YaRock as their media-player, but I've written a 
simple module that let's Sawfish control YaRock (play/pause, volume).

In case you're interessted, check the attached file.

Regards,
Chris
yarock.jl (text/plain, 1.6 KB)
(define-structure yarock
  (export start-yarock
          stop-yarock
	  yarock-remote)

  (open rep
        rep.system
        rep.io.processes
        rep.io.timers
	rep.util.misc
        sawfish.wm.misc
        sawfish.wm.windows
        sawfish.wm.workspace)

  (define %yarock-proc nil)

  (define (start-yarock)
    "Start YaRock if not already running."
    (if (program-exists-p "YaRock")
        (progn
	  (when %yarock-proc (kill-process %yarock-proc))
          (setq %yarock-proc (make-process))
          (start-process %yarock-proc "YaRock"))
      (display-message (format nil "YaRock executable not found in PATH."))))

  (define (stop-yarock)
    "Stop YaRock, if running."
    (when %yarock-proc (kill-process %yarock-proc)))

  (define (yarock-remote action #!optional value)
    (case action
      ((play) (system "YaRock --play &"))
      ((play-pause) (system "YaRock --play-pause &"))
      ((pause) (system "YaRock --pause &"))
      ((stop) (system "YaRock --stop &"))
      ((prev) (system "YaRock --previous &"))
      ((next) (system "YaRock --next &"))
      ((volume) (system (format nil "YaRock --volume %s &") value))
      ((vol+) (system "YaRock --volume-up &"))
      ((vol-) (system "YaRock --voluem-down &"))
      ((seekto) (system (format nil "YaRock --seek-to %s &") value))
      ((seekby) (system (format nil "YaRock --seek-by %s &") value))
      ((append) (system (format nil "YaRock --append %s &") value))
      ((load) (system (format nil "YaRock --load %s &") value))
      ((nthtrack) (system (format nil "YaRock --play-track %s &") value))
      (t nil))))
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.