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 - + + True + 0 + out + + + True + 12 + + + True + vertical + + + True + + + True + Wiimote Address: + + + False + 0 + + + + + True + True + + + + 1 + + + + + 0 + + + + + True + + + True + Filter/Damping: + + + False + 0 + + + + + True + True + False + 10 + 0 + + + 1 + + + + + 1 + + + + + + + + + True + <b>Basic Preferences</b> + True + + + + + 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()