[tuxdroid-svn] r1248 - software/tuxgi/trunk
Status: Beta
Brought to you by:
ks156
From: Paul_R <c2m...@c2...> - 2008-06-23 13:13:46
|
Author: Paul_R Date: 2008-06-23 15:13:51 +0200 (Mon, 23 Jun 2008) New Revision: 1248 Modified: software/tuxgi/trunk/tuxgi.py software/tuxgi/trunk/tuxgi2.glade Log: * Added the sound flash functions. The functions for the microphone aren't implemented yet * Fix a bug with the led function Modified: software/tuxgi/trunk/tuxgi.py =================================================================== --- software/tuxgi/trunk/tuxgi.py 2008-06-23 12:32:00 UTC (rev 1247) +++ software/tuxgi/trunk/tuxgi.py 2008-06-23 13:13:51 UTC (rev 1248) @@ -324,7 +324,6 @@ # ----------------------------------------------------------------------------- # Tab "main" events # ----------------------------------------------------------------------------- - #-------------------------------------------------------------------------- # On left led checkbox toggled #-------------------------------------------------------------------------- @@ -351,12 +350,9 @@ # On flash leds button clicked #-------------------------------------------------------------------------- def on_flash_bt_clicked(self, widget, *args): - def _funct(): - num_sb=self.get_widget("spinbutton1") - # XXX New command with counter - tux.led.both.blinkAsync(SPV_NORMAL, 1.0) + num_sb=self.get_widget("spinbutton1").get_value() + tux.led.both.blinkAsync(SPV_NORMAL, int(num_sb)) - thread.start_new_thread(_funct,()) #-------------------------------------------------------------------------- # On eyes open radiobutton toggled @@ -562,224 +558,154 @@ # On "play" external wave file button clicked #-------------------------------------------------------------------------- def on_wave_external_play_bt_clicked(self, widget, *args): - print "FIXME :: play external : not implemented yet" - ''' if str(self.get_widget("filechooserbutton1").get_filename())=="None": return - tux.sys.shell_free("aplay -D %s %s"% (soundcard, - self.get_widget("filechooserbutton1").get_filename())) - ''' + tux.wav.play(self.get_widget("filechooserbutton1").get_filename()) + #-------------------------------------------------------------------------- # On select original sounds #-------------------------------------------------------------------------- def on_incl_orig_toggled(self, widget, *args): - print "FIXME :: Original waves : not implemented yet" - ''' - st_wav_paths = wavs.wav_paths if widget.get_active(): - wavs.wav_paths=[] - wavs.wav_sizes=[] + self.wav_list = [] for i in range(17): - wavs.add_wav_path('/opt/tuxdroid/apps/tuxgi/sounds/%d.wav'%(i+1)) - for path in st_wav_paths: - wavs.add_wav_path(path) + self.wav_list.append('/opt/tuxdroid/tuxgi/sounds/%d.wav'%(i+1)) else: - if len(st_wav_paths) > 17: + if len(self.wav_list) > 17: for i in range(17): - wavs.wav_sizes.pop(0) - wavs.wav_paths.pop(0) + self.wav_list.pop(0) else: - wavs.wav_paths=[] - wavs.wav_sizes=[] + self.wav_list = [] self.refresh_wav_list() - ''' #-------------------------------------------------------------------------- # On select internal wave file event #-------------------------------------------------------------------------- def on_wave_internal_changed(self, widget, *args): - print "FIXME :: Internal waves : not implemented yet" - ''' filename=widget.get_filename() ext=len(filename)-filename.find(".wav") if ext != 4 : widget.unselect_filename(filename) - ''' #-------------------------------------------------------------------------- # On "add" button clicked #-------------------------------------------------------------------------- def on_wave_internal_add_bt_clicked(self, widget, *args): - print "FIXME :: Add sound : not implemented yet" - ''' if str(self.get_widget("filechooserbutton2").get_filename())=="None": return - wavs.add_wav_path(self.get_widget("filechooserbutton2").get_filename()) + self.wav_list.append(self.get_widget("filechooserbutton2").get_filename()) self.refresh_wav_list() - ''' + #-------------------------------------------------------------------------- # On "remove" button clicked #-------------------------------------------------------------------------- def on_wave_internal_remove_bt_clicked(self, widget, *args): - print "FIXME :: Remove sound : not implemented yet" - ''' index=int(self.get_widget("spinbutton8").get_value()) - if index>len(wavs.wav_paths):return - wavs.wav_sizes.pop(index-1) - wavs.wav_paths.pop(index-1) + if index>len(self.wav_list):return + self.wav_list.pop(index-1) self.refresh_wav_list() - ''' #-------------------------------------------------------------------------- # Refreshing wave list function #-------------------------------------------------------------------------- def refresh_wav_list(self): - print "FIXME :: Clear list : not implemented yet" - ''' wav_te=self.get_widget("textview3") wav_buffer=wav_te.get_buffer() wav_buffer.set_text("") i=1 - for wavfile in wavs.wav_paths: + for wavfile in self.wav_list: filename=wavfile[wavfile.rfind('/')+1:] wav_buffer.insert(wav_buffer.get_end_iter(),"%.2d : %s\n" %(i,filename)) i=i+1 - ''' #-------------------------------------------------------------------------- # On "clear" internal wave file list button clicked #-------------------------------------------------------------------------- def on_wave_internal_clist_bt_clicked(self, widget, *args): - print "FIXME :: Internal sounds : not implemented yet" - ''' - wavs.wav_sizes=[] - wavs.wav_paths=[] + self.wav_list = [] self.get_widget("checkbutton4").set_active(False) self.refresh_wav_list() - ''' #-------------------------------------------------------------------------- # On "store" button clicked #-------------------------------------------------------------------------- def on_wave_internal_store_bt_clicked(self, widget, *args): - print "FIXME :: Store waves : not implemented yet" - #thread.start_new_thread(self.sound_storing,()) + thread.start_new_thread(self.sound_storing,()) #-------------------------------------------------------------------------- # Store sound function #-------------------------------------------------------------------------- def sound_storing(self): - print "FIXME :: Sound storing : not implemeted yet" - ''' - if tux.status.rf_state() == 0: return - if len(wavs.wav_sizes)==0: return - wav_te=self.get_widget("textview3") - wav_buffer=wav_te.get_buffer() - if not wavs.wavs_merging("merged.wav"): - print wav_buffer.insert(wav_buffer.get_end_iter(), - "Sound storing : Error : file merged is too big\n") - return - wav_buffer.insert(wav_buffer.get_end_iter(), - "Sound storing : Erase flash\n") - tux.cmd.sound_storing(len(wavs.wav_sizes)) - tux.sys.wait(10) - current_pos=0x0400 - tux.sys.wait(0.1) - wav_buffer.insert(wav_buffer.get_end_iter(), - "Sound storing : Indexes\n") - tux.cmd.sound_store_index(0x00,0x04,0x00) - for size in wavs.wav_sizes: - current_pos=current_pos+size - tux.sys.wait(0.1) - tux.cmd.sound_store_index((current_pos & 0xFF0000)>>16, - (current_pos & 0x00FF00)>>8,current_pos & 0x0000FF) - wav_buffer.insert(wav_buffer.get_end_iter(),"Sound storing : Record\n") - tux.sys.shell("aplay -D %s merged.wav"%soundcard) - wav_buffer.insert(wav_buffer.get_end_iter(), - "Sound storing : Storage done.\n") - tux.sys.wait(0.3) - ''' + if tux.access.waitAcquire(10.0, ACCESS_PRIORITY_CRITICAL): + tux.soundFlash.reflash(self.wav_list) + tux.access.release() + #-------------------------------------------------------------------------- # On "play" flash sound button clicked #-------------------------------------------------------------------------- def on_wave_internal_play_bt_clicked(self, widget, *args): - print "FIXME :: Play internal wave %d : Not implemented yet" \ - %(self.get_widget("spinbutton7").get_value()) - ''' - def _funct(): - index=self.get_widget("spinbutton7").get_value() - tux.cmd.sound_play(int(index),0) + index=self.get_widget("spinbutton7").get_value() + tux.soundFlash.playAsync(int(index)) - thread.start_new_thread(_funct,()) - ''' + #-------------------------------------------------------------------------- # On "play flash sound number 1" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play1_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(1,0,)) + tux.soundFlash.playAsync(1) #-------------------------------------------------------------------------- # On "play flash sound number 2" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play2_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(2,0,)) + tux.soundFlash.playAsync(2) #-------------------------------------------------------------------------- # On "play flash sound number 3" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play3_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(3,0,)) + tux.soundFlash.playAsync(3) #-------------------------------------------------------------------------- # On "play flash sound number 4" button clicked #-------------------------------------------------------------------------- def on_wave_internat_play4_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(4,0,)) + tux.soundFlash.playAsync(4) #-------------------------------------------------------------------------- # On "play flash sound number 5" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play5_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(5,0,)) + tux.soundFlash.playAsync(5) #-------------------------------------------------------------------------- # On "play flash sound number 6" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play6_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(6,0,)) + tux.soundFlash.playAsync(6) #-------------------------------------------------------------------------- # On "play flash sound number 7" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play7_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(7,0,)) + tux.soundFlash.playAsync(7) #-------------------------------------------------------------------------- # On "play flash sound number 8" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play8_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(8,0,)) + tux.soundFlash.playAsync(8) #-------------------------------------------------------------------------- # On "play flash sound number 9" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play9_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(9,0,)) + tux.soundFlash.playAsync(9) #-------------------------------------------------------------------------- # On "play flash sound number 10" button clicked #-------------------------------------------------------------------------- def on_wave_internal_play10_clicked(self, widget, *args): - pass - #thread.start_new_thread(tux.cmd.sound_play,(10,0,)) + tux.soundFlash.playAsync(10) #-------------------------------------------------------------------------- # On "Play recorded wave file" button clicked @@ -827,26 +753,6 @@ def on_window2_destroy(self, widget, *args): print "closed" - #-------------------------------------------------------------------------- - # On "Send command" button clicked - #-------------------------------------------------------------------------- - def on_sendcommand_bt_clicked(self, widget, *args): - commandst=self.get_widget("entry1").get_text() - commands=commandst.split(" ") - if len(commands)<4: - return - else: - commandp=[0,0,0,0] - for i in range(len(commands)): - if commands[i].find("0x")!=-1: - commandp[i]=int(commands[i][2:],16) - else: - commandp[i]=int(commands[i]) - print "FIXME :: Raw command : This function isn't implemented yet" - #tux.cmd.raw(int(commandp[0]),int(commandp[1]),int(commandp[2]), - #int(commandp[3])) - - #------------------------------------------------------------------------------ # Main #------------------------------------------------------------------------------ Modified: software/tuxgi/trunk/tuxgi2.glade =================================================================== --- software/tuxgi/trunk/tuxgi2.glade 2008-06-23 12:32:00 UTC (rev 1247) +++ software/tuxgi/trunk/tuxgi2.glade 2008-06-23 13:13:51 UTC (rev 1248) @@ -70,7 +70,7 @@ <property name="visible">True</property> <child> - <widget class="GtkImage" id="image2"> + <widget class="GtkImage" id="image4"> <property name="width_request">21</property> <property name="height_request">21</property> <property name="visible">True</property> @@ -83,12 +83,12 @@ </widget> <packing> <property name="x">192</property> - <property name="y">0</property> + <property name="y">39</property> </packing> </child> <child> - <widget class="GtkImage" id="image3"> + <widget class="GtkImage" id="image2"> <property name="width_request">21</property> <property name="height_request">21</property> <property name="visible">True</property> @@ -101,60 +101,16 @@ </widget> <packing> <property name="x">192</property> - <property name="y">24</property> + <property name="y">10</property> </packing> </child> <child> - <widget class="GtkImage" id="image4"> - <property name="width_request">21</property> - <property name="height_request">21</property> - <property name="visible">True</property> - <property name="stock">gtk-cancel</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="x">192</property> - <property name="y">48</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label27"> - <property name="width_request">166</property> - <property name="height_request">20</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Radio connection</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">True</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="x">0</property> - <property name="y">48</property> - </packing> - </child> - - <child> <widget class="GtkLabel" id="label9"> <property name="width_request">136</property> <property name="height_request">20</property> <property name="visible">True</property> - <property name="label" translatable="yes">Tux Droid daemon</property> + <property name="label" translatable="yes">Tux HTTP Server</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> @@ -171,16 +127,16 @@ </widget> <packing> <property name="x">0</property> - <property name="y">0</property> + <property name="y">10</property> </packing> </child> <child> - <widget class="GtkLabel" id="label10"> + <widget class="GtkLabel" id="label27"> <property name="width_request">166</property> <property name="height_request">20</property> <property name="visible">True</property> - <property name="label" translatable="yes">Text To Speech daemon</property> + <property name="label" translatable="yes">Radio connection</property> <property name="use_underline">False</property> <property name="use_markup">False</property> <property name="justify">GTK_JUSTIFY_LEFT</property> @@ -197,7 +153,7 @@ </widget> <packing> <property name="x">0</property> - <property name="y">24</property> + <property name="y">39</property> </packing> </child> </widget> @@ -2320,94 +2276,4 @@ </child> </widget> -<widget class="GtkWindow" id="window2"> - <property name="width_request">257</property> - <property name="height_request">70</property> - <property name="visible">True</property> - <property name="title" translatable="yes">Send command</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">False</property> - <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - <signal name="destroy" handler="on_window2_destroy"/> - - <child> - <widget class="GtkFixed" id="fixed12"> - <property name="visible">True</property> - - <child> - <widget class="GtkEntry" id="entry1"> - <property name="width_request">160</property> - <property name="height_request">27</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes">0x31 0 0 0</property> - <property name="has_frame">True</property> - <property name="invisible_char">•</property> - <property name="activates_default">False</property> - </widget> - <packing> - <property name="x">8</property> - <property name="y">32</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label26"> - <property name="width_request">149</property> - <property name="height_request">20</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Type raw command:</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">True</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="x">8</property> - <property name="y">8</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="button35"> - <property name="width_request">72</property> - <property name="height_request">27</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Send</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="on_sendcommand_bt_clicked"/> - </widget> - <packing> - <property name="x">176</property> - <property name="y">32</property> - </packing> - </child> - </widget> - </child> -</widget> - </glade-interface> |