def initialize(self): _import() self.log.debug(str(sys.argv)) # 多重起動処理8 try: self.mutex = win32event.CreateMutex(None, 1, constants.PIPE_NAME) except: pass if win32api.GetLastError() == winerror.ERROR_ALREADY_EXISTS: try: lampPipe.sendPipe() except: pass self.mutex = 0 sys.exit() else: lampPipe.startPipeServer() # プロキシの設定を適用 self.proxyEnviron = proxyUtil.virtualProxyEnviron() if self.config.getboolean("network", "manual_proxy", False): sv = self.config.getstring("network", "proxy_server", "") pr = self.config.getint("network", "proxy_port", 8080, 0, 65535) self.proxyEnviron.set_environ(sv, pr) else: self.proxyEnviron.set_environ() self.SetGlobalVars() # メインビューを表示 self.hMainView = main.MainView() if self.config.getboolean(self.hMainView.identifier, "maximized", False): self.hMainView.hFrame.Maximize() self.hMainView.Show() # update関係を準備 if self.config.getboolean("general", "update"): globalVars.update.update(True) m3uloaded = False #条件に基づいてファイルの読み込み if len(sys.argv) == 2 and os.path.isfile(sys.argv[1]): if os.path.splitext( sys.argv[1])[1].lower() in globalVars.fileExpansions: globalVars.eventProcess.forcePlay(sys.argv[1]) elif os.path.splitext( sys.argv[1])[1] == ".m3u" or os.path.splitext( sys.argv[1])[1] == ".m3u8": m3uManager.loadM3u(sys.argv[1]) m3uloaded = True startupList = globalVars.app.config.getstring("player", "startupPlaylist", "") if startupList != "" and m3uloaded == False: m3uManager.loadM3u(startupList, 1) return True
def OnMenuSelect(self, event): """メニュー項目が選択されたときのイベントハンドら。""" #ショートカットキーが無効状態のときは何もしない if not self.parent.shortcutEnable: event.Skip() return selected = event.GetId() #メニュー識別しの数値が出る if selected == menuItemsStore.getRef("FILE_OPEN"): d = views.mkOpenDialog.Dialog("fileOpenDialog") d.Initialize(0) #0=ファイルダイアログ rtnCode = d.Show() if rtnCode == d.PLAYLIST: listManager.addItems([d.GetValue()], globalVars.app.hMainView.playlistView) elif rtnCode == d.QUEUE: listManager.addItems([d.GetValue()], globalVars.app.hMainView.queueView) else: return elif selected == menuItemsStore.getRef("DIR_OPEN"): d = views.mkOpenDialog.Dialog("directoryOpenDialog") d.Initialize(1) #1=フォルダダイアログ rtnCode = d.Show() if rtnCode == d.PLAYLIST: listManager.addItems([d.GetValue()], globalVars.app.hMainView.playlistView) elif rtnCode == d.QUEUE: listManager.addItems([d.GetValue()], globalVars.app.hMainView.queueView) else: return elif selected == menuItemsStore.getRef("URL_OPEN"): d = views.mkOpenDialog.Dialog("urlOpenDialog") d.Initialize(2) #2=URLダイアログ rtnCode = d.Show() if rtnCode == d.PLAYLIST: listManager.addItems([d.GetValue()], globalVars.app.hMainView.playlistView) elif rtnCode == d.QUEUE: listManager.addItems([d.GetValue()], globalVars.app.hMainView.queueView) else: return elif selected == menuItemsStore.getRef("M3U_OPEN"): m3uManager.loadM3u() elif selected == menuItemsStore.getRef("NEW_M3U8_SAVE"): m3uManager.saveM3u8() elif selected == menuItemsStore.getRef("M3U8_SAVE"): m3uManager.saveM3u8(globalVars.listInfo.playlistFile) elif selected == menuItemsStore.getRef("M3U_ADD"): m3uManager.loadM3u(None, m3uManager.ADD) elif selected == menuItemsStore.getRef("M3U_CLOSE"): m3uManager.closeM3u() elif selected == menuItemsStore.getRef("EXIT"): self.parent.hFrame.Close() #機能メニューのイベント elif selected >= constants.FILTER_LIST_MENU and selected < constants.FILTER_LIST_MENU + 500: globalVars.filter.get(selected - constants.FILTER_LIST_MENU).setEnable( event.IsChecked()) elif selected == menuItemsStore.getRef("FILTER_SETTING"): d = filterSettingDialog.Dialog(*globalVars.filter.getDic()) d.Initialize() if d.Show() == wx.ID_CANCEL: return globalVars.filter.loadDic(*d.GetValue()) elif selected == menuItemsStore.getRef("SET_SLEEPTIMER"): globalVars.sleepTimer.set() elif selected == menuItemsStore.getRef("SET_EFFECTOR"): effector.effector() elif selected == menuItemsStore.getRef("SET_CURSOR_PLAYING"): if globalVars.eventProcess.playingList == constants.PLAYLIST: p = self.parent.playlistView p.Focus(p.getPointer()) p.Select(-1, 0) p.Select(p.getPointer()) else: globalVars.app.hMainView.notification.show( _("プレイリスト上の項目を再生していません。"), 2) elif selected == menuItemsStore.getRef("ABOUT_PLAYING"): if globalVars.eventProcess.playingList == constants.PLAYLIST: listManager.infoDialog(listManager.getTuple( constants.PLAYLIST)) else: listManager.infoDialog(globalVars.listInfo.playingTmp) elif selected == menuItemsStore.getRef("SHOW_NET_CONTROLLER"): globalVars.lampController.showController() elif selected == menuItemsStore.getRef("SHOW_NET_FILE_MANAGER"): netFileManager.run() # 操作メニューのイベント elif selected == menuItemsStore.getRef("PLAY_PAUSE"): globalVars.eventProcess.playButtonControl() elif selected == menuItemsStore.getRef("STOP"): globalVars.eventProcess.stop() elif selected == menuItemsStore.getRef("PREVIOUS_TRACK"): globalVars.eventProcess.previousBtn() elif selected == menuItemsStore.getRef("NEXT_TRACK"): globalVars.eventProcess.nextFile(button=True) elif selected == menuItemsStore.getRef("VOLUME_100"): globalVars.eventProcess.changeVolume(vol=100) elif selected == menuItemsStore.getRef("VOLUME_UP"): globalVars.eventProcess.changeVolume(+1) elif selected == menuItemsStore.getRef("VOLUME_DOWN"): globalVars.eventProcess.changeVolume(-1) elif selected == menuItemsStore.getRef("MUTE"): globalVars.eventProcess.mute() elif selected == menuItemsStore.getRef("FAST_FORWARD"): globalVars.play.fastForward() elif selected == menuItemsStore.getRef("REWIND"): globalVars.play.rewind() elif selected == menuItemsStore.getRef("SAY_TIME"): pos = globalVars.play.getPosition() if pos == -1: time = _("情報がありません") else: hour = pos // 3600 min = (pos - hour * 3600) // 60 sec = int(pos - hour * 3600 - min * 60) if hour == 0: sHour = "" else: sHour = str(int(hour)) + _("時間") + " " if min == 0: sMin = "" else: sMin = str(int(min)) + _("分") + " " time = sHour + sMin + str(int(sec)) + _("秒") globalVars.app.say(time) elif selected == menuItemsStore.getRef("SKIP"): globalVars.eventProcess.skip(settings.getSkipInterval()[0]) elif selected == menuItemsStore.getRef("REVERSE_SKIP"): globalVars.eventProcess.skip(settings.getSkipInterval()[0], False) elif selected == menuItemsStore.getRef("SKIP_INTERVAL_INCREASE"): globalVars.eventProcess.setSkipInterval() elif selected == menuItemsStore.getRef("SKIP_INTERVAL_DECREASE"): globalVars.eventProcess.setSkipInterval(False) elif selected == menuItemsStore.getRef("REPEAT_LOOP"): globalVars.eventProcess.repeatLoopCtrl() elif selected == menuItemsStore.getRef("REPEAT_LOOP_NONE"): globalVars.eventProcess.repeatLoopCtrl(0) elif selected == menuItemsStore.getRef("RL_REPEAT"): globalVars.eventProcess.repeatLoopCtrl(1) elif selected == menuItemsStore.getRef("RL_LOOP"): globalVars.eventProcess.repeatLoopCtrl(2) elif selected == menuItemsStore.getRef("SHUFFLE"): globalVars.eventProcess.shuffleSw() elif selected == menuItemsStore.getRef("MANUAL_SONG_FEED"): globalVars.eventProcess.setSongFeed() elif selected >= constants.DEVICE_LIST_MENU and selected < constants.DEVICE_LIST_MENU + 500: if selected == constants.DEVICE_LIST_MENU: globalVars.play.setDevice(PLAYER_DEFAULT_SPEAKER) else: globalVars.play.setDevice(selected - constants.DEVICE_LIST_MENU) elif selected >= constants.PLAYLIST_HISTORY and selected < constants.PLAYLIST_HISTORY + 20: m3uManager.loadM3u( globalVars.m3uHistory.getList()[selected - constants.PLAYLIST_HISTORY]) elif selected == menuItemsStore.getRef("SET_STARTUPLIST"): startupListSetter.run() elif selected == menuItemsStore.getRef("FILE_ASSOCIATE"): fileAssocDialog.assocDialog() elif selected == menuItemsStore.getRef("SET_SENDTO"): sendToManager.sendToCtrl("LAMP") elif selected == menuItemsStore.getRef("SET_KEYMAP"): if self.setKeymap("MainView", _("ショートカットキーの設定"), filter=keymap.KeyFilter().SetDefault( False, False)): #ショートカットキーの変更適用とメニューバーの再描画 self.parent.menu.InitShortcut() self.parent.menu.ApplyShortcut(self.parent.hFrame) self.parent.menu.Apply(self.parent.hFrame) elif selected == menuItemsStore.getRef("SET_HOTKEY"): if self.setKeymap("HOTKEY", _("グローバルホットキーの設定"), self.parent.hotkey, filter=self.parent.hotkey.filter): #変更適用 self.parent.hotkey.UnSet("HOTKEY", self.parent.hFrame) self.parent.applyHotKey() elif selected == menuItemsStore.getRef("ENVIRONMENT"): d = setting_dialog.settingDialog("environment_dialog") d.Initialize() d.Show() elif selected == menuItemsStore.getRef("HELP"): if os.path.exists("./readme.txt"): subprocess.Popen("start ./readme.txt", shell=True) else: dialog(_("ヘルプ"), _("ヘルプファイルが見つかりません。")) elif selected == menuItemsStore.getRef("CHECK_UPDATE"): update.checkUpdate() elif selected == menuItemsStore.getRef("VERSION_INFO"): versionDialog.versionDialog()
def OnMenuSelect(self, event): """メニュー項目が選択されたときのイベントハンドら。""" #ショートカットキーが無効状態のときは何もしない if not self.parent.shortcutEnable: event.Skip() return selected = event.GetId() #メニュー識別しの数値が出る if selected == menuItemsStore.getRef("FILE_OPEN"): dialog = views.mkOpenDialog.Dialog() dialog.Initialize(0) #0=ファイルダイアログ rtnCode = dialog.Show() if rtnCode == dialog.PLAYLIST: globalVars.playlist.addFiles([dialog.GetValue()]) elif rtnCode == dialog.QUEUE: globalVars.queue.addFiles([dialog.GetValue]) else: return elif selected == menuItemsStore.getRef("DIR_OPEN"): dialog = views.mkOpenDialog.Dialog() dialog.Initialize(1) #1=フォルダダイアログ rtnCode = dialog.Show() if rtnCode == dialog.PLAYLIST: globalVars.playlist.addFiles([dialog.GetValue()]) elif rtnCode == dialog.QUEUE: globalVars.queue.addFiles([dialog.GetValue()]) else: return elif selected == menuItemsStore.getRef("URL_OPEN"): dialog = views.mkOpenDialog.Dialog() dialog.Initialize(2) #2=URLダイアログ rtnCode = dialog.Show() if rtnCode == dialog.PLAYLIST: globalVars.playlist.addFiles([dialog.GetValue()]) elif rtnCode == dialog.QUEUE: globalVars.queue.addFiles([dialog.GetValue()]) else: return elif selected == menuItemsStore.getRef("M3U_OPEN"): m3uManager.loadM3u() elif selected == menuItemsStore.getRef("NEW_M3U8_SAVE"): m3uManager.saveM3u8() elif selected == menuItemsStore.getRef("M3U8_SAVE"): m3uManager.saveM3u8(globalVars.playlist.playlistFile) elif selected == menuItemsStore.getRef("M3U_ADD"): m3uManager.loadM3u(None, m3uManager.ADD) elif selected == menuItemsStore.getRef("M3U_CLOSE"): m3uManager.closeM3u() elif selected == menuItemsStore.getRef("EXIT"): self.Exit() #機能メニューのイベント elif selected == menuItemsStore.getRef("SET_SLEEPTIMER"): globalVars.sleepTimer.set() elif selected == menuItemsStore.getRef("SET_EFFECTOR"): effector.effector() # 操作メニューのイベント elif selected == menuItemsStore.getRef("PLAY_PAUSE"): globalVars.eventProcess.playButtonControl() elif selected == menuItemsStore.getRef("STOP"): globalVars.eventProcess.stop() elif selected == menuItemsStore.getRef("PREVIOUS_TRACK"): globalVars.eventProcess.previousBtn() elif selected == menuItemsStore.getRef("NEXT_TRACK"): globalVars.eventProcess.nextFile() elif selected == menuItemsStore.getRef("VOLUME_DEFAULT"): globalVars.eventProcess.changeVolume(vol=100) elif selected == menuItemsStore.getRef("VOLUME_UP"): globalVars.eventProcess.changeVolume(+5) elif selected == menuItemsStore.getRef("VOLUME_DOWN"): globalVars.eventProcess.changeVolume(-5) elif selected == menuItemsStore.getRef("MUTE"): globalVars.eventProcess.mute() elif selected == menuItemsStore.getRef("FAST_FORWARD"): globalVars.play.fastForward() elif selected == menuItemsStore.getRef("REWIND"): globalVars.play.rewind() elif selected == menuItemsStore.getRef("SKIP"): globalVars.eventProcess.skip(settings.getSkipInterval()[0]) elif selected == menuItemsStore.getRef("REVERSE_SKIP"): globalVars.eventProcess.skip(settings.getSkipInterval()[0], False) elif selected == menuItemsStore.getRef("SKIP_INTERVAL_INCREASE"): globalVars.eventProcess.setSkipInterval() elif selected == menuItemsStore.getRef("SKIP_INTERVAL_DECREASE"): globalVars.eventProcess.setSkipInterval(False) elif selected == menuItemsStore.getRef("REPEAT_LOOP"): globalVars.eventProcess.repeatLoopCtrl() elif selected == menuItemsStore.getRef("REPEAT_LOOP_NONE"): globalVars.eventProcess.repeatLoopCtrl(0) elif selected == menuItemsStore.getRef("RL_REPEAT"): globalVars.eventProcess.repeatLoopCtrl(1) elif selected == menuItemsStore.getRef("RL_LOOP"): globalVars.eventProcess.repeatLoopCtrl(2) elif selected == menuItemsStore.getRef("SHUFFLE"): globalVars.eventProcess.shuffleSw() elif selected == menuItemsStore.getRef("EXAMPLE"): d = mkDialog.Dialog() d.Initialize("テスト", "これはテストです。", ("テ", "ス", "ト")) r = d.Show() print(r)
def OnMenuSelect(self, event): """メニュー項目が選択されたときのイベントハンドら。""" #ショートカットキーが無効状態のときは何もしない if not self.parent.shortcutEnable: event.Skip() return selected = event.GetId() #メニュー識別しの数値が出る if selected == menuItemsStore.getRef("FILE_OPEN"): dialog = views.mkOpenDialog.Dialog() dialog.Initialize(0) #0=ファイルダイアログ rtnCode = dialog.Show() if rtnCode == dialog.PLAYLIST: globalVars.playlist.addFiles([dialog.GetValue()]) elif rtnCode == dialog.QUEUE: globalVars.queue.addFiles([dialog.GetValue]) else: return elif selected == menuItemsStore.getRef("DIR_OPEN"): dialog = views.mkOpenDialog.Dialog() dialog.Initialize(1) #1=フォルダダイアログ rtnCode = dialog.Show() if rtnCode == dialog.PLAYLIST: globalVars.playlist.addFiles([dialog.GetValue()]) elif rtnCode == dialog.QUEUE: globalVars.queue.addFiles([dialog.GetValue()]) else: return elif selected == menuItemsStore.getRef("URL_OPEN"): dialog = views.mkOpenDialog.Dialog() dialog.Initialize(2) #2=URLダイアログ rtnCode = dialog.Show() if rtnCode == dialog.PLAYLIST: globalVars.playlist.addFiles([dialog.GetValue()]) elif rtnCode == dialog.QUEUE: globalVars.queue.addFiles([dialog.GetValue()]) else: return elif selected == menuItemsStore.getRef("M3U_OPEN"): m3uManager.loadM3u() elif selected == menuItemsStore.getRef("NEW_M3U8_SAVE"): m3uManager.saveM3u8() elif selected == menuItemsStore.getRef("M3U8_SAVE"): m3uManager.saveM3u8(globalVars.playlist.playlistFile) elif selected == menuItemsStore.getRef("M3U_ADD"): m3uManager.loadM3u(None, m3uManager.ADD) elif selected == menuItemsStore.getRef("M3U_CLOSE"): m3uManager.closeM3u() elif selected == menuItemsStore.getRef("EXIT"): self.Exit() #機能メニューのイベント elif selected == menuItemsStore.getRef("SET_SLEEPTIMER"): globalVars.sleepTimer.set() elif selected == menuItemsStore.getRef("SET_EFFECTOR"): effector.effector() elif selected == menuItemsStore.getRef("SEND_REGIST"): shortCut = os.environ[ "APPDATA"] + "\\Microsoft\\Windows\\SendTo\\" + _( "lampへ送る.lnk") ws = win32com.client.Dispatch("wscript.shell") scut = ws.CreateShortcut(shortCut) scut.TargetPath = sys.argv[0] scut.Save() dialog(_("送るメニューの登録が完了しました。送るメニューから「SOCで文字認識を開始」で実行できます。"), _("完了")) # 操作メニューのイベント elif selected == menuItemsStore.getRef("PLAY_PAUSE"): globalVars.eventProcess.playButtonControl() elif selected == menuItemsStore.getRef("STOP"): globalVars.eventProcess.stop() elif selected == menuItemsStore.getRef("PREVIOUS_TRACK"): globalVars.eventProcess.previousBtn() elif selected == menuItemsStore.getRef("NEXT_TRACK"): globalVars.eventProcess.nextFile() elif selected == menuItemsStore.getRef("VOLUME_DEFAULT"): globalVars.eventProcess.changeVolume(vol=100) elif selected == menuItemsStore.getRef("VOLUME_UP"): globalVars.eventProcess.changeVolume(+5) elif selected == menuItemsStore.getRef("VOLUME_DOWN"): globalVars.eventProcess.changeVolume(-5) elif selected == menuItemsStore.getRef("MUTE"): globalVars.eventProcess.mute() elif selected == menuItemsStore.getRef("FAST_FORWARD"): globalVars.play.fastForward() elif selected == menuItemsStore.getRef("REWIND"): globalVars.play.rewind() elif selected == menuItemsStore.getRef("SKIP"): globalVars.eventProcess.skip(settings.getSkipInterval()[0]) elif selected == menuItemsStore.getRef("REVERSE_SKIP"): globalVars.eventProcess.skip(settings.getSkipInterval()[0], False) elif selected == menuItemsStore.getRef("SKIP_INTERVAL_INCREASE"): globalVars.eventProcess.setSkipInterval() elif selected == menuItemsStore.getRef("SKIP_INTERVAL_DECREASE"): globalVars.eventProcess.setSkipInterval(False) elif selected == menuItemsStore.getRef("REPEAT_LOOP"): globalVars.eventProcess.repeatLoopCtrl() elif selected == menuItemsStore.getRef("REPEAT_LOOP_NONE"): globalVars.eventProcess.repeatLoopCtrl(0) elif selected == menuItemsStore.getRef("RL_REPEAT"): globalVars.eventProcess.repeatLoopCtrl(1) elif selected == menuItemsStore.getRef("RL_LOOP"): globalVars.eventProcess.repeatLoopCtrl(2) elif selected == menuItemsStore.getRef("SHUFFLE"): globalVars.eventProcess.shuffleSw() elif selected == menuItemsStore.getRef("EXAMPLE"): d = mkDialog.Dialog() d.Initialize("テスト", "これはテストです。", ("テ", "ス", "ト")) r = d.Show()