(nblank (floor (- width exact))))
(format "%s%s%s"
(make-string nfull ?█)
- (cond ((= width (+ nfull nblank)) "")
- ((< frac 0.0625) " ")
- ((< frac 0.1875) "▏")
- ((< frac 0.3125) "▎")
- ((< frac 0.4375) "▍")
- ((< frac 0.5625) "▌")
- ((< frac 0.6875) "▋")
- ((< frac 0.8125) "▊")
- ((< frac 0.9375) "▉")
- (t "█"))
+ (if (= width (+ nfull nblank))
+ ""
+ (string (aref " ▏▎▍▌▋▊▉█" (floor (+ frac 0.0625) 0.125))))
(make-string nblank ? ))))
(defun squeeze-mixer-make-bar (vol width)
playerindex playerid uuid ip name model isplayer displaytype canpoweroff connected power volume)
(defun squeeze-string-plistify (string start end)
+ (unless end
+ (setq end (length string)))
(save-match-data
(let (result)
(loop
(when (> mend end)
(return))
(push (intern (format ":%s" (substring string (match-beginning 1) (match-end 1)))) result)
- (push (url-unhex-string (substring string (match-beginning 2) (match-end 2))) result)
+ (push (decode-coding-string
+ (url-unhex-string (substring string (match-beginning 2) (match-end 2)))
+ 'utf-8)
+ result)
(setq start mend))
(return)))
(nreverse result))))
"favorites"
))))
-(defun squeeze ()
+(defun squeeze-read-server-parameters (address port)
+ (let ((host (read-string "Host: " nil nil address))
+ (port (read-number "Port: " port)))
+ (cons host port)))
+
+(defun squeeze (&optional address port)
(interactive)
- (let ((buffer (make-comint-in-buffer "squeeze" nil
- (cons squeeze-server-address
- squeeze-server-port))))
+ (unless address (setq address squeeze-server-address))
+ (unless port (setq port squeeze-server-port))
+ (when current-prefix-arg
+ (let ((parameters (squeeze-read-server-parameters address port)))
+ (setq address (car parameters)
+ port (cdr parameters))))
+ (let ((buffer (make-comint-in-buffer "squeeze" nil (cons address port))))
(switch-to-buffer buffer)
(squeeze-mode)))
-(defun squeeze-control ()
+(defun squeeze-control (&optional address port)
(interactive)
- (squeeze)
+ (unless address (setq address squeeze-server-address))
+ (unless port (setq port squeeze-server-port))
+ (when current-prefix-arg
+ (let ((parameters (squeeze-read-server-parameters address port)))
+ (setq address (car parameters)
+ port (cdr parameters))))
+ (let ((current-prefix-arg nil))
+ (squeeze address port))
(let ((buffer (get-buffer-create "*squeeze-control*")))
(switch-to-buffer buffer)
(squeeze-control-listen)
(squeeze-control-refresh)
(squeeze-control-display-players)))
+
+(provide 'squeeze)