Open GoogleCodeExporter opened 8 years ago
Согласен, имеет место быть бага. Работы
ведутся.
Original comment by drmoriar...@gmail.com
on 6 May 2009 at 6:39
Кстати, здесь же, наверно, можно учесть
такую особенность: сейчас, когда в одной
папке лежат и cue, и образ, в плейлист
добавляется этот образ потреково и
дополнительно он же целиком.
Cuberok v 0.0.10
build: 19:37:36 May 18 2009
Qt: 4.5.1 X11
Current plugin: Phonon
Available plugins are:
Null engine
GStreamer
Phonon
Gentoo Linux
Original comment by nomen.in...@gmail.com
on 18 May 2009 at 5:23
иногда при этом плеер еще и крашится или
зависает
Original comment by qdiesel....@gmail.com
on 26 May 2009 at 8:26
Насколько я понимаю, просить стоит здесь.
В некотрых cue-файлах указан образ, который
на самом деле не существует. Очень часто
в скачанной раздаче лежат либо два cue (в
одном указан образ CDImage.wav, в другом -
CDImage.ape), либо один, но который указывает на
CDImage,wav, хотя в раздаче лежит
ape или flac.
Предлагаю детектить такие ситуации и если
файл образа, который указан в cue, не
существует, показывать пользователю
диалог, типа
CUE $имя_файла.cue указывает на образ
$имя_образа.wav, который не существует. Что
делать?
[не загружать cue] [указать другой файл]
если выбрано "указать другой файл" то тут
пользователю можно дополнительно
предложить
(O) исправить имя файла в cue
(_) создать второй cue-файл в той же папке с
исправленным именем файла
(_) нечего не менять и не создавать (при
следующем обращении в этому cue придётся
снова отвечать на эти вопросы
Вот как-то так :)
Original comment by nomen.in...@gmail.com
on 2 Jun 2009 at 6:45
Пора мне отдельный список фичреквестов
завести, чтобы не запутаться...
Original comment by drmoriar...@gmail.com
on 3 Jun 2009 at 6:49
Да, пожалуй, дейтвительно стоит выделить
Comment 4 в отдельный вопрос. Тем более, что
остаются непонятки с ним.
так что, извините, что подвортил топик,
считаем, что этого фичереквеста в нём не
было.
http://code.google.com/p/cuberok/issues/detail?id=43
Original comment by nomen.in...@gmail.com
on 3 Jun 2009 at 7:23
This issue was closed by r244.
Original comment by drmoriar...@gmail.com
on 7 Jul 2009 at 7:28
Перетаскивал в плейлист фот такую папку,
добавились флаки и лог
01 - Reise, Reise.flac
02 - Mein Teil.flac
03 - Dalai Lama.flac
04 - Keine Lust.flac
05 - Los.flac
06 - Amerika.flac
07 - Moskau.flac
08 - Morgenstern.flac
09 - Stein Um Stein.flac
10 - Ohne Dich.flac
11 - Amour.flac
cover.jpg
Rammstein - Reise, Reise.cue
Rammstein - Reise, Reise.cue2tracks.log
cue не добавился и не должен был (нет файла,
на который оно указывает), картинка не
добавилась (и не должна).
Original comment by nomen.in...@gmail.com
on 7 Jul 2009 at 6:31
r247
Хочу отметить, что определение
неподдерживаемого формата файла
происходит
исключительно по расширению, и даже по
небольшому списку таковых ибо
Ибо в реале отличить музыкальный файл от
ерунды всякой может только бакэнд, а
дёргать
его на каждый из многих сотен файлов
представляется мне нерациональным.
по сему список на настоящий момент далеко
не полный и его можно дополнять:
if(suf == "jpg" ||
suf == "png" ||
suf == "txt" ||
suf == "doc" ||
suf == "log" ||
suf.startsWith("htm") ||
!suf.size() ||
!base.size())
Original comment by drmoriar...@gmail.com
on 8 Jul 2009 at 4:30
А мы точно не можем заранее, при подгрузке
бэкэнда, выяснить, какие mime-типы он
поддерживает? А потом по ним отсеивать. Я
видел, что в плагинах есть некий список.
Или в винде нереально mime-тип определить?
Насколько я понимаю, список
поддерживаемых типов всегда будет короче,
чем список неподдерживаемых )))
Вот, например, у меня есть раздача
специального издания, где в одном каталоге
лежат
DVD и mp3. Я, не особо замарачиваясь, перетащил
всю раздачу в проигрыватель и все
файлы с DVD (всякие VIDEO_TS.VOB) у меня теперь в
плейлисте ;-)
Original comment by nomen.in...@gmail.com
on 8 Jul 2009 at 5:08
емнип только у фонона есть спец функция для
определения поддерживаемых mime типов, и
та (по крайней мере в винде) работает из рук
вон косо
С другой стороны VOB содержит аудио дорожку
и банить его будет некорректно, сам видал
как кореша на компе смотрели кино, а с ноута
его же слушали :-)
Меня в существующей схеме больше всего
смущает возможность несоответствия
расширения
и типа. Я рад бы переделать, но как?
Original comment by drmoriar...@gmail.com
on 8 Jul 2009 at 6:08
> Меня в существующей схеме больше всего
смущает возможность несоответствия
расширения
и типа.
Меня вообще этот, откровенно говоря,
виндовый способ определения типа файла
смущал
ещё когда я на винде сидел.
Я правильно понимаю, что только на gstreamer
есть потенциальная возможность
изменения списка поддерживаемых форматов?
Предлагаю наобум такой вариант (мне
нравится тем, что он расширяемый):
1. Получаем от плагина список форматов (mime),
которые он, теоретически, может играть.
Этот список может быть прошит в коде (как
сейчас, например, в том же phonon) или
оперделяться динамически, если бэкэнд это
позволяет. Это костяк.
2. В настройках плагина добавляем раздел
"поддерживаемые форматы". Здесь отображаем
список форматов, которые мы уже считаем
поддерживаемыми, с возможность удаления
элементов из этого списка. Для добавления
формата предлагаем указать музыкальный
файл, определяем его параметры и добавляем
формат этого файла в список. Естественно,
"служебные" форматы вроде *.pls, *.m3u и *.cue в
список поддерживаемых форматов
добавлять не нужно, о чём пользователя
можно предупредить прямо в окне настроек,
чтоб
не забывал.
3. при добавлении файлов в плейлист
сверяемся со списком поддерживаемых
форматов для
текущего бэкэнда.
4. при динамической смене бэкэнда файлы в
плейлисте, которые имеют неподдерживаемый
формат, делаем "серыми", они остаются в
плейлисте, но не воспроизводятся, а
пользователю ненавязчиво предлагается их
удалить из списка или выбрать другой
бэкэнд.
Вот как-то так. Мне вчера уже сказали, что
фантазия у меня слишком богатая )))
Original comment by nomen.in...@gmail.com
on 8 Jul 2009 at 6:57
btw, http://qt-apps.org/content/show.php/QFreeDesktopMime?content=86454
Original comment by nomen.in...@gmail.com
on 8 Jul 2009 at 7:01
В целом поддерживаю, однако будет проблема
с phonon, у него есть собственные бакэнды,
которые могут пропадать и появляться без
предупреждения. Придётся при каждом
запуске
мониторить список типов для него.
Original comment by drmoriar...@gmail.com
on 8 Jul 2009 at 7:12
Original comment by drmoriar...@gmail.com
on 8 Jul 2009 at 7:17
> Придётся при каждом запуске мониторить
список типов для него.
Просто интересно: каким образом? Спрашиваю
не чтобы подискутировать, я просто не
представляю. Если от фонона можно получить
используемый им бэкэнд, тогда могу
предположить...
Кстати, если уж делать таким способом, то
при добавлении файлов в плейлист можно, как
в amarok показывать всплывашку с надписью
"некоторые файлы не были добавлены в
плейлист, потому что формат считается
непоодерживаемым", только в отличие от
амарок,
полагаю, нужно добавить кнопки "показать
список недобавленных файлов" и "перейти к
настройкам поддерживаемых форматов"
Original comment by nomen.in...@gmail.com
on 8 Jul 2009 at 7:21
Для phonon получить бакэнд нельзя (или я
просто не знаю как), но можно спросить
Phonon::BackendCapabilities::isMimeTypeAvailable(mimetype) и,
предполагая, что бакенд
с прошлого запуска мог измениться,
проверять все допустимые типы на
корректность при
запуске. Что с ними делать если он окажется
некорректным я не знаю.
Теоретически может быть такая ситуация:
заполнен список эмпетрями, играет пестня,
cuberok на всём скаку закрывают. Потом из
дистриба удаляется (условно) libmad и
cuberok запускается вновь. Весь список
внезапно окажется неподдерживаемым phonon.
По поводу всплывашки отдельная песня:
Щас штатным методом работы считается
ругань в окно сообщений, значёк даже
меняется
при ошибках. Я согласен, что нередко нужна
какая-то интерактивность, или просто более
_видное_ сообщение об ошибке. Однако не могу
придумать механизм интерактивности в
общем виде...
Кнопка "отменить задание" у меня фактически
не работает, для коррекции cue образов
пришлось прокидывать специальные сигналы
в gui thread.
Есть мысли по поводу общей реализации и
механизмов?
Original comment by drmoriar...@gmail.com
on 8 Jul 2009 at 8:02
> Теоретически может быть такая ситуация:
заполнен список эмпетрями, играет пестня,
cuberok на всём скаку закрывают. Потом из
дистриба удаляется (условно) libmad и
cuberok запускается вновь. Весь список
внезапно окажется неподдерживаемым phonon.
Ну, в такой ситуации тоже можно делать
позиции "серыми" в плейлисте. Как я понимаю,
сейчас такого механизма нет, но если такой
вариант делать, то лучше наверно сразу, а не
после вынесения в плагины. Если такой
вариант невозможен в принципе, то можно
подумать ещё о чем-нибудь.
> нередко нужна какая-то интерактивность,
или просто более _видное_ сообщение об
ошибке.
Как я это вижу...
Я полагаю, что можно добавить ещё один
док-виджет, но чтобы пользователь не
управлял
им самостоятельно. Этот виджет сделать
обработчиком сообщений. Если сообщение
важное
- виджет "вылезает", отображается, например
вот так, как на каритнке, "потеснив"
существующие док-виджеты.
http://h.imagehost.org/0110/error_dialog_mockup.png
Все "неважные" сообщения добавляются в
список и просматриваются как лог по
требованию. "Важные" сообщения тоже
добавляются в список, но и отображаются
отдельно, с кнопками "закрыть", "следующее",
"предыдущее". В качестве "важного"
сообщения можно передавать не только
текст, но и готовый виджет со своими
кнопками,
например. Можно предусмотреть таймауты для
закрытия этих виджетов, если это несложно.
В итоге получается маленький такой браузер
для просмотра ошибок, который вылезает сам,
если что-то случится и прячется либо
вручную, либо по таймауту.
Недостатки: слишком "круто" и сложно;
возможно, будет некрасиво, если
пользователь как-
то по-своему расположил док-виджеты.
А про кнопку "отменить задание" я так и не
понял, что она делает ))
Original comment by nomen.in...@gmail.com
on 8 Jul 2009 at 8:48
Ща приделал следующую фичу:
Если выбрать автоматический аудио вывод,
то на вкладке "Настройка звука" можно будет
задать для любого mime предпочтительный
бакэнд. Проверки пока нету, можно и на
audiere повесить кота в мешке, и оно честно
будет пытацо запустицо.
Эту фичу в принципе можно использовать как
workaround для ape, который не играется на
ffmpeg
Интересует юзабельность этого подхода с
точки зрения пользователя.
Original comment by drmoriar...@gmail.com
on 24 Jul 2009 at 8:47
Фишка интересная, только похоже, что тип
файла, который определяет проигрыватель,
не
значится в предлагаемом списке (можно
читать как "у меня не заработало"). Если
оставить, то нужно указывать
предпочитаемый вывод, который
используется для типов, не
заданных в табличке.
В плане "юзабельность этого подхода" - фишка
может позиционироваться как "для
продвинутых пользователей", которые не
только понимают, что такое mime-type и какие у
них есть плагины вывода, но и отличают
звучание одного и того же файла на разных
движках. Тогда эти пользователи смогут,
например, заставить проигрыватель
воспроизводить
mp3 через GStreamer, который, например,
использует mad, а flac через ffmpeg, который,
например, корректнее работает с его
метаданными.
Тут важно, чтобы наличие этого функционала
не замедляло переход между треками и не
усложняло поддержку кода. Линуксоиды любят
рассказывать, что такие функции не нужны, я
же считаю, что нужны любые функции, которые
кто-то может использовать, если они не
портят программу, конечно.
========
По поводу "не заработало": у меня все файлы
играются GStreamer'ом, хотя я указал
играть mime audio/ogg через ffmpeg
$ kfile -av ~/Музыка/Король\ и\ Шут/2008\ -\ Тень\
Клоуна/09\ -\ Кода.ogg
/home/name_no/Музыка/Король и Шут/2008 - Тень
Клоуна/09 - Кода.ogg: Звуковой файл
Ogg Vorbis (audio/vorbis)
Original comment by nomen.in...@gmail.com
on 24 Jul 2009 at 10:05
а если поставить не audio/ogg а application/ogg? r279
Там ещё можно проверить так, в исходниках в
папочке QFreeDesktopMime собрать его
тестилку и запустить test interested_file
(меня самого избыточность ogg типов
напрягает)
Ещё добавлю установку движка по умолчанию
для авто...
Про продвинутых пользователей: щитаю это
направление перспективным, advanced фичи будут
Оверхеда кстати эта фича не накладывает,
ибо все бакэнды инициализируются заранее и
меняются между собой без задержки.
Original comment by drmoriar...@gmail.com
on 24 Jul 2009 at 11:32
>Ещё добавлю установку движка по умолчанию
для авто...
r280
Original comment by drmoriar...@gmail.com
on 24 Jul 2009 at 11:57
Тестик пришлось подредактировать ))))
Index: src/test.cpp
===================================================================
--- src/test.cpp (revision 278)
+++ src/test.cpp (working copy)
@@ -48,14 +48,18 @@
qDebug() << mime.fromFileName("test.h");
qDebug() << mime.description();
+ qDebug() << "Start arguments";
if (argc > 1) {
- if (QFileInfo(argv[1]).isDir()) {
- QDir dir(argv[1]);
- //dir.setFilter(QDir::Files);
- foreach (QFileInfo fileInfo, dir.entryInfoList())
- qDebug() << "-" << mime.fromFile
(fileInfo.absoluteFilePath()) << fileInfo.fileName();
- } else {
- qDebug() << "-" << mime.fromFile(argv[1]) << argv[1];
+ for (int i = 1; i < argc; i++) {
+ QString f = QString::fromLocal8Bit(argv[i]);
+ if (QFileInfo(f).isDir()) {
+ QDir dir(f);
+ //dir.setFilter(QDir::Files);
+ foreach (QFileInfo fileInfo,
dir.entryInfoList())
+ qDebug() << "-" << mime.fromFile
(fileInfo.absoluteFilePath()) << fileInfo.fileName();
+ } else {
+ qDebug() << "-" << mime.fromFile(f) << f;
+ }
}
}
Start arguments
- "audio/x-vorbis+ogg" "/home/name_no/Музыка/Король и Шут/2008
- Тень Клоуна/09 -
Кода.ogg"
- "application/x-cue" "/home/name_no/Музыка/Sex Pistols/Sex
Pistols-Flogging A Dead
Horse/Sex Pistols - Flogging A Dead Horse.cue"
Выставил "audio/x-vorbis+ogg" - сработало.
Кстати, после того, как воспользовался
тестом, заметил, что, кажется, cuberok забывает
переключиться на автовыбранный плагин при
переходе на трек, которого нет в табличке.
Похоже, что это решится само собой когда
появится "плагин по дефолту".
Например:
в табличке задано только
"audio/x-vorbis+ogg" -> FFmpeg
Запускаем проигрывтель. Cuberok играет mp3
плагином GStreamer.
Переходим на ogg-трек. Cuberok переключается на
FFmpeg.
Переходим на mp3-трек - он воспроизводится
плагином FFmpeg.
Original comment by nomen.in...@gmail.com
on 24 Jul 2009 at 12:11
Мдя...
$ test-mime./01\ Holidays\ In\ The\ Sun.flac
.............
- "audio/mpeg" "./01 Holidays In The Sun.flac"
Original comment by nomen.in...@gmail.com
on 24 Jul 2009 at 12:24
r287
Добавил экспериментальную всплывашку в
левом нижнем углу приложения. Пока туда
попадают все записи из "Сообщений".
Поскольку полноценный OSD мне не
представляется
возможным, требуется придумать как этой
штукой будет удобнее пользоваться.
Привязывать ли её к главному окну, или к
десктопу?
Ещё туда добавлю опциональную кнопку
отмены, и будет примерно следующее:
Кинул пользователь в плейлист всю домашнюю
папку, вылезло сообщение "добавление папки
такой-то", в течении десяти секунд (если
машина задохнулась от щастья такого) у
пользователя есть возможность прессануть
по батончику "отмена", и насилие над винтом
мгновенно прекратится.
Тоже самое будет для длительных операций
типа:
- полезли в инет зачем-то
- нажали пересканировать библиотеку, или
кинули туда папку гигов на ндцать
Original comment by drmoriar...@gmail.com
on 28 Jul 2009 at 7:38
Эта штука "похищает фокус" )))))
Активно работаю в консоли, cuberok на другом
рабочем столе. При смене трека
всплывашка вылезает на моём рабочем столе
и пока она не исчезнет - клавиатурный ввод
не идёт в консоль. Это на r288.
Original comment by nomen.in...@gmail.com
on 28 Jul 2009 at 12:51
r289 вроде поправил, проверил на гноме
Original comment by drmoriar...@gmail.com
on 28 Jul 2009 at 1:44
Да, это помогло от перехвата фокуса.
Теперь нужно сделать ещё одну фишку:
1. Переключаемся в окно cuberok.
2. Запускаем следующий трек. Всплывашка
появляется в углу окна cuberok
3. Переключаемся в другое окно. Всплывашка
оказывается посреди экрана и всё
загораживает )))
P.S. Предлагаю ещё так:
$ svn diff src/messagewindow.cpp src/resource.qrc
Index: src/messagewindow.cpp
===================================================================
--- src/messagewindow.cpp (revision 289)
+++ src/messagewindow.cpp (working copy)
@@ -33,7 +33,7 @@
QLabel *label = new QLabel(mes, this);
label->setWordWrap(true);
vl->addWidget(label);
- QPushButton *b = new QPushButton("X", this);
+ QPushButton *b = new QPushButton(QIcon(":/icons/edit-add.png"), "",
this);
connect(b, SIGNAL(clicked(bool)), this, SLOT(close()));
b->setMaximumSize(24, 24);
hl->addWidget(b);
Index: src/resource.qrc
===================================================================
--- src/resource.qrc (revision 289)
+++ src/resource.qrc (working copy)
@@ -61,5 +61,6 @@
<file alias="gohome.png">../images/gohome.png</file>
<file alias="back.png">../images/back.png</file>
<file alias="forward.png">../images/forward.png</file>
+ <file alias="edit-add.png">../images/edit-add.png</file>
</qresource>
</RCC>
Original comment by nomen.in...@gmail.com
on 28 Jul 2009 at 2:18
Attachments:
Круто, FFmpeg плагин играет архив rar, в котором
лежат отдельные треки mp3. Шикарно.
Original comment by nomen.in...@gmail.com
on 30 Jul 2009 at 6:21
удивлён весьма! воспроизвести не могу ни на
винде ни на lenny
Original comment by drmoriar...@gmail.com
on 30 Jul 2009 at 7:41
А жаль, потому что даже seek работает как
положено. Единственное, чего не хвататет,
так
это отображения времени:
http://a.imagehost.org/0467/screen_08.png
Ещё попробую cue для rar-файла создать, хотя
без времени, видимо, работать не
будет ))))
Original comment by nomen.in...@gmail.com
on 30 Jul 2009 at 7:49
З.Ы. отдельный issue создавать не тянет. По
поводу "можешь сам коммитить": я вчера
попробовал и сразу у нас получилась
коллизия:
http://code.google.com/p/cuberok/source/detail?r=291
http://code.google.com/p/cuberok/source/browse/trunk/src/main.cpp?
spec=svn293&r=293#195
собственно, поэтому и стараюсь присылать
патчи, а не коммитить их самостоятельно.
Original comment by nomen.in...@gmail.com
on 30 Jul 2009 at 7:52
это я вчера накосячил когда macos мучал
кстати, на макоси это дело вызывало
ошибочку (создание shared memory перед
аппликейшеном). Потом посмотрю
по-подробнее, разведу как нибудь
Original comment by drmoriar...@gmail.com
on 30 Jul 2009 at 12:01
кстати, если есть возможность, нужно
потестить на MacOS... буду весьма признателен
Original comment by drmoriar...@gmail.com
on 30 Jul 2009 at 12:46
Original issue reported on code.google.com by
Krapl...@gmail.com
on 5 May 2009 at 5:52