diff --git a/bin/wiitracker.py b/bin/wiitracker.py
index f79dd44..a6851c8 100755
--- a/bin/wiitracker.py
+++ b/bin/wiitracker.py
@@ -43,7 +43,7 @@ def __init__(self):
"""
pass
- def finish_initializing(self, builder, wiiAddress):
+ def finish_initializing(self, builder):
"""finish_initalizing should be called after parsing the ui definition
and creating a WiitrackerWindow object with it in order to finish
initializing the start of the new WiitrackerWindow instance.
@@ -52,13 +52,13 @@ def finish_initializing(self, builder, wiiAddress):
#get a reference to the builder and set up the signals
self.builder = builder
self.builder.connect_signals(self)
- self.tracker = Wii3DTracker(wiiAddress)
#uncomment the following code to read in preferences at start up
- #dlg = PreferencesWiitrackerDialog.NewPreferencesWiitrackerDialog()
- #self.preferences = dlg.get_preferences()
+ dlg = PreferencesWiitrackerDialog.NewPreferencesWiitrackerDialog()
+ self.preferences = dlg.get_preferences()
#code for other initialization actions should be added here
+ self.tracker = Wii3DTracker(self.preferences['wiiAddress'])
self.statusBar = builder.get_object("statusbar")
self.status_context = self.statusBar.get_context_id('')
self.rollDrawing = builder.get_object('rollDrawing')
@@ -69,7 +69,6 @@ def finish_initializing(self, builder, wiiAddress):
self.menuConnectTrack = builder.get_object('menuitem_ConnectTrack')
self.menuRumble = builder.get_object('menuitem_Rumble')
-
self.__connectTrack_source = 0
def about(self, widget, data=None):
@@ -84,6 +83,12 @@ def preferences(self, widget, data=None):
response = prefs.run()
if response == gtk.RESPONSE_OK:
#make any updates based on changed preferences here
+ self.preferences = prefs.get_preferences()
+ self.tracker.wiiAddress = self.preferences['wiiAddress']
+# if self.preferences['wiiAddress'] < self.tracker.FILTER_LENGTH:
+# self.tracker.roll_fltr_1.__init__()
+# self.tracker.roll_fltr_2.__init__()
+ self.tracker.FILTER_LENGTH = self.preferences['filterSize']
pass
prefs.destroy()
@@ -199,7 +204,7 @@ def __paint(self):
return not self.tracker.stopping
-def NewWiitrackerWindow(wiiAddress):
+def NewWiitrackerWindow():
"""NewWiitrackerWindow - returns a fully instantiated
WiitrackerWindow object. Use this function rather than
creating a WiitrackerWindow directly.
@@ -213,7 +218,7 @@ def NewWiitrackerWindow(wiiAddress):
builder = gtk.Builder()
builder.add_from_file(ui_filename)
window = builder.get_object("wiitracker_window")
- window.finish_initializing(builder, wiiAddress)
+ window.finish_initializing(builder)
return window
if __name__ == "__main__":
@@ -229,7 +234,7 @@ def NewWiitrackerWindow(wiiAddress):
logging.debug('logging enabled')
#run the application
- window = NewWiitrackerWindow("00:17:AB:39:49:98")
+ window = NewWiitrackerWindow()
window.show()
threads_init()
gtk.main()
diff --git a/data/ui/PreferencesWiitrackerDialog.ui b/data/ui/PreferencesWiitrackerDialog.ui
index 210021a..9b35256 100644
--- a/data/ui/PreferencesWiitrackerDialog.ui
+++ b/data/ui/PreferencesWiitrackerDialog.ui
@@ -14,7 +14,91 @@
vertical
2
-
+
+
+ 1
+
@@ -22,7 +106,7 @@
end
- gtk-cancel
+ gtk-cancel
True
True
True
@@ -37,7 +121,7 @@
- gtk-ok
+ gtk-ok
True
True
True
diff --git a/data/ui/WiitrackerWindow.ui b/data/ui/WiitrackerWindow.ui
index c3ba257..ac21b9e 100644
--- a/data/ui/WiitrackerWindow.ui
+++ b/data/ui/WiitrackerWindow.ui
@@ -104,6 +104,7 @@
True
True
True
+
diff --git a/wiitracker/PreferencesWiitrackerDialog.py b/wiitracker/PreferencesWiitrackerDialog.py
index 77b733b..abfa6dd 100644
--- a/wiitracker/PreferencesWiitrackerDialog.py
+++ b/wiitracker/PreferencesWiitrackerDialog.py
@@ -47,6 +47,11 @@ def finish_initializing(self, builder):
self.__record_type = "http://wiki.ubuntu.com/Quickly/RecordTypes/Wiitracker/Preferences"
self.__preferences = self.get_preferences()
#TODO:code for other initialization actions should be added here
+ self.addressEntry = self.builder.get_object("AddressEntry")
+ self.addressEntry.set_text(self.__preferences['wiiAddress'])
+ self.dampingScale = self.builder.get_object("dampingScale")
+ self.dampingScale.set_range(1, 100)
+ self.dampingScale.set_value(self.__preferences['filterSize'])
def get_preferences(self):
"""get_preferences -returns a dictionary object that contain
@@ -63,10 +68,13 @@ def get_preferences(self):
def __load_preferences(self):
#TODO: add prefernces to the self.__preferences dict
#default preferences that will be overwritten if some are saved
- self.__preferences = {"record_type":self.__record_type}
+ self.__preferences = {"record_type":self.__record_type,
+ "wiiAddress": "00:17:AB:39:49:98",
+ "filterSize": 15}
results = self.__database.get_records(record_type=self.__record_type, create_view=True)
+# self.__key = self.__database.put_record(Record(self.__preferences))
if len(results.rows) == 0:
#no preferences have ever been saved
#save them before returning
@@ -85,6 +93,8 @@ def ok(self, widget, data=None):
#make any updates to self.__preferences here
#self.__preferences["preference1"] = "value2"
+ self.__preferences["wiiAddress"] = self.addressEntry.get_text()
+ self.__preferences["filterSize"] = self.dampingScale.get_value()
self.__save_preferences()
def cancel(self, widget, data=None):
diff --git a/wiitracker/Wii3DTracker.py b/wiitracker/Wii3DTracker.py
index cd0b41c..4f9d165 100644
--- a/wiitracker/Wii3DTracker.py
+++ b/wiitracker/Wii3DTracker.py
@@ -113,6 +113,10 @@ def getAngles(self):
else:
nu_roll = roll + pi/self.FILTER_LENGTH
+ while self.roll_fltr_1.qsize() > self.FILTER_LENGTH:
+ self.roll_fltr_1.get()
+ self.roll_fltr_2.get()
+ self.pitch_fltr.get()
if self.roll_fltr_1.qsize() == self.FILTER_LENGTH:
self.filtered_roll_1 = self.filtered_roll_1 - self.roll_fltr_1.get()
self.filtered_roll_2 = self.filtered_roll_2 - self.roll_fltr_2.get()