diff --git a/src/beat_link_trigger/triggers.clj b/src/beat_link_trigger/triggers.clj
index bccb08d..5365299 100644
--- a/src/beat_link_trigger/triggers.clj
+++ b/src/beat_link_trigger/triggers.clj
@@ -1529,8 +1529,9 @@
(defn- actively-send-status
"Try to start sending status update packets if we are online and are
- using a valid player number. If we are not using a valid player
- number, tell the user why this can't be done.
+ using a valid player number (and are talking to actual CDJs, not an
+ Opus Quad). If we are not using a valid player number, tell the user
+ why this can't be done.
When we are sending status update packets, we are also able to
actively request metadata of all types from the dbserver instances
@@ -1538,28 +1539,35 @@
based information that Crate Digger can't obtain."
[]
(when (util/online?)
- (if (> (.getDeviceNumber virtual-cdj) 4)
- (let [players (count (util/visible-player-numbers))
- options (to-array ["Cancel" "Go Offline"])
- message (str "Beat Link Trigger is using device number " (.getDeviceNumber virtual-cdj)
- ".\nTo act like a real player, it needs to use number 1, 2, 3, or 4.\n\n"
- (if (< players 4)
- (str "Since there are fewer than 4 CDJs on the network, all you need to do is\n"
- "go offline and then back online, and it will be able to use one of the\n"
- "unused device numbers, which will work great.\n\n")
-
- (str "Please go offline, turn off one of the four CDJs currently on the network,\n"
- "then go back online, which will let us use that player's device number.\n\n")))
- choice (seesaw/invoke-now
- (javax.swing.JOptionPane/showOptionDialog
- nil message "Need to Change Device Number"
- javax.swing.JOptionPane/YES_NO_OPTION javax.swing.JOptionPane/ERROR_MESSAGE nil
- options (aget options (dec (count options)))))]
- (if (zero? choice)
- (.setSelected ^JMenuItem (seesaw/select @trigger-frame [:#send-status]) false) ; Cancel.
- (.setSelected (online-menu-item) false))) ; Go offline.
- (do (.setSendingStatus virtual-cdj true) ; We can do it.
- (.setPassive metadata-finder false)))))
+ (if (.inOpusQuadCompatibilityMode virtual-cdj)
+ (do
+ (seesaw/alert @trigger-frame (str "You requested Beat Link Trigger to use a real player number.
"
+ "Features which require sending CDJ status packets, like tempo control,
"
+ "cannot be used with the Opus Quad. This request is being canceled.")
+ :title "Cannot Pose as CDJ with Opus Quad" :type :error)
+ (.setSelected ^JMenuItem (seesaw/select @trigger-frame [:#send-status]) false))
+ (if (> (.getDeviceNumber virtual-cdj) 4)
+ (let [players (count (util/visible-player-numbers))
+ options (to-array ["Cancel" "Go Offline"])
+ message (str "Beat Link Trigger is using device number " (.getDeviceNumber virtual-cdj)
+ ".\nTo act like a real player, it needs to use number 1, 2, 3, or 4.\n\n"
+ (if (< players 4)
+ (str "Since there are fewer than 4 CDJs on the network, all you need to do is\n"
+ "go offline and then back online, and it will be able to use one of the\n"
+ "unused device numbers, which will work great.\n\n")
+
+ (str "Please go offline, turn off one of the four CDJs currently on the network,\n"
+ "then go back online, which will let us use that player's device number.\n\n")))
+ choice (seesaw/invoke-now
+ (javax.swing.JOptionPane/showOptionDialog
+ nil message "Need to Change Device Number"
+ javax.swing.JOptionPane/YES_NO_OPTION javax.swing.JOptionPane/ERROR_MESSAGE nil
+ options (aget options (dec (count options)))))]
+ (if (zero? choice)
+ (.setSelected ^JMenuItem (seesaw/select @trigger-frame [:#send-status]) false) ; Cancel.
+ (.setSelected (online-menu-item) false))) ; Go offline.
+ (do (.setSendingStatus virtual-cdj true) ; We can do it.
+ (.setPassive metadata-finder false))))))
(declare go-online)