1

Тема: История

Предлагаю радикально переработать истории открытых файлов/URL.

Что не устраивает
1. Зависимость количества запомненных позиций от количества отображаемых в меню. Если нужна длинная история, то меню не вмещается в экран. Да и вообще сделать длинную историю сейчас нельзя.
2. Не запоминается название, видим лишь непонятный урл.
3. Лично мне хотелось бы общей истории в виде одного файла, а не как сейчас.
4. Нет выборочного удаления из истории.

Идеи
1. Помнить единую историю для фиксированного количества файлов и URL (например 200).
2. Опция количество файлов будет влиять только на отображение в меню.
3. Специальное окно для управления историей (выбор, удаление, фильтр и т.д).
4. Историю хранить в файле history.json рядом с файлом default.mpcpl.
5. Пишем в историю все что необходимо, но используем согласно настройкам.

Структура history.json (в разработке).
Для каждого пункта истории будет своя запись содержащая следующие поля:
1. Путь к файлу или URL. Для YouTube URL страницы или плейлиста.
2. Название (при наличии).
3. Время открытия в формате UTC.
4. Позиция просмотра (если известна длительность). Для DVD свой формат записи.
5. Номер выбранной аудио-дорожки (если более одной).
6. Номер выбранных субтитров (если имеются).

Естественно это планы на неопределенное будущее.

Добавлено: 2017-08-27 09:29:11

PS: Формат JSON выбран по причине наличия в нашем проекте библиотеки RapidJSON. Можно сохранять историю в формате INI, но тогда придеться добавлять библиотеку simpleini, т.к. системные фичи ужасны и самому изобретать велосипед не хочется. Кстати, simpleini Я уже успешно прикручивал (хотел использовать для основных настроек).
А вообще еще есть разные нюансы, связанные с быстрой записью и параллельным чтением, но об этом пока рано говорить.

2

Re: История

Главный вопрос - для чего все это, что сейчас не устраивает ??

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

3

Re: История

Добавил.

4

Re: История

Всячески поддерживаю. На самом деле достаточно удобно, особенно пункты "5. Номер выбранной аудио-дорожки (если более одной)." и "6. Номер выбранных субтитров (если имеются)."
Кстати все это есть в линуксовом mpv, он хранит историю в виде пачки файлов в подпапке своих настроек. Он даже размеры окошка и т.п. запоминает smile.

5

Re: История

Ну вообще то номер аудио дорожки и субтитров и так уже запоминается ))

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

6

Re: История

Семеееен-семеныч... ^_^. Но все равно идея неплохая, стоит делать переработку истории.

7

Re: История

V0lt пишет:

PS: Формат JSON выбран по причине наличия в нашем проекте библиотеки RapidJSON. Можно сохранять историю в формате INI, но тогда придеться добавлять библиотеку simpleini, т.к. системные фичи ужасны и самому изобретать велосипед не хочется.

а рассматривалась ли идея хранения настроек портативной версии плеера в формате json?

Win8.1 x64 Pro | i3-6100 + AXP-200R | GA-Z170M-D3H DDR3 | GTX 1060 Aero ITX | 8Gb RAM | Seasonic SSR-650FX | Benq GW2760

8

Re: История

z_mashine пишет:

а рассматривалась ли идея хранения настроек портативной версии плеера в формате json?

Можно сказать что нет, т.к. смысла никакого.

9

Re: История

V0lt пишет:

Можно сказать что нет, т.к. смысла никакого.

ну так а историю пихать в json есть же смысл?

Win8.1 x64 Pro | i3-6100 + AXP-200R | GA-Z170M-D3H DDR3 | GTX 1060 Aero ITX | 8Gb RAM | Seasonic SSR-650FX | Benq GW2760

10

Re: История

Я вот как-то тоже против придумывания новых файлов. Есть либо реестр либо .ini файл с настройками, там все храниться. Пусть так все и останется.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

11

Re: История

z_mashine пишет:

ну так а историю пихать в json есть же смысл?

Смыла в JSON для истории тоже особо нет, просто есть парсер-ридер готовый. Сейчас Я больше склоняюсь к записи в стиле INI.