From 0a5f4888afd478f0bae06c784ae4e900e91b30e0 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 21 Feb 2010 20:19:58 +0000 Subject: some engine improvements git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1562 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Engines/mplayer/mplayerengine.cpp | 16 +++++-- src/plugins/Engines/mplayer/mplayerengine.h | 2 +- src/qmmp/inputsource.cpp | 11 +++++ src/qmmp/inputsource.h | 3 ++ src/qmmp/qmmpaudioengine.cpp | 65 +++++++++++++++++++++++-- src/qmmp/qmmpaudioengine.h | 1 + src/qmmp/soundcore.cpp | 13 +++-- src/qmmpui/mediaplayer.cpp | 20 +++++--- src/ui/mainwindow.cpp | 1 - src/ui/translations/qmmp_cs.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_de.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_hu.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_it.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_lt.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_pl_PL.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_pt_BR.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_ru.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_tr.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_uk_UA.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_zh_CN.ts | 68 +++++++++++++-------------- src/ui/translations/qmmp_zh_TW.ts | 68 +++++++++++++-------------- 21 files changed, 521 insertions(+), 427 deletions(-) (limited to 'src') diff --git a/src/plugins/Engines/mplayer/mplayerengine.cpp b/src/plugins/Engines/mplayer/mplayerengine.cpp index bf315c2eb..fec80a46e 100644 --- a/src/plugins/Engines/mplayer/mplayerengine.cpp +++ b/src/plugins/Engines/mplayer/mplayerengine.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -120,11 +120,21 @@ bool MplayerEngine::enqueue(InputSource *source) } if(!supports) return FALSE; - source->deleteLater(); + if(m_process->state() == QProcess::NotRunning) m_url = url; else - m_files.enqueue(url); + { + if(source->isQueued()) + m_files.enqueue(url); + else + { + stop(); + m_url = url; + start(); + } + } + source->deleteLater(); return TRUE; } diff --git a/src/plugins/Engines/mplayer/mplayerengine.h b/src/plugins/Engines/mplayer/mplayerengine.h index cc6b12d16..bd34b535c 100644 --- a/src/plugins/Engines/mplayer/mplayerengine.h +++ b/src/plugins/Engines/mplayer/mplayerengine.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qmmp/inputsource.cpp b/src/qmmp/inputsource.cpp index c26322a29..ac81b54e6 100644 --- a/src/qmmp/inputsource.cpp +++ b/src/qmmp/inputsource.cpp @@ -31,6 +31,7 @@ InputSource::InputSource(const QString &source, QObject *parent) : QObject(parent) { m_url = source; + m_queued = TRUE; } const QString InputSource::url() @@ -38,6 +39,16 @@ const QString InputSource::url() return m_url; } +void InputSource::setQueued(bool queued) +{ + m_queued = queued; +} + +bool InputSource::isQueued() +{ + return m_queued; +} + // static methods QList *InputSource::m_factories = 0; QStringList InputSource::m_files; diff --git a/src/qmmp/inputsource.h b/src/qmmp/inputsource.h index 7eb38a9f3..0e3de0cf3 100644 --- a/src/qmmp/inputsource.h +++ b/src/qmmp/inputsource.h @@ -39,6 +39,8 @@ public: virtual bool initialize() = 0; virtual bool isReady() = 0; const QString url(); + void setQueued(bool queued); + bool isQueued(); static InputSource *create(const QString &url, QObject *parent = 0); /*! @@ -55,6 +57,7 @@ signals: private: QString m_url; + bool m_queued; static void checkFactories(); static QList *m_factories; static QStringList m_files; diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp index 79fc9cbd5..abd30cccf 100644 --- a/src/qmmp/qmmpaudioengine.cpp +++ b/src/qmmp/qmmpaudioengine.cpp @@ -56,6 +56,7 @@ QmmpAudioEngine::QmmpAudioEngine(QObject *parent) updateReplayGainSettings(); reset(); m_instance = this; + m_skip = FALSE; } QmmpAudioEngine::~QmmpAudioEngine() @@ -99,7 +100,7 @@ bool QmmpAudioEngine::play() bool QmmpAudioEngine::enqueue(InputSource *source) { mutex()->lock(); - if(m_decoder && m_decoder->nextURL() == source->url()) + if(m_decoder && source->isQueued() && m_decoder->nextURL() == source->url()) { delete source; m_next = TRUE; @@ -132,9 +133,25 @@ bool QmmpAudioEngine::enqueue(InputSource *source) delete decoder; return FALSE; } + + while(!m_decoders.isEmpty() && !source->isQueued()) + { + Decoder *d = m_decoders.dequeue(); + m_inputs.take(d)->deleteLater (); + delete d; + } + m_decoders.enqueue(decoder); m_inputs.insert(decoder, source); source->setParent(this); + + if(isRunning() && !source->isQueued()) //source should be played immediately + { + mutex()->lock(); + m_skip = TRUE; + mutex()->unlock(); + } + return TRUE; } @@ -249,7 +266,6 @@ void QmmpAudioEngine::pause() m_output->recycler()->cond()->wakeAll(); m_output->recycler()->mutex()->unlock(); } - } void QmmpAudioEngine::stop() @@ -384,8 +400,49 @@ void QmmpAudioEngine::run() m_output_at = 0; } - len = m_decoder->read((char *)(m_output_buf + m_output_at), - QMMP_BUFFER_SIZE - m_output_at); + if(m_skip) + { + m_skip = FALSE; + m_output->recycler()->mutex()->lock (); + m_output->recycler()->clear(); + m_output->recycler()->mutex()->unlock (); + m_output_at = 0; + if(!m_decoders.isEmpty()) + { + m_inputs.take(m_decoder)->deleteLater (); + delete m_decoder; + m_decoder = m_decoders.dequeue(); + m_replayGain->setReplayGainInfo(m_decoder->replayGainInfo()); + //use current output if possible + if(m_decoder->audioParameters() == m_ap) + { + StateHandler::instance()->dispatch(Qmmp::Stopped); //fake stop/start cycle + StateHandler::instance()->dispatch(Qmmp::Buffering); + StateHandler::instance()->dispatch(Qmmp::Playing); + m_output->seek(0); //reset counter + } + else + { + m_output->mutex()->lock(); + m_output->stop(); + m_output->mutex()->unlock(); + cond()->wakeAll(); + m_output->recycler()->mutex()->lock (); + m_output->recycler()->cond()->wakeAll(); + m_output->recycler()->mutex()->unlock(); + m_output->wait(); + delete m_output; + if((m_output = createOutput(m_decoder))) + m_output->start(); + else + m_done = TRUE; + } + mutex()->unlock(); + sendMetaData(); + } + } + + len = m_decoder->read((char *)(m_output_buf + m_output_at), QMMP_BUFFER_SIZE - m_output_at); if (len > 0) { diff --git a/src/qmmp/qmmpaudioengine.h b/src/qmmp/qmmpaudioengine.h index 019088d93..ca428f4b7 100644 --- a/src/qmmp/qmmpaudioengine.h +++ b/src/qmmp/qmmpaudioengine.h @@ -78,6 +78,7 @@ private: bool m_useEq; bool m_eqEnabled; bool m_done, m_finish, m_user_stop; + bool m_skip; uint m_bks; qint64 m_totalTime, m_seekTime; qint64 m_output_at; diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp index 35654581f..482389aef 100644 --- a/src/qmmp/soundcore.cpp +++ b/src/qmmp/soundcore.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2009 by Ilya Kotov * + * Copyright (C) 2006-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -77,14 +77,15 @@ SoundCore::~SoundCore() bool SoundCore::play(const QString &source, bool queue) { - if(!queue) + /*if(!queue) { stop(); qApp->processEvents(QEventLoop::ExcludeUserInputEvents); - } + }*/ MetaDataManager::instance(); //create metadata manager InputSource *s = InputSource::create(source, this); + s->setQueued(queue); m_pendingSources.append(s); if(state() == Qmmp::Stopped) m_handler->dispatch(Qmmp::Buffering); @@ -251,6 +252,11 @@ bool SoundCore::enqueue(InputSource *s) } else { + if(!s->isQueued()) + { + stop(); + qApp->processEvents(QEventLoop::ExcludeUserInputEvents); + } //current engine doesn't support this stream, trying to find another AbstractEngine *engine = new QmmpAudioEngine(this); //internal engine if(!engine->enqueue(s)) @@ -261,7 +267,6 @@ bool SoundCore::enqueue(InputSource *s) if(!engine) { - QList factories = *AbstractEngine::factories(); foreach(EngineFactory *f, *AbstractEngine::factories()) { engine = f->create(this); //engine plugin diff --git a/src/qmmpui/mediaplayer.cpp b/src/qmmpui/mediaplayer.cpp index 35f52e6e0..c77fd1a09 100644 --- a/src/qmmpui/mediaplayer.cpp +++ b/src/qmmpui/mediaplayer.cpp @@ -74,17 +74,25 @@ bool MediaPlayer::isRepeatable() const void MediaPlayer::play() { + QString s; m_pl_manager->currentPlayList()->doCurrentVisibleRequest(); + if(m_pl_manager->currentPlayList()->count() > 0) + s = m_pl_manager->currentPlayList()->currentItem()->url(); + if (m_core->state() == Qmmp::Paused) { - m_core->pause(); - return; + if(m_core->url() == s) + { + m_core->pause(); + return; + } + else + { + stop(); + qApp->processEvents(); + } } - if (m_pl_manager->currentPlayList()->count() == 0) - return; - - QString s = m_pl_manager->currentPlayList()->currentItem()->url(); if (s.isEmpty()) { m_nextUrl.clear(); diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index b43c65aaf..d021e4335 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -146,7 +146,6 @@ void MainWindow::play() void MainWindow::replay() { - stop(); m_pl_manager->activatePlayList(m_pl_manager->selectedPlayList()); play(); } diff --git a/src/ui/translations/qmmp_cs.ts b/src/ui/translations/qmmp_cs.ts index a333a626c..d56bcad78 100644 --- a/src/ui/translations/qmmp_cs.ts +++ b/src/ui/translations/qmmp_cs.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Výběr adresáře - + Select one or more files to open Vyberte jeden či více souborů k otevření - + &Play Pře&hrát - + X X - + &Pause Pau&za - + C C - + &Stop &Stop - + V V - + &Previous &Předchozí - + Z Z - + &Next &Další - + B B - + &Jump To File Přeskočit na soubo&r - + J J - + &Settings &Nastavení - + Ctrl+P Ctrl+P - + &About O &aplikaci - + &Exit U&končit - + Ctrl+Q Ctrl+Q - - + + Playlist Files Seznamy skladeb - + Open Playlist Načíst seznam skladeb - + Save Playlist Uložit seznam skladeb - + Space Mezerník - + &About Qt O knihovně &Qt - + &Play/Pause &Přehrát/Pauza - + All Supported Bitstreams Všechny podporované formáty - + &Repeat Track &Opakovat stopu - + &Shuffle Za&míchat - + R O - + Ctrl+R Ctrl+R - + S M - + &Repeat Playlist &Opakovat seznam skladeb - + Tools Nástroje diff --git a/src/ui/translations/qmmp_de.ts b/src/ui/translations/qmmp_de.ts index 9001e9014..3242ee9e3 100644 --- a/src/ui/translations/qmmp_de.ts +++ b/src/ui/translations/qmmp_de.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Verzeichnis wählen - + Select one or more files to open Dateien hinzufügen - + &Play &Wiedergabe - + X X - + &Pause &Pause - + C C - + &Stop &Stopp - + V V - + &Previous &Vorheriger Titel - + Z Z - + &Next &Nächster Titel - + B B - + &Jump To File Springe zu &Titel - + J J - + &Settings &Einstellungen - + Ctrl+P Strg+P - + &About Ü&ber - + &Exit Be&enden - + Ctrl+Q Strg+Q - - + + Playlist Files Wiedergabelisten - + Open Playlist Wiedergabeliste öffnen - + Save Playlist Wiedergabeliste speichern - + Space Leertaste - + &About Qt Übe&r Qt - + &Play/Pause Wieder&gabe/Pause - + All Supported Bitstreams Alle unterstützten Formate - + &Repeat Track Tite&l wiederholen - + &Shuffle &Zufallswiedergabe - + R R - + Ctrl+R Strg+R - + S S - + &Repeat Playlist W&iedergabeliste wiederholen - + Tools Werkzeuge diff --git a/src/ui/translations/qmmp_hu.ts b/src/ui/translations/qmmp_hu.ts index 6d48c0d82..5ace064e5 100644 --- a/src/ui/translations/qmmp_hu.ts +++ b/src/ui/translations/qmmp_hu.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Válassz egy könyvtárat - + All Supported Bitstreams Minden támogatott bitráta - + Select one or more files to open Válassz egy vagy több fájlat megnyitásra - + &Play &Lejátszás - + X X - + &Pause &Szünet - + C C - + &Stop &Megállítás - + V V - + &Previous &Előző - + Z Z - + &Next &Következő - + B B - + &Play/Pause &Lejátszás/Szünet - + Space Szóköz - + &Repeat Playlist Lista &ismétlése - + &Repeat Track Számok i&smétlése - + &Shuffle &Véletlenszerű - + R - + Ctrl+R Crtl+R - + S S - + &Jump To File &Ugrás fájlra - + J J - + Tools Eszközök - + &Settings &Beállítások - + Ctrl+P Ctrl+P - + &About &Névjegy - + &About Qt N&évjegy: Qt - + &Exit &Kilépés - + Ctrl+Q Ctrl+Q - - + + Playlist Files Lejátszási lista fájl - + Open Playlist Lista megnyitása - + Save Playlist Lista mentése diff --git a/src/ui/translations/qmmp_it.ts b/src/ui/translations/qmmp_it.ts index 71ae3fe44..62e8106fc 100644 --- a/src/ui/translations/qmmp_it.ts +++ b/src/ui/translations/qmmp_it.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Scegliere una cartella - + Select one or more files to open Seleziona uno o più brani da aprire - + &Play &Esegui - + X X - + &Pause &Pausa - + C C - + &Stop &Arresta - + V V - + &Previous &Precedente - + Z Z - + &Next &Successivo - + B B - + &Jump To File &Vai al brano - + J J - + &Settings &Configurazione - + Ctrl+P Ctrl+P - + &Exit &Esci - + Ctrl+Q Ctrl+Q - + Open Playlist Apri lista di brani - + Save Playlist Salva lista di brani - + &About &Informazioni - - + + Playlist Files Brani della lista - + Space Spazio - + &About Qt &Informazioni su Qt - + &Play/Pause &Esegui / Pausa - + All Supported Bitstreams Elenco di tutti i tipi di flusso accettati - + &Repeat Track &Ripeti brano - + &Shuffle &Ordine casuale - + R R - + Ctrl+R Ctrl+R - + S S - + &Repeat Playlist &Ripeti lista brani - + Tools Strumenti diff --git a/src/ui/translations/qmmp_lt.ts b/src/ui/translations/qmmp_lt.ts index 3681e0030..f1c7ffd6b 100644 --- a/src/ui/translations/qmmp_lt.ts +++ b/src/ui/translations/qmmp_lt.ts @@ -955,168 +955,168 @@ MainWindow - + Choose a directory Pasirinkite aplanką - + Select one or more files to open Pasirinkite vieną ar kelias bylas atvėrimui - + &Play &Groti - + X - + &Pause &Pristabdyti - + C - + &Stop &Sustabdyti - + V - + &Previous &Ankstesnis - + Z - + &Next &Sekantis - + B - + &Jump To File &Pereiti prie bylos - + J - + &Settings &Nustatymai - + Ctrl+P - + &Exit &Išeiti - + Ctrl+Q - + Open Playlist Atverti grojaraštį - + Save Playlist Išsaugoti grojaraštį - + &About &Apie - - + + Playlist Files Grojaraščio bylos - + Space - + &About Qt &Apie Qt - + &Play/Pause &Groti/Pristabdyti - + All Supported Bitstreams Palaikomi bylų tipai - + &Repeat Track &Kartoti takelį - + &Shuffle &Atsitiktine tvarka - + R - + Ctrl+R - + S - + &Repeat Playlist &Kartoti grojaraštį - + Tools Įrankiai diff --git a/src/ui/translations/qmmp_pl_PL.ts b/src/ui/translations/qmmp_pl_PL.ts index 6ec29a893..a11639113 100644 --- a/src/ui/translations/qmmp_pl_PL.ts +++ b/src/ui/translations/qmmp_pl_PL.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Wybierz katalog - + Select one or more files to open Wybierz jeden lub więcej plików do otwarcia - + &Play &Odtwarzaj - + X X - + &Pause &Wstrzymaj - + C C - + &Stop &Zatrzymaj - + V V - + &Previous &Poprzedni - + Z Z - + &Next &Następny - + B B - + &Jump To File &Skocz do pliku - + J J - + &Settings &Ustawienia - + Ctrl+P Ctrl+P - + &Exit &Wyjście - + Ctrl+Q Ctrl+Q - + Open Playlist Otwórz listę odtwarzania - + Save Playlist Zapisz listę odtwarzania - + &About &O programie - - + + Playlist Files Pliki listy odtwarzania - + Space - + &About Qt &O Qt - + &Play/Pause &Odtwarzaj/Wstrzymaj - + All Supported Bitstreams Wszystkie wspierane formaty - + &Repeat Track &Powtórz utwór - + &Shuffle &Losowo - + R - + Ctrl+R - + S - + &Repeat Playlist Powtó&rz listę odtwarzania - + Tools Narzędzia diff --git a/src/ui/translations/qmmp_pt_BR.ts b/src/ui/translations/qmmp_pt_BR.ts index 634d4f508..aca2cd51f 100644 --- a/src/ui/translations/qmmp_pt_BR.ts +++ b/src/ui/translations/qmmp_pt_BR.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Escolher o diretorio - + Select one or more files to open Selecionar um ou mais arquivos - + &Play Tocar - + X - + &Pause Pausar - + C - + &Stop Parar - + V - + &Previous Anterior - + Z - + &Next Próximo - + B - + &Jump To File Pular para arquivo - + J - + &Settings Configurações - + Ctrl+P - + &Exit Sair - + Ctrl+Q - + Open Playlist Abrir Playlist - + Save Playlist Salvar Playlist - + &About &Sobre - - + + Playlist Files ФArquivos de lista de músicas - + Space - + &About Qt - + &Play/Pause - + All Supported Bitstreams - + &Repeat Track - + &Shuffle - + R - + Ctrl+R - + S - + &Repeat Playlist - + Tools diff --git a/src/ui/translations/qmmp_ru.ts b/src/ui/translations/qmmp_ru.ts index 325e721dc..18f2680ec 100644 --- a/src/ui/translations/qmmp_ru.ts +++ b/src/ui/translations/qmmp_ru.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Выберите директорию - + Select one or more files to open Выберите один или несколько файлов - + &Play &Воспроизвести - + X - + &Pause &Приостановить - + C - + &Stop &Стоп - + V - + &Previous &Предыдущий фрагмент - + Z - + &Next &Следующий фрагмент - + B - + &Jump To File &Перейти к файлу - + J - + &Settings &Настройки - + Ctrl+P - + &Exit &Выход - + Ctrl+Q - + Open Playlist Открыть список - + Save Playlist Сохранить список - + &About &О программе - - + + Playlist Files Файлы списков - + Space - + &About Qt &О библиотеке Qt - + &Play/Pause &Воспр/приост - + All Supported Bitstreams Все форматы - + &Repeat Track &Повторять трек - + &Shuffle &В случайном порядке - + R - + Ctrl+R - + S - + &Repeat Playlist &Повторять список - + Tools Сервис diff --git a/src/ui/translations/qmmp_tr.ts b/src/ui/translations/qmmp_tr.ts index 5950eccec..16f69318f 100644 --- a/src/ui/translations/qmmp_tr.ts +++ b/src/ui/translations/qmmp_tr.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Bir dizin seçin - + Select one or more files to open Açmak için bir yada daha çok dosya seçin - + &Play &Çal - + X X - + &Pause &Duraklat - + C C - + &Stop &Durdur - + V V - + &Previous &Önceki - + Z Z - + &Next &Sonraki - + B B - + &Jump To File &Parçaya Git - + J J - + &Settings &Ayarlar - + Ctrl+P Ctrl+P - + &Exit &Çıkış - + Ctrl+Q Ctrl+Q - + Open Playlist Çalma Listesini Aç - + Save Playlist Çalma Listesini Kaydet - + &About &Hakkında - - + + Playlist Files Çalma Listesi Dosyaları - + Space Boşluk - + &About Qt &Qt Hakkında - + &Play/Pause &Oynat/Duraklat - + All Supported Bitstreams Tüm Desteklenen Bitstreamler - + &Repeat Track &Parçayı Yinele - + &Shuffle &Rastgele - + R R - + Ctrl+R Ctrl+R - + S S - + &Repeat Playlist &Çalma Listesini Yinele - + Tools Araçlar diff --git a/src/ui/translations/qmmp_uk_UA.ts b/src/ui/translations/qmmp_uk_UA.ts index 7ba4672ce..d49b74909 100644 --- a/src/ui/translations/qmmp_uk_UA.ts +++ b/src/ui/translations/qmmp_uk_UA.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory Виберіть теку - + Select one or more files to open Виберіть один чи кілька файлів - + &Play &Відтворити - + X - + &Pause &Пауза - + C - + &Stop &Стоп - + V - + &Previous &Назад - + Z - + &Next &Вперед - + B - + &Jump To File &Перейти до файлу - + J - + &Settings &Налаштування - + Ctrl+P - + &Exit &Вихід - + Ctrl+Q - + Open Playlist Відкрити список - + Save Playlist Зберегти список - + &About &Про програму - - + + Playlist Files Файли списків - + Space - + &About Qt &Про Qt - + &Play/Pause &Грати/Пауза - + All Supported Bitstreams Усі формати - + &Repeat Track &Повторити трек - + &Shuffle &Перемішати - + R - + Ctrl+R - + S - + &Repeat Playlist &Повторити список - + Tools Утиліти diff --git a/src/ui/translations/qmmp_zh_CN.ts b/src/ui/translations/qmmp_zh_CN.ts index 2030c6737..161f59c23 100644 --- a/src/ui/translations/qmmp_zh_CN.ts +++ b/src/ui/translations/qmmp_zh_CN.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory 选择一个目录 - + Select one or more files to open 选择打开一个或更多文件 - + &Play 播放(&P) - + X X - + &Pause 暂停(&P) - + C C - + &Stop 停止(&S) - + V V - + &Previous 上一曲(&P) - + Z Z - + &Next 下一曲(&N) - + B B - + &Jump To File 跳到文件(&J) - + J J - + &Settings 设置(&S) - + Ctrl+P Ctrl+P - + &Exit 退出(&E) - + Ctrl+Q Ctrl+Q - + Open Playlist 打开播放列表 - + Save Playlist 保存播放列表 - + &About 关于(&A) - - + + Playlist Files 播放列表文件 - + Space 空格 - + &About Qt 关于 Qt (&A) - + &Play/Pause 播放/暂停(&P) - + All Supported Bitstreams 支持的全部文件 - + &Repeat Track 重复音轨(&R) - + &Shuffle 乱序(&S) - + R R - + Ctrl+R Ctrl+R - + S S - + &Repeat Playlist 重复播放列表(&R) - + Tools 工具 diff --git a/src/ui/translations/qmmp_zh_TW.ts b/src/ui/translations/qmmp_zh_TW.ts index 0e57a3140..0df75fd1b 100644 --- a/src/ui/translations/qmmp_zh_TW.ts +++ b/src/ui/translations/qmmp_zh_TW.ts @@ -954,168 +954,168 @@ MainWindow - + Choose a directory 選取一個目錄 - + Select one or more files to open 選取開啟一個或更多檔案 - + &Play 播放(&P) - + X X - + &Pause 暫停(&P) - + C C - + &Stop 停止(&S) - + V V - + &Previous 上一曲(&P) - + Z Z - + &Next 下一曲(&N) - + B B - + &Jump To File 跳到檔案(&J) - + J J - + &Settings 設定(&S) - + Ctrl+P Ctrl+P - + &Exit 結束(&E) - + Ctrl+Q Ctrl+Q - + Open Playlist 開啟播放清單 - + Save Playlist 儲存播放清單 - + &About 關於(&A) - - + + Playlist Files 播放清單檔案 - + Space 空格 - + &About Qt 關於 Qt (&A) - + &Play/Pause 播放/暫停(&P) - + All Supported Bitstreams 支援的全部檔案 - + &Repeat Track 重復音軌(&R) - + &Shuffle 亂序(&S) - + R R - + Ctrl+R Ctrl+R - + S S - + &Repeat Playlist 重復播放清單(&R) - + Tools 工具 -- cgit v1.2.3-13-gbd6f