correctly create Tracks, not Busses
[ardour.git] / libs / surfaces / tranzport / interface.cc
index a731be2ddf4104f3ebc50a8c4ad15572dfe70178..514cfbe4fb1253a8e1585cb71b1fc26e941eb887 100644 (file)
@@ -1,34 +1,67 @@
-#include <ardour/control_protocol.h>
+/*
+ *   Copyright (C) 2006 Paul Davis
+ *   Copyright (C) 2007 Michael Taht
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *   */
 
+#include "control_protocol/control_protocol.h"
 #include "tranzport_control_protocol.h"
 
 using namespace ARDOUR;
 
-ControlProtocol*
+static ControlProtocol*
 new_tranzport_protocol (ControlProtocolDescriptor* descriptor, Session* s)
 {
-       return new TranzportControlProtocol (*s);
+       TranzportControlProtocol* tcp = new TranzportControlProtocol (*s);
+
+       if (tcp->set_active (true)) {
+               delete tcp;
+               return 0;
+       }
+
+       return tcp;
+
 }
 
-void
+static void
 delete_tranzport_protocol (ControlProtocolDescriptor* descriptor, ControlProtocol* cp)
 {
        delete cp;
 }
 
+static bool
+probe_tranzport_protocol (ControlProtocolDescriptor* descriptor)
+{
+       return TranzportControlProtocol::probe();
+}
+
 static ControlProtocolDescriptor tranzport_descriptor = {
        name : "Tranzport",
+       id : "uri://ardour.org/surfaces/tranzport:0",
        ptr : 0,
        module : 0,
+       mandatory : 0,
+       supports_feedback : false,
+       probe : probe_tranzport_protocol,
        initialize : new_tranzport_protocol,
        destroy : delete_tranzport_protocol
 };
-       
 
-extern "C" {
-ControlProtocolDescriptor* 
-protocol_descriptor () {
-       return &tranzport_descriptor;
-}
-}
+
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &tranzport_descriptor; }
+