def play(self, voice):

        voice_id = get_voice_file(voice)

        if voice_id == None:
            return

        voice_file = os.path.join(common.editor_config.voice_dir,
                                  "%04d.mp3" % voice_id)

        if not os.path.isfile(voice_file):
            QtGui.QMessageBox.warning(self.parent, "Could Not Find File",
                                      u"Could not locate\n%s" % voice_file)
            return

        if self.player.state() in [
                Phonon.LoadingState, Phonon.PausedState, Phonon.StoppedState
        ]:
            self.player.setCurrentSource(Phonon.MediaSource(voice_file))
            self.player.play()

        else:
            # Don't try to compete with the changing of states, just request the player
            # stop and then tell it to play when we switch into a safer state.
            self.next = voice_file
            self.player.stop()
    def play(self, voice):

        voice_id = get_voice_file(voice)

        if voice_id == None:
            return

        voice_file = os.path.join(common.editor_config.voice_dir, "%04d.mp3" % voice_id)

        if not os.path.isfile(voice_file):
            QtGui.QMessageBox.warning(self.parent, "Could Not Find File", u"Could not locate\n%s" % voice_file)
            return

        if self.player.state() in [Phonon.LoadingState, Phonon.PausedState, Phonon.StoppedState]:
            self.player.setCurrentSource(Phonon.MediaSource(voice_file))
            self.player.play()

        else:
            # Don't try to compete with the changing of states, just request the player
            # stop and then tell it to play when we switch into a safer state.
            self.next = voice_file
            self.player.stop()
def script_to_text(dir, translated = True, strip_clt = False, only_voiced = False, line_numbers = True):
  script_pack = ScriptPack()
  
  if dir[:7] == "nonstop":
    parser = NonstopParser()
    parser.load(dir)
    script_pack = parser.script_pack
  
  elif dir[:8] == "hs_mtb_s":
    parser = MTBParser()
    parser.load(dir)
    script_pack = parser.script_pack
  
  elif dir[:7] == "anagram":
    return u""
  
  else:
    script_pack.load_dir(dir, common.editor_config.umdimage_dir)
  
  # pack = ScriptPack(directory = dir, umdimage = "X:/Danganronpa/Demo_FINAL/umdimage/")
  
  output = []
  
  if len(script_pack) > 0:
  
    output.append("==================================================\n=== %s" % dir)
    room = get_map_name(script_pack[0].scene_info.room)
    if not room == None:
      output.append("\n=== Room: %s" % room)
    output.append("\n==================================================\n\n")
    
    for script in script_pack:
      voice = get_voice_file(script.scene_info.voice)
      if voice == None and only_voiced:
        continue
      
      if script.scene_info.special in [common.SCENE_SPECIAL.checkobj, common.SCENE_SPECIAL.checkchar, common.SCENE_SPECIAL.option, common.SCENE_SPECIAL.showopt]:
        output.append("********************\n\n")
      
      if line_numbers:
        output.append("[%04d.txt]" % script.scene_info.file_id)
        output.append("\n")
      
      output.append("[%s]\n" % (common.CHAR_IDS[script.scene_info.speaker] if script.scene_info.speaker in common.CHAR_IDS else "N/A"))
      
      if not voice == None:
        # output.append("  [Voice: %04d.at3, %s]\n" % (voice, common.CHAR_IDS[script.scene_info.voice.char_id] if script.scene_info.voice.char_id in common.CHAR_IDS else "N/A"))
        output.append("[Voice: %04d.at3" % (voice))
        if script.scene_info.voice.chapter == 0x63:
          output.append(" (Generic)")
        output.append("]\n")
      # output.append("\n")
      
      line = ""
      if translated and script.translated:
        if strip_clt:
          line = script.translated_notags
        else:
          line = script.translated
      
      else:
        if strip_clt:
          line = script.original_notags
        else:
          line = script.original
      
      output.append("  %s" % line.strip().replace("\n", "\n  "))
      output.append("\n\n")
  
  return u''.join(output)
def script_to_text(dir, translated = True, strip_clt = False, only_voiced = False, line_numbers = True):
  script_pack = ScriptPack()
  
  if dir[:7] == "nonstop":
    parser = NonstopParser()
    parser.load(dir)
    script_pack = parser.script_pack
  
  elif dir[:8] == "hs_mtb_s":
    parser = MTBParser()
    parser.load(dir)
    script_pack = parser.script_pack
  
  elif dir[:7] == "anagram":
    return u""
  
  else:
    script_pack.load_dir(dir, common.editor_config.data01_dir)
  
  # pack = ScriptPack(directory = dir, umdimage = "X:/Danganronpa/Demo_FINAL/umdimage/")
  
  output = []
  
  if len(script_pack) > 0:
  
    output.append("==================================================\n=== %s" % dir)
    room = get_map_name(script_pack[0].scene_info.room)
    if not room == None:
      output.append("\n=== Room: %s" % room)
    output.append("\n==================================================\n\n")
    
    for script in script_pack:
      voice = get_voice_file(script.scene_info.voice)
      if voice == None and only_voiced:
        continue
      
      if script.scene_info.special in [common.SCENE_SPECIAL.checkobj, common.SCENE_SPECIAL.checkchar, common.SCENE_SPECIAL.option, common.SCENE_SPECIAL.showopt]:
        output.append("********************\n\n")
      
      if line_numbers:
        output.append("[%04d.txt]" % script.scene_info.file_id)
        output.append("\n")
      
      char_name = get_char_name(script.scene_info.speaker)
      output.append("[%s]\n" % (char_name if char_name else "N/A"))
      
      if not voice == None:
        # output.append("  [Voice: %04d.at3, %s]\n" % (voice, common.CHAR_IDS[script.scene_info.voice.char_id] if script.scene_info.voice.char_id in common.CHAR_IDS else "N/A"))
        output.append("[Voice: %04d.at3" % (voice))
        if script.scene_info.voice.chapter == 0x63:
          output.append(" (Generic)")
        output.append("]\n")
      # output.append("\n")
      
      line = ""
      if translated and script[common.editor_config.lang_trans]:
        if strip_clt:
          line = script.notags[common.editor_config.lang_trans]
        else:
          line = script[common.editor_config.lang_trans]
      
      else:
        if strip_clt:
          line = script.notags[common.editor_config.lang_orig]
        else:
          line = script[common.editor_config.lang_orig]
      
      output.append("  %s" % line.strip().replace("\n", "\n  "))
      output.append("\n\n")
  
  return u''.join(output)