Qmmp - Qt-based multimedia player

Программа является аудио-плеером, написанным с использованием библиотеки Qt.
Официальная домашняя страница: https://qmmp.ylsoftware.com/
Разработка: https://sourceforge.net/projects/qmmp-dev/
Перевод: https://explore.transifex.com/qmmp-development-team/

Поддерживаемые операционные системы:
- GNU/Linux
- FreeBSD
- Microsoft Windows

Поддерживаемые форматы:
- MPEG1 layer 2/3
- Ogg Vorbis
- Ogg Opus
- Native FLAC, Ogg FLAC
- Musepack
- WavePack
- трекерные форматы (mod, s3m, it, xm и т.д.)
- ADTS AAC
- CD Audio
- WMA, Monkey's Audio (и др. форматы библиотеки FFmpeg)
- PCM WAVE (и др. форматы библиотеки libsndfile)
- midi
- SID
- форматы звука игровых консолей (AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ, VTX)

Аудио-эффекты:
- эффект BS2B
- Передискретизация
- эффекты LADSPA
- расширение стереобазы
- плавный переход между треками

Визуальные эффекты:
- визуализация projectM
- анализатор спектра

Системы вывода звука:
- OSS4 (FreeBSD)
- ALSA (Linux)
- PulseAudio
- PipeWire
- JACK
- QtMultimedia
- Icecast
- WaveOut (Win32)
- DirectSound (Win32)
- WASAPI (Win32)

Другие возможности:
- поддержка обложек XMMS и Winamp 2.x
- альтернативный пользовательский интерфейс с использованием стандартного оформления
- 10-полосный эквалайзер
- поддержка потоков MP3, Vorbis, AAC, AAC+
- MPRIS
- автоопределение съёмных устройств (с помощью UDisks)
- получение текстов песен
- просмотр обложек
- поддержка CUE
- поддержка "встроенного" CUE (для файлов FLAC, WavPack и Monkey's Audio)
- возможность использовать несколько списков воспроизведения
- автоматическое определение кодировки для cue-файлов и ShoutCast-метаданных
- поддерживаемые форматы списков воспроизведения: m3u, pls, xspf
- поддержка ReplayGain
- отправка истории прослушивания на Last.fm, Libre.fm и ListenBrainz
- поддержка CDDB
- обзор потоков
- преобразователь аудио-форматов
- запуск внешних программ при смене трека
- сканер ReplayGain
- чтение архивов (RAR и 7z)
- запись аудио
- история прослушивания
- музыкальная библиотека

Требования:
- Qt >= 6.2 (qtbase и qttools для сборки)
- tar, unzip, bzip2, gzip
- libmad
- libvorbis
- libogg
- libalsa >= 1.0.22
- taglib >= 1.12
- curl >= 7.32
- libmpg123 >= 1.13.0 (опционально)
- qtmultimedia >= 6.2 (опционально)
- flac >= 1.1.3 (опционально)
- libmpcdec >= 1.3.0 (опционально)
- jackit1 >= 0.121.0 или jackit2 >= 1.9.8 (опционально)
- soxr >= 0.1.0 (опционально)
- libxmp >= 4.2.0 (опционально)
- libsndfile >= 1.0.22 (опционально)
- wavpack >= 5.0 (опционально)
- pulseaudio >= 0.9.19 (опционально)
- pipewire >= 0.3.26 (опционально)
- ffmpeg >= 3.4 (опционально)
- libcdio >= 1.0 (опционально)
- libcdio-paranoia >= 10.2+0.90 (опционально)
- libcddb >= 1.3.1 (опционально)
- faad2 >= 2.9.2 (опционально)
- game-music-emu >= 0.6.3 (опционально)
- opus >= 1.0.2 (опционально)
- opusfile >= 0.2 (опционально)
- libWildMidi >= 0.4.1 (опционально)
- libsidplayfp >= 1.0.3 (опционально)
- libbs2b >= 3.0.0 (опционально)
- libprojectM >= 2.0.0 (опционально)
- libenca >= 1.9 (опционально)
- libarchive >= 3.2.0 (опционально)
- libshout >= 2.4.3 (опционально)
- libx11, libxcb, xorgproto (опционально)
- librcd >= 0.1.13 (опционально)
- cmake >= 3.18.0 (только для сборки)

Внимание! Для сборки Qmmp нужна утилита lrelease.

Конфигурация:
cmake ./

Сборка:
make

Установка:
make install

Если какой-либо модуль (например, Jack) не собирается, или не нужен, то вы можете отключить его командой:
cmake ./ -DUSE_JACK:BOOL=FALSE

Доступные опции:
- USE_CURL (транспортные модули);
- USE_MAD, USE_MPG123, USE_FLAC, USE_VORBIS, USE_MPC, USE_XMP, USE_SNDFILE, USE_WAVPACK, USE_FFMPEG, USE_AAC, USE_CUE,
  USE_CDA, USE_MIDI, USE_GME, USE_OPUS, USE_SID, USE_ARCHIVE (декодеры);
- USE_ALSA, USE_OSS, USE_JACK, USE_PULSE, USE_PIPEWIRE, USE_NULL, USE_OSS4, USE_WAVEOUT, USE_DSOUND, USE_QTMULTIMEDIA,
  USE_WASAPI, USE_SHOUT (модули  вывода);
- USE_SOXR, USE_BS2B, USE_LADSPA, USE_CROSSFADE, USE_STEREO, USE_FILEWRITER, USE_MONOTOSTEREO (эффекты);
- USE_ANALYZER, USE_PROJECTM (визуализация);
- USE_MPRIS, USE_SCROBBLER, USE_LISTENBRAINZ, USE_STATICON, USE_NOTIFIER, USE_LYRICS, USE_HOTKEY, USE_FILEOPS,
  USE_COVER, USE_KDENOTIFY, USE_UDISKS, USE_CONVERTER, USE_RGSCAN, USE_SB, USE_TRACKCHANGE, USE_COPYPASTE,
  USE_GNOMEHOTKEY, USE_LIBRARY, USE_TAGEDITOR, USE_TASKBAR, USE_RDETECT (модули общего назначения);
- USE_QMMP_DIALOG, USE_TWO_PANEL_DIALOG (файловые диалоги);
- USE_ENCA (автоматическое определение кодировки);
- USE_SKINNED (стандартный пользовательский интерфейс);
- USE_QSUI (простой интерфейс);
- USE_DIR_ASSOC (привязка к mime-типу inode/directory);
- USE_LIBRCD (использование библиотеки LibRCD для определения кодировок ID3v1/v2-тегов, по умолчанию отключено);
- USE_LIBCDDB (использование библиотеки libcddb для получения информации о компакт-дисках, по умолчанию включено);
- QMMP_DEFAULT_OUTPUT (модуль вывода по умолчанию, пример использования: -DQMMP_DEFAULT_OUTPUT=pulse);
- QMMP_DEFAULT_UI (интерфейс пользователя по умолчанию, пример использования: -DQMMP_DEFAULT_UI=qsui);
- PROJECTM_PRESET_PATH (переопределить путь для поиска предустановок projectM 4.x, пример использования: 
                        -DPROJECTM_PRESET_PATH="/usr/local/share/projectM/presets");
- PROJECTM_TEXTURE_PATH (переопределить путь для поиска текстур projectM 4.x, пример использования:
                         -DPROJECTM_TEXTURE_PATH="/usr/local/share/projectM/textures");
- PROJECTM_FORCE_GLES (принудительно включить OpenGL ES для projectM 4.x, по умолчанию отключено).

Также вы можете использовать ccmake для изменения конфигурации модулей.
По умолчанию программа будет установлена в /usr/local. Вы можете изменить этот путь командой:
cmake ./ -DCMAKE_INSTALL_PREFIX=другой_путь

Для получения дополнительной информации смотрите документацию модуля GNUInstallDirs:
https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html

Поддержка OSS3.
Модуль OSS3 устарел и отключён по умолчанию.
Для его включения выполните 'cmake ./ -DUSE_OSS:BOOL=TRUE' перед сборкой.

Поддержка UDisks и FreeBSD.
Под FreeBSD есть возможность использовать модуль Udisks. Для этого вы также должны установить порт
sysutils/bsdisks. Bsdisks является реализацией сервиса UDisks для FreeBSD.

В некоторых случаях вы можете использовать qmake для сборки и установки.

Конфигурация:
qmake PREFIX=путь_для_установки (по умолчанию: /usr)

Сборка:
make

Установка:
make install

Если какой-либо модуль не собирается или не нужен, в файле qmmp.pri можно его отключить.
Для отключения необходимо закомментировать соответствующую строчку (символ "#").
Кроме того, отключить модуль можно из командной строки:
qmake DISABLED_PLUGINS+=JACK_PLUGIN DISABLED_PLUGINS+=OSS_PLUGIN

Внимание! по умолчанию включены все модули.

Изменение пути установки разделяемых библиотек и модулей (для некоторых 64-битных дистрибутивов).
По умолчанию все библиотеки и модули будут установлены в $(INSTALL PREFIX)/lib. Вы можете сменить "lib"
на "lib64" запустив qmake или cmake со специальным параметром:
qmake LIB_DIR=/usr/lib64
или
cmake ./ -DCMAKE_INSTALL_LIBDIR=lib64

Основные файлы и каталоги (могут отличаться в зависимости от дистрибутива и архитектуры):

/usr/bin/qmmp - исполняемый файл
/usr/share/qmmp - общие файлы и каталоги
/usr/lib/qmmp-2.4/CommandLineOptions - расширения командной строки
/usr/lib/qmmp-2.4/Effect - модули эффектов
/usr/lib/qmmp-2.4/FileDialogs - файловые диалоги
/usr/lib/qmmp-2.4/General - модули общего назначения
/usr/lib/qmmp-2.4/Input - входные модули (декодеры)
/usr/lib/qmmp-2.4/Output - модули вывода
/usr/lib/qmmp-2.4/PlayListFormats - форматы плейлистов
/usr/lib/qmmp-2.4/Transports - транспортные модули
/usr/lib/qmmp-2.4/Ui - интерфейсы пользователя
/usr/lib/qmmp-2.4/Visual - модули визуализации
/usr/lib/libqmmp.so* - библиотека ядра плеера
/usr/lib/libqmmpui.so* - библиотека пользовательского интерфейса
/usr/include/qmmp - заголовочные файлы для ядра плеера
/usr/include/qmmpui - заголовочные файлы для пользовательского интерфейса
~/.config/qmmp - пользовательская конфигурация

Пути для поиска обложек:
~/.local/share/qmmp/skins
~/.config/qmmp/skins
/usr/share/qmmp/skins
/usr/share/qmmp-1/skins

Патчи, багрепорты, идеи и т.п.: https://sourceforge.net/p/qmmp-dev/tickets/

Автор выражает благодарность Вадиму Калинникову (www.ylsoftware.com) за предоставленный
хостинг и тестирование программы.

Также выражается благодарность всем, приславшим патчи и багрепорты.

Просьба к присылающим патчи. Во избежание проблем с определением авторства, пожалуйста,
указывайте также свою контактную информацию.
