def onOK(self, evt):
     if self.temp_audiofile:
         if os.path.exists(self.temp_audiofile):
             dlg = wx.TextEntryDialog(self.frame, u"Bitte einen Namen eingeben", u"Wave Datei speichern", "", wx.OK | wx.CANCEL)
             if dlg.ShowModal() == wx.ID_OK:
                 name = dlg.GetValue().strip()
                 if not name.endswith(".wav"):
                     name += ".wav"
                 path = os.path.join(self.sound_folder, name)
                 if not os.path.exists(path):
                     os.rename(self.temp_audiofile, path)
                     if "PULSE_LATENCY_MSEC" in os.environ:
                         del os.environ["PULSE_LATENCY_MSEC"]
                     self.frame.EndModal(wx.ID_OK)
                 else:
                     if dialogs.ask(self.frame, u"Datei überschreiben?", u"Datei überschreiben"):
                         os.remove(path)
                         os.rename(self.temp_audiofile, path)
                         if "PULSE_LATENCY_MSEC" in os.environ:
                             del os.environ["PULSE_LATENCY_MSEC"]
                         self.frame.EndModal(wx.ID_OK)
                     else:
                         return
         else:   
             if "PULSE_LATENCY_MSEC" in os.environ:
                 del os.environ["PULSE_LATENCY_MSEC"]
             self.frame.EndModal(wx.ID_OK)
                     
     else:    
         if "PULSE_LATENCY_MSEC" in os.environ:
             del os.environ["PULSE_LATENCY_MSEC"]
         self.frame.EndModal(wx.ID_OK)
 def onClose(self, evt):
     self.playing = False
     self.recording = False
     self.timer.Stop()
     if self.temp_audiofile:
         if not dialogs.ask(self.frame, u"Aufnahme löschen?", u"Aufnahme löschen?"):
             return
         os.remove(self.temp_audiofile)
     if "PULSE_LATENCY_MSEC" in os.environ:
         del os.environ["PULSE_LATENCY_MSEC"]
     self.frame.EndModal(wx.ID_CANCEL)
 def onCancel(self, evt):
     if self.temp_audiofile:
         if not dialogs.ask(self.frame, u"Aufnahme löschen?", u"Aufnahme löschen?"):
             return
         if os.path.exists(self.temp_audiofile):
             try:
                 os.remove(self.temp_audiofile)
             except IOError, e:
                 self.logger.error(unicode(e))
             except OSError, e:
                 self.logger.error(unicode(e))
 def onRecord(self, evt):
     if self.playing:
         dialogs.showErrorMessage(self.frame, u"Bitte stoppen Sie zuerst die Wiedergabe!", "Wiedergabe stoppen")
         return
     
     self.recording = not self.recording
     
     if self.recording:
         if not self.temp_audiofile:
             self.temp_audiofile = os.path.join(self.sound_folder, stringhelper.uniqid("temp_", False) + ".wav")
         else:
             if not dialogs.ask(self.frame, u"Bestehende Aufnahme überschreiben?", u"Aufnahme überschreiben"):
                 self.recording = False
                 return
         self.logger.debug("Start recording")
         self.frame.btnRecord.SetLabel("Stop")
         thread.start_new_thread(self.record, ())
     else:
         self.logger.debug("Stop recording")
         self.frame.btnRecord.SetLabel("Aufnehmen")