Browse Source

*** empty log message ***

rlweaver 24 years ago
parent
commit
ddc3b433d4

+ 48 - 25
direct/src/directdevices/DirectDeviceManager.py

@@ -1,21 +1,28 @@
 """ Class used to create and control vrpn devices """
-from PandaObject import *
-from DirectGeometry import CLAMP
+
+from DirectObject import *
+from PandaModules import *
 
 ANALOG_MIN = -0.95
 ANALOG_MAX = 0.95
 ANALOG_RANGE = ANALOG_MAX - ANALOG_MIN
 ANALOG_DEADBAND = 0.075
 
-class DirectDeviceManager(VrpnClient, PandaObject):
+try:
+    myBase = base
+except:
+    myBase = simbase
+
+class DirectDeviceManager(VrpnClient, DirectObject):
     def __init__(self, server = None):
+
         # Determine which server to use
         if server != None:
             # One give as constructor argument
             self.server = server
         else:
             # Check config file, if that fails, use default
-            self.server = base.config.GetString('vrpn-server', 'spacedyne')
+            self.server = myBase.config.GetString('vrpn-server', 'spacedyne')
         
         # Create a vrpn client
         VrpnClient.__init__(self, self.server)
@@ -35,7 +42,7 @@ class DirectDeviceManager(VrpnClient, PandaObject):
     def createTimecodeReader(self, device):
         return DirectTimecodeReader(self, device)
 
-class DirectButtons(ButtonNode, PandaObject):
+class DirectButtons(ButtonNode, DirectObject):
     buttonCount = 0
     def __init__(self, vrpnClient, device):
         # Keep track of number of buttons created
@@ -45,7 +52,7 @@ class DirectButtons(ButtonNode, PandaObject):
         # Create a new button node for the given device
         ButtonNode.__init__(self, vrpnClient, device)
         # Attach node to data graph
-        self.nodePath = base.dataRoot.attachNewNode(self)
+        self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     def __getitem__(self, index):
         if (index < 0) or (index > self.getNumButtons()):
@@ -56,10 +63,10 @@ class DirectButtons(ButtonNode, PandaObject):
         return self.getNumButtons()
     
     def enable(self):
-        self.nodePath.reparentTo(base.dataRoot)
+        self.nodePath.reparentTo(myBase.dataRoot)
     
     def disable(self):
-        self.nodePath.reparentTo(base.dataUnused)
+        self.nodePath.reparentTo(myBase.dataUnused)
     
     def getName(self):
         return self.name
@@ -73,7 +80,7 @@ class DirectButtons(ButtonNode, PandaObject):
             str = str + '%d' % val + ' '
         return str
 
-class DirectAnalogs(AnalogNode, PandaObject):
+class DirectAnalogs(AnalogNode, DirectObject):
     analogCount = 0
     def __init__(self, vrpnClient, device):
         # Keep track of number of analogs created
@@ -83,7 +90,7 @@ class DirectAnalogs(AnalogNode, PandaObject):
         # Create a new analog node for the given device
         AnalogNode.__init__(self, vrpnClient, device)
         # Attach node to data graph
-        self.nodePath = base.dataRoot.attachNewNode(self)
+        self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     def __getitem__(self, index):
         if (index < 0) or (index > self.getNumControls()):
@@ -94,10 +101,10 @@ class DirectAnalogs(AnalogNode, PandaObject):
         return self.getNumControls()
     
     def enable(self):
-        self.nodePath.reparentTo(base.dataRoot)
+        self.nodePath.reparentTo(myBase.dataRoot)
     
     def disable(self):
-        self.nodePath.reparentTo(base.dataUnused)
+        self.nodePath.reparentTo(myBase.dataUnused)
     
     def normalize(self, val, minVal = -1, maxVal = 1):
         # First record sign
@@ -108,7 +115,8 @@ class DirectAnalogs(AnalogNode, PandaObject):
         # Zero out values in deadband
         val = sign * max(abs(val) - ANALOG_DEADBAND, 0.0)
         # Now clamp value between minVal and maxVal
-        val = CLAMP(val, ANALOG_MIN, ANALOG_MAX)
+        val = min( max( val, ANALOG_MIN ), ANALOG_MAX )
+#        val = CLAMP(val, ANALOG_MIN, ANALOG_MAX)
         return (((maxVal - minVal) * ((val - ANALOG_MIN) / ANALOG_RANGE))
                 + minVal)
     
@@ -134,7 +142,7 @@ class DirectAnalogs(AnalogNode, PandaObject):
             str = str + '%.3f' % val + ' '
         return str
 
-class DirectTracker(TrackerNode, PandaObject):
+class DirectTracker(TrackerNode, DirectObject):
     trackerCount = 0
     def __init__(self, vrpnClient, device):
         # Keep track of number of trackers created
@@ -144,13 +152,13 @@ class DirectTracker(TrackerNode, PandaObject):
         # Create a new tracker node for the given device
         TrackerNode.__init__(self, vrpnClient, device)
         # Attach node to data graph
-        self.nodePath = base.dataRoot.attachNewNode(self)
+        self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     def enable(self):
-        self.nodePath.reparentTo(base.dataRoot)
+        self.nodePath.reparentTo(myBase.dataRoot)
     
     def disable(self):
-        self.nodePath.reparentTo(base.dataUnused)
+        self.nodePath.reparentTo(myBase.dataUnused)
     
     def getName(self):
         return self.name
@@ -164,7 +172,7 @@ class DirectTracker(TrackerNode, PandaObject):
             str = str + '%.3f' % val + ' '
         return str
 
-class DirectDials(DialNode, PandaObject):
+class DirectDials(DialNode, DirectObject):
     dialCount = 0
     def __init__(self, vrpnClient, device):
         # Keep track of number of dials created
@@ -174,7 +182,7 @@ class DirectDials(DialNode, PandaObject):
         # Create a new dial node for the given device
         DialNode.__init__(self, vrpnClient, device)
         # Attach node to data graph
-        self.nodePath = base.dataRoot.attachNewNode(self)
+        self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     def __getitem__(self, index):
         if (index < 0) or (index > self.getNumDials()):
@@ -185,10 +193,10 @@ class DirectDials(DialNode, PandaObject):
         return self.getNumDials()
     
     def enable(self):
-        self.nodePath.reparentTo(base.dataRoot)
+        self.nodePath.reparentTo(myBase.dataRoot)
     
     def disable(self):
-        self.nodePath.reparentTo(base.dataUnused)
+        self.nodePath.reparentTo(myBase.dataUnused)
     
     def getName(self):
         return self.name
@@ -202,7 +210,7 @@ class DirectDials(DialNode, PandaObject):
             str = str + '%.3f' % val + ' '
         return str
 
-class DirectTimecodeReader(AnalogNode, PandaObject):
+class DirectTimecodeReader(AnalogNode, DirectObject):
     timecodeReaderCount = 0
     def __init__(self, vrpnClient, device):
         # Keep track of number of timecodeReader created
@@ -218,13 +226,13 @@ class DirectTimecodeReader(AnalogNode, PandaObject):
         # Create a new dial node for the given device
         AnalogNode.__init__(self, vrpnClient, device)
         # Attach node to data graph
-        self.nodePath = base.dataRoot.attachNewNode(self)
+        self.nodePath = myBase.dataRoot.attachNewNode(self)
     
     def enable(self):
-        self.nodePath.reparentTo(base.dataRoot)
+        self.nodePath.reparentTo(myBase.dataRoot)
     
     def disable(self):
-        self.nodePath.reparentTo(base.dataUnused)
+        self.nodePath.reparentTo(myBase.dataUnused)
     
     def getName(self):
         return self.name
@@ -253,3 +261,18 @@ class DirectTimecodeReader(AnalogNode, PandaObject):
     def __repr__(self):
         str = ('%s: %d:%d:%d:%d' % ((self.name,) + self.getTime()[:-1]))
         return str
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 1 - 1
direct/src/directdevices/DirectJoybox.py

@@ -42,7 +42,7 @@ class DirectJoybox(PandaObject):
         self.analogs = direct.deviceManager.createAnalogs(self.device)
         self.buttons = direct.deviceManager.createButtons(self.device)
         self.aList = [0,0,0,0,0,0,0,0]
-        self.bList = [0,0,0,0,0,0,0,0]
+        self.bList = [0,0,0,0,0,0,0,0,0,0,0,0]
         # For joybox fly mode
         # Default is joe mode
         self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, L_FWD_BACK,

+ 6 - 0
direct/src/directtools/DirectSession.py

@@ -960,3 +960,9 @@ __builtin__.direct = base.direct = DirectSession()
 
 
 
+
+
+
+
+
+

+ 6 - 0
direct/src/ffi/genPyCode

@@ -13,6 +13,12 @@ shift
 firstarg="$1"
 fi
 
+if [ "$firstarg" = "-v" ]; then
+extra_genPyCode_libs="libvrpn"
+shift
+firstarg="$1"
+fi
+
 shift
 extra_genPyCode_libs="$extra_genPyCode_libs $*"
 

+ 1 - 0
direct/src/gui/DirectFrame.py

@@ -64,6 +64,7 @@ class DirectFrame(DirectGuiWidget):
                 if text == None:
                     return
                 else:
+                    from OnscreenText import OnscreenText
                     self.createcomponent(
                         component, (), 'text',
                         OnscreenText,

+ 2 - 1
direct/src/interval/SoundInterval.py

@@ -39,7 +39,7 @@ class SoundInterval(Interval):
                 #duration += 1.5
                 # DCR - hack for Miles bug - adding 1.5 seconds caused
                 # problems for MG_neg_buzzer.wav
-                duration += min(duration * 0.4, 1.5)
+                duration += min(duration * 2.4, 1.5)
             else:
                 # This will screw up any intervals that base their
                 # time on the duration of this sound interval
@@ -86,3 +86,4 @@ class SoundInterval(Interval):
             
 
 
+