Skip to content

Commit

Permalink
remove port_handler code which has now been extracted to port-serial
Browse files Browse the repository at this point in the history
  • Loading branch information
samaaron committed Mar 15, 2011
1 parent 0b23759 commit 10d6673
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 101 deletions.
3 changes: 3 additions & 0 deletions .gitignore
@@ -1,3 +1,6 @@
.cake
*.jar
pom.xml
lib/
\.\#*
\#*#
Expand Down
7 changes: 3 additions & 4 deletions project.clj
@@ -1,7 +1,6 @@
(defproject org.clojars.samaaron/monome-serial "0.1.3"
(defproject monome-serial "0.1.6"
:description "An interface to the monome (http://monome.org)"
:dependencies [[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]]
:dev-dependencies [[native-deps "1.0.5"]]
:native-dependencies [[org.clojars.samaaron/rxtx "2.2.0"]])
[org.clojure/clojure-contrib "1.2.0"]
[serial-port "1.0.7"]])

27 changes: 20 additions & 7 deletions src/monome_serial/core.clj
@@ -1,5 +1,5 @@
(ns monome-serial.core
(:require [monome-serial.port-handler :as port-handler]
(:require [serial-port :as port]
[monome-serial.animations :as animations])
(:import (java.util.concurrent LinkedBlockingQueue)))

Expand All @@ -8,17 +8,30 @@
(defn connect
"Connect to a monome with a given port identifier"
[port-name]
(let [port (port-handler/open-port port-name)
send-fn (fn [bytes] (port-handler/write port bytes))
close (fn [] (port-handler/close-port port))
(let [port (port/open port-name)
send-fn (fn [bytes] (port/write port bytes))
close (fn [] (port/close port))
handlers (ref {})
open? (ref true)
queue (LinkedBlockingQueue.)
worker (Thread. #(loop [bytes (.take queue)]
(apply send-fn [bytes])
(recur (.take queue))))
_ (port-handler/listen port handlers)
monome (Monome. send-fn close handlers open? queue worker)]
monome (Monome. send-fn close handlers open? queue worker)
parse-bytes (fn [[action-byte xy-byte]]
(let [action (cond
(= 0 action-byte) :press
(= 16 action-byte) :release
:else :unknown)
x (bit-shift-right xy-byte 4)
y (bit-shift-right ^Integer (.byteValue ^Integer (bit-shift-left xy-byte 4)) 4)
grouped-handlers @handlers
all-handlers (flatten (for [[_ group] grouped-handlers] (for [[_ handler] group] handler)))]

(doseq [handler all-handlers]
(handler action x y))))]

(port/on-n-bytes port 2 parse-bytes)
(.start worker)
(animations/intromation monome)

Expand All @@ -31,7 +44,7 @@

;;TODO fixme
(defn disconnect
"Close the monome down. Currently crashes the JVM due to a bug in the port-handler code"
"Close the monome down."
[monome]
(dosync
((:close monome))
Expand Down
90 changes: 0 additions & 90 deletions src/monome_serial/port_handler.clj

This file was deleted.

0 comments on commit 10d6673

Please sign in to comment.