 
 (def ^:private window (ssc/frame :title "Neurolyzer Streamer" :width 500))
 
-(def ^:private nl-button-texts {:disconnected "Connect"
-                                :connected "Disconnect"})
-
-(def ^:private vlc-button-texts {:disconnected "Start control VLC"
-                                 :connected "Stop control VLC"})
-
-(def ^:private label-texts {:disconnected "Not Connected"
-                            :connected "Connected"})
-
-(def ^:private combo-enabled {:disconnected true
-                              :connected false})
+(def ^:private status-config
+  {:disconnected {:connect-button-text "Connect"
+                  :status-label-text "Not Connected"
+                  :device-combo-enabled? true}
+   :connected {:connect-button-text "Disconnect"
+               :status-label-text "Connected"
+               :device-combo-enabled? false}})
 
 (declare update-metric-bars!)
 
-(def ^:private backend->consume-fn
-  {"Neurolyzer" (fn [stat]
+(def ^:private backend->properties
+  {"Neurolyzer"
+   {:nl? true
+    :vlc? false
+    :consume-fn (fn [_ stat]
                   (update-metric-bars! stat)
-                  (u/send-stat-to-neurolyzer stat))
-   "VLC" (fn [rules stat]
-           (update-metric-bars! stat)
-           (vlc/send-play-command rules stat))})
+                  (u/send-stat-to-neurolyzer stat))}
+   "VLC"
+   {:nl? false
+    :vlc? true
+    :consume-fn (fn [rules stat]
+                  (update-metric-bars! stat)
+                  (vlc/send-play-command rules stat))}
+   "NL + VLC"
+   {:nl? true
+    :vlc? true
+    :consume-fn (fn [rules stat]
+                  (update-metric-bars! stat)
+                  (vlc/send-play-command rules stat)
+                  (u/send-stat-to-neurolyzer stat))}})
 
 (def ^:private stat-process-fns
   {"Attention" (fn [stat] (get stat :attention 0))

    (when (seq to-add)
      #_(println "to-add: " to-add)
      (doall (map #(ssc/add! vlc-panel (apply make-playlist-item %)) to-add)))
    (vlc/set-playlist! new-plist-items)))

(defn- make-vlc-refresh-button []
  (ssc/button :id :refresh-vlc

  (let [items-ids (vals (:items (vlc/get-playlist)))]
    (filter map? (map #(get-vlc-item-rule %) items-ids))))

(defn- handle-control-metric-selection [evt]
  (let [metric (ssc/config (.getSource evt) :text)
        help-label (ssc/select window [:#metric-help-msg])]
