From a53a04badd824b8037999d401a7c34cb8e482ef1 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 29 Dec 2017 21:43:20 +0000 Subject: removed mad and mpg123 plugins git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7812 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/mad/CMakeLists.txt | 52 -- src/plugins/Input/mad/decoder_mad.cpp | 554 --------------------- src/plugins/Input/mad/decoder_mad.h | 120 ----- src/plugins/Input/mad/decodermadfactory.cpp | 288 ----------- src/plugins/Input/mad/decodermadfactory.h | 55 -- src/plugins/Input/mad/mad.pro | 32 -- src/plugins/Input/mad/mpegmetadatamodel.cpp | 407 --------------- src/plugins/Input/mad/mpegmetadatamodel.h | 66 --- src/plugins/Input/mad/replaygainreader.cpp | 91 ---- src/plugins/Input/mad/replaygainreader.h | 46 -- src/plugins/Input/mad/settingsdialog.cpp | 114 ----- src/plugins/Input/mad/settingsdialog.h | 49 -- src/plugins/Input/mad/settingsdialog.ui | 310 ------------ src/plugins/Input/mad/tagextractor.cpp | 124 ----- src/plugins/Input/mad/tagextractor.h | 68 --- .../Input/mad/translations/mad_plugin_bg.ts | 191 ------- .../Input/mad/translations/mad_plugin_cs.ts | 191 ------- .../Input/mad/translations/mad_plugin_de.ts | 191 ------- .../Input/mad/translations/mad_plugin_el.ts | 191 ------- .../Input/mad/translations/mad_plugin_en.ts | 191 ------- .../Input/mad/translations/mad_plugin_es.ts | 191 ------- .../Input/mad/translations/mad_plugin_fi.ts | 191 ------- .../Input/mad/translations/mad_plugin_fr.ts | 191 ------- .../Input/mad/translations/mad_plugin_gl_ES.ts | 191 ------- .../Input/mad/translations/mad_plugin_he.ts | 191 ------- .../Input/mad/translations/mad_plugin_hu.ts | 191 ------- .../Input/mad/translations/mad_plugin_id.ts | 191 ------- .../Input/mad/translations/mad_plugin_it.ts | 191 ------- .../Input/mad/translations/mad_plugin_ja.ts | 191 ------- .../Input/mad/translations/mad_plugin_kk.ts | 191 ------- .../Input/mad/translations/mad_plugin_lt.ts | 191 ------- .../Input/mad/translations/mad_plugin_nl.ts | 191 ------- .../Input/mad/translations/mad_plugin_pl_PL.ts | 191 ------- .../Input/mad/translations/mad_plugin_pt.ts | 191 ------- .../Input/mad/translations/mad_plugin_pt_BR.ts | 191 ------- .../Input/mad/translations/mad_plugin_ru.ts | 191 ------- .../Input/mad/translations/mad_plugin_sk.ts | 191 ------- .../Input/mad/translations/mad_plugin_sr_BA.ts | 191 ------- .../Input/mad/translations/mad_plugin_sr_RS.ts | 191 ------- .../Input/mad/translations/mad_plugin_tr.ts | 191 ------- .../Input/mad/translations/mad_plugin_uk_UA.ts | 191 ------- .../Input/mad/translations/mad_plugin_zh_CN.ts | 191 ------- .../Input/mad/translations/mad_plugin_zh_TW.ts | 191 ------- .../Input/mad/translations/translations.qrc | 32 -- 44 files changed, 7756 deletions(-) delete mode 100644 src/plugins/Input/mad/CMakeLists.txt delete mode 100644 src/plugins/Input/mad/decoder_mad.cpp delete mode 100644 src/plugins/Input/mad/decoder_mad.h delete mode 100644 src/plugins/Input/mad/decodermadfactory.cpp delete mode 100644 src/plugins/Input/mad/decodermadfactory.h delete mode 100644 src/plugins/Input/mad/mad.pro delete mode 100644 src/plugins/Input/mad/mpegmetadatamodel.cpp delete mode 100644 src/plugins/Input/mad/mpegmetadatamodel.h delete mode 100644 src/plugins/Input/mad/replaygainreader.cpp delete mode 100644 src/plugins/Input/mad/replaygainreader.h delete mode 100644 src/plugins/Input/mad/settingsdialog.cpp delete mode 100644 src/plugins/Input/mad/settingsdialog.h delete mode 100644 src/plugins/Input/mad/settingsdialog.ui delete mode 100644 src/plugins/Input/mad/tagextractor.cpp delete mode 100644 src/plugins/Input/mad/tagextractor.h delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_bg.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_cs.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_de.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_el.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_en.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_es.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_fi.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_fr.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_gl_ES.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_he.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_hu.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_id.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_it.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_ja.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_kk.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_lt.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_nl.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_pl_PL.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_pt.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_pt_BR.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_ru.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_sk.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_sr_BA.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_sr_RS.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_tr.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts delete mode 100644 src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts delete mode 100644 src/plugins/Input/mad/translations/translations.qrc (limited to 'src/plugins/Input/mad') diff --git a/src/plugins/Input/mad/CMakeLists.txt b/src/plugins/Input/mad/CMakeLists.txt deleted file mode 100644 index 34f13bfb9..000000000 --- a/src/plugins/Input/mad/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ -project(libmad) - -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -# libqmmp -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../) -link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp) - -# libmad -pkg_search_module(MAD libmad mad) - -include_directories(${MAD_INCLUDE_DIRS} ${TAGLIB_INCLUDE_DIRS}) -link_directories(${MAD_LIBRARY_DIRS} ${TAGLIB_LIBRARY_DIRS}) -ADD_DEFINITIONS(${MAD_CFLAGS} ${TAGLIB_CFLAGS}) - -SET(libmad_SRCS - decoder_mad.cpp - decodermadfactory.cpp - settingsdialog.cpp - tagextractor.cpp - mpegmetadatamodel.cpp - replaygainreader.cpp -) - -SET(libmad_HDRS - decoder_mad.h - tagextractor.h - replaygainreader.h -) - -SET(libmad_RCCS translations/translations.qrc) - -QT5_ADD_RESOURCES(libmad_RCC_SRCS ${libmad_RCCS}) - -# user interface - - -SET(libmad_UIS - settingsdialog.ui -) - -QT5_WRAP_UI(libmad_UIS_H ${libmad_UIS}) -# Don't forget to include output directory, otherwise -# the UI file won't be wrapped! -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -IF(MAD_FOUND) -ADD_LIBRARY(mad MODULE ${libmad_SRCS} ${libmad_UIS_H} ${libmad_RCC_SRCS} ${libmad_HDRS}) -add_dependencies(mad qmmp) -target_link_libraries(mad Qt5::Widgets -lqmmp ${MAD_LDFLAGS} ${TAGLIB_LDFLAGS}) -install(TARGETS mad DESTINATION ${LIB_DIR}/qmmp/Input) -ENDIF(MAD_FOUND) diff --git a/src/plugins/Input/mad/decoder_mad.cpp b/src/plugins/Input/mad/decoder_mad.cpp deleted file mode 100644 index 6f57cdc6b..000000000 --- a/src/plugins/Input/mad/decoder_mad.cpp +++ /dev/null @@ -1,554 +0,0 @@ -/*************************************************************************** - * Based on mq3 and madplay projects * - * * - * Copyright (c) 2000-2001 Brad Hughes * - * Copyright (C) 2000-2004 Robert Leslie * - * Copyright (C) 2009-2017 Ilya Kotov forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#include -#include -#include -#include -#include "tagextractor.h" -#include "decoder_mad.h" - -#define XING_MAGIC (('X' << 24) | ('i' << 16) | ('n' << 8) | 'g') -#define XING_MAGIC2 (('I' << 24) | ('n' << 16) | ('f' << 8) | 'o') -#define LAME_MAGIC (('L' << 24) | ('A' << 16) | ('M' << 8) | 'E') -#define INPUT_BUFFER_SIZE (32*1024) - -DecoderMAD::DecoderMAD(QIODevice *i) : Decoder(i) -{ - m_inited = false; - m_totalTime = 0; - m_channels = 0; - m_bitrate = 0; - m_freq = 0; - m_len = 0; - m_input_buf = 0; - m_input_bytes = 0; - m_skip_frames = 0; - m_eof = false; - m_skip_bytes = 0; - m_play_bytes = -1; -} - -DecoderMAD::~DecoderMAD() -{ - deinit(); - if (m_input_buf) - { - qDebug("DecoderMAD: deleting input_buf"); - delete [] m_input_buf; - m_input_buf = 0; - } -} - -bool DecoderMAD::initialize() -{ - m_inited = false; - m_totalTime = 0; - m_channels = 0; - m_bitrate = 0; - m_freq = 0; - m_len = 0; - m_input_bytes = 0; - - if (!input()) - { - qWarning("DecoderMAD: cannot initialize. No input."); - return false; - } - - if (!m_input_buf) - m_input_buf = new char[INPUT_BUFFER_SIZE]; - - if (input()->isSequential ()) //for streams only - { - TagExtractor extractor(input()); - if(!extractor.id3v2tag().isEmpty()) - addMetaData(extractor.id3v2tag()); - } - - mad_stream_init(&m_stream); - mad_frame_init(&m_frame); - mad_synth_init(&m_synth); - - if (!findHeader()) - { - qDebug("DecoderMAD: Can't find a valid MPEG header."); - return false; - } - mad_stream_buffer(&m_stream, (unsigned char *) m_input_buf, m_input_bytes); - m_stream.error = MAD_ERROR_BUFLEN; - mad_frame_mute (&m_frame); - m_stream.next_frame = 0; - m_stream.sync = 0; - ChannelMap map; - if(m_channels == 1) - map << Qmmp::CHAN_FRONT_LEFT; - else - map << Qmmp::CHAN_FRONT_LEFT << Qmmp::CHAN_FRONT_RIGHT; - configure(m_freq, map, Qmmp::PCM_FLOAT); - m_inited = true; - return true; -} - -void DecoderMAD::deinit() -{ - if (!m_inited) - return; - - mad_synth_finish(&m_synth); - mad_frame_finish(&m_frame); - mad_stream_finish(&m_stream); - - m_inited = false; - m_totalTime = 0; - m_channels = 0; - m_bitrate = 0; - m_freq = 0; - m_len = 0; - m_input_bytes = 0; - m_skip_frames = 0; - m_eof = false; - if(m_xing.lame) - { - delete m_xing.lame; - m_xing.lame = 0; - } -} - -bool DecoderMAD::findXingHeader(struct mad_bitptr ptr, unsigned int bitlen) -{ - if (bitlen < 64) - return false; - - quint32 xing_magic = mad_bit_read(&ptr, 32); - if(xing_magic != XING_MAGIC && xing_magic != XING_MAGIC2) - return false; - - m_xing.flags = mad_bit_read(&ptr, 32); - bitlen -= 64; - - if (m_xing.flags & XING_FRAMES) - { - if (bitlen < 32) - return false; - - m_xing.frames = mad_bit_read(&ptr, 32); - bitlen -= 32; - - if(!m_xing.frames) - { - qDebug("DecoderMAD: invalid xing header (zero number of frames)"); - return false; - } - } - - if (m_xing.flags & XING_BYTES) - { - if (bitlen < 32) - return false; - - m_xing.bytes = mad_bit_read(&ptr, 32); - bitlen -= 32; - - if(!m_xing.bytes) - { - qDebug("DecoderMAD: invalid xing header (zero number of bytes)"); - return false; - } - } - - if (m_xing.flags & XING_TOC) - { - if (bitlen < 800) - return false; - - for (int i = 0; i < 100; ++i) - m_xing.toc[i] = mad_bit_read(&ptr, 8); - - bitlen -= 800; - } - - if (m_xing.flags & XING_SCALE) - { - if (bitlen < 32) - return false; - - m_xing.scale = mad_bit_read(&ptr, 32); - bitlen -= 32; - } - - m_xing.lame = findLameHeader(ptr, bitlen); - return true; -} - -DecoderMAD::LameHeader* DecoderMAD::findLameHeader(mad_bitptr ptr, unsigned int bitlen) -{ - if(bitlen < 272) - return 0; - - if(mad_bit_read (&ptr, 32) != LAME_MAGIC) - return 0; - - LameHeader header; - mad_bit_skip (&ptr, 40); //version - - header.revision = mad_bit_read (&ptr, 4); - if (header.revision == 15) - return 0; - - mad_bit_skip(&ptr, 12); //VBR,Lowpass filter value - header.peak = mad_bit_read(&ptr, 32) << 5; //Peak amplitude - mad_bit_skip(&ptr, 32); //Replay Gain - mad_bit_skip(&ptr, 16); //Encoding flags, ATH Type, bitrate - header.start_delay = mad_bit_read (&ptr, 12); //Start delay - header.end_padding = mad_bit_read (&ptr, 12); //End padding - mad_bit_skip (&ptr, 8); //Misc - header.gain = mad_bit_read (&ptr, 8); //MP3 Gain - mad_bit_skip (&ptr, 64); //Preset and surroud info, MusicLength, Music CRC - return new LameHeader(header); -} - -bool DecoderMAD::findHeader() -{ - bool result = false; - int count = 0; - bool has_xing = false; - bool is_vbr = false; - mad_timer_t duration = mad_timer_zero; - struct mad_header header; - mad_header_init (&header); - uint id3v2Size = 0; - - forever - { - m_input_bytes = 0; - if (m_stream.error == MAD_ERROR_BUFLEN || !m_stream.buffer) - { - size_t remaining = 0; - - if (m_stream.next_frame) - { - remaining = m_stream.bufend - m_stream.next_frame; - memmove (m_input_buf, m_stream.next_frame, remaining); - } - - m_input_bytes = input()->read(m_input_buf + remaining, INPUT_BUFFER_SIZE - remaining); - - if (m_input_bytes <= 0) - break; - - mad_stream_buffer(&m_stream, (unsigned char *) m_input_buf + remaining, m_input_bytes); - m_stream.error = MAD_ERROR_NONE; - } - - if (mad_header_decode(&header, &m_stream) < 0) - { - if(m_stream.error == MAD_ERROR_LOSTSYNC) - { - uint tagSize = findID3v2((uchar *)m_stream.this_frame, - (ulong) (m_stream.bufend - m_stream.this_frame)); - if (tagSize > 0) - { - mad_stream_skip(&m_stream, tagSize); - id3v2Size = tagSize; - } - continue; - } - else if (m_stream.error == MAD_ERROR_BUFLEN || MAD_RECOVERABLE(m_stream.error)) - continue; - else - { - qDebug ("DecoderMAD: Can't decode header: %s", mad_stream_errorstr(&m_stream)); - break; - } - } - result = true; - - if (input()->isSequential()) - break; - - count ++; - //try to detect xing header - if (count == 1) - { - m_frame.header = header; - if (mad_frame_decode(&m_frame, &m_stream) != -1 && - findXingHeader(m_stream.anc_ptr, m_stream.anc_bitlen)) - { - is_vbr = true; - - qDebug("DecoderMAD: Xing header found"); - - if (m_xing.flags & XING_FRAMES) - { - has_xing = true; - count = m_xing.frames; - - if(m_xing.lame) - { - qDebug("DecoderMAD: LAME header found"); - m_skip_bytes = m_xing.lame->start_delay * sizeof(float) * MAD_NCHANNELS(&header); - m_play_bytes = (m_xing.frames * 1152 - m_xing.lame->start_delay - m_xing.lame->end_padding) * - sizeof(float) * MAD_NCHANNELS(&header); - qDebug("DecoderMAD: samples to skip: %d, padding: %d", - m_xing.lame->start_delay, m_xing.lame->end_padding); - } - break; - } - } - } - //try to detect VBR - if (!is_vbr && !(count > 15)) - { - if (m_bitrate && header.bitrate != m_bitrate) - { - qDebug ("DecoderMAD: VBR detected"); - is_vbr = true; - } - else - m_bitrate = header.bitrate; - } - else if (!is_vbr) - { - qDebug ("DecoderMAD: Fixed rate detected"); - break; - } - mad_timer_add (&duration, header.duration); - } - - if (!result) - return false; - - if (!is_vbr && !input()->isSequential()) - { - double time = ((input()->size() - id3v2Size) * 8.0) / (header.bitrate); - double timefrac = (double)time - ((long)(time)); - mad_timer_set(&duration, (long)time, (long)(timefrac*100), 100); - } - else if (has_xing) - { - mad_timer_multiply (&header.duration, count); - duration = header.duration; - } - - m_totalTime = mad_timer_count(duration, MAD_UNITS_MILLISECONDS); - qDebug ("DecoderMAD: Total time: %ld", long(m_totalTime)); - m_freq = header.samplerate; - m_channels = MAD_NCHANNELS(&header); - m_bitrate = header.bitrate / 1000; - mad_header_finish(&header); - input()->seek(0); - m_input_bytes = 0; - return true; -} - -qint64 DecoderMAD::totalTime() const -{ - if (!m_inited) - return 0; - return m_totalTime; -} - -int DecoderMAD::bitrate() const -{ - return int(m_bitrate); -} - -qint64 DecoderMAD::read(unsigned char *data, qint64 size) -{ - while(m_skip_bytes > 0) - { - if(!decodeFrame()) - return 0; - - qint64 l = madOutputFloat((float*)data, size / sizeof(float)) * sizeof(float); - - if(m_skip_bytes > l) - { - m_skip_bytes -= l; - continue; - } - else if(m_skip_bytes < l) - { - l -= m_skip_bytes; - memmove(data, data + m_skip_bytes, l); - m_skip_bytes = 0; - m_play_bytes -= l; - return l; - } - } - - if(!decodeFrame()) - return 0; - - qint64 l = madOutputFloat((float*)data, size / sizeof(float)) * sizeof(float); - - if(m_play_bytes > 0) - { - if(m_play_bytes > l) - m_play_bytes -= l; - else - { - l -= m_play_bytes; - m_play_bytes = 0; - } - - } - return l; -} - -void DecoderMAD::seek(qint64 pos) -{ - if(m_totalTime > 0) - { - qint64 seek_pos = qint64(pos * input()->size() / m_totalTime); - input()->seek(seek_pos); - mad_frame_mute(&m_frame); - mad_synth_mute(&m_synth); - m_stream.error = MAD_ERROR_BUFLEN; - m_stream.sync = 0; - m_input_bytes = 0; - m_stream.next_frame = 0; - m_skip_frames = 2; - m_skip_bytes = 0; - m_play_bytes = -1; - } -} - -bool DecoderMAD::fillBuffer() -{ - if (m_stream.next_frame) - { - m_input_bytes = &m_input_buf[m_input_bytes] - (char *) m_stream.next_frame; - memmove(m_input_buf, m_stream.next_frame, m_input_bytes); - } - int len = input()->read((char *) m_input_buf + m_input_bytes, INPUT_BUFFER_SIZE - m_input_bytes); - if (!len) - { - qDebug("DecoderMAD: end of file"); - return false; - } - else if(len < 0) - { - qWarning("DecoderMAD: error"); - return false; - } - m_input_bytes += len; - mad_stream_buffer(&m_stream, (unsigned char *) m_input_buf, m_input_bytes); - return true; -} - -uint DecoderMAD::findID3v2(uchar *data, ulong size) //retuns ID3v2 tag size -{ - if (size < 10) - return 0; - - if (((data[0] == 'I' && data[1] == 'D' && data[2] == '3') || //ID3v2 tag - (data[0] == '3' && data[1] == 'D' && data[2] == 'I')) && //ID3v2 footer - data[3] < 0xff && data[4] < 0xff && data[6] < 0x80 && - data[7] < 0x80 && data[8] < 0x80 && data[9] < 0x80) - { - TagLib::ByteVector byteVector((char *)data, size); - TagLib::ID3v2::Header header(byteVector); - return header.tagSize(); - } - return 0; -} - -bool DecoderMAD::decodeFrame() -{ - forever - { - if(((m_stream.error == MAD_ERROR_BUFLEN) || !m_stream.buffer) && !m_eof) - { - m_eof = !fillBuffer(); - } - if(mad_frame_decode(&m_frame, &m_stream) < 0) - { - switch((int) m_stream.error) - { - case MAD_ERROR_LOSTSYNC: - { - //skip ID3v2 tag - uint tagSize = findID3v2((uchar *)m_stream.this_frame, - (ulong) (m_stream.bufend - m_stream.this_frame)); - if (tagSize > 0) - { - mad_stream_skip(&m_stream, tagSize); - qDebug("DecoderMAD: %d bytes skipped", tagSize); - } - continue; - } - case MAD_ERROR_BUFLEN: - if(m_eof) - return false; - continue; - default: - if (!MAD_RECOVERABLE(m_stream.error)) - return false; - else - continue; - } - } - if(m_skip_frames) - { - m_skip_frames--; - continue; - } - mad_synth_frame(&m_synth, &m_frame); - break; - } - return true; -} - -qint64 DecoderMAD::madOutputFloat(float *data, qint64 samples) -{ - float *data_it = data; - unsigned int samples_per_channel, channels; - mad_fixed_t const *left, *right; - - samples_per_channel = m_synth.pcm.length; - channels = m_synth.pcm.channels; - left = m_synth.pcm.samples[0]; - right = m_synth.pcm.samples[1]; - m_bitrate = m_frame.header.bitrate / 1000; - qint64 output_samples = 0; - - if(samples_per_channel * channels > samples) - { - qWarning("DecoderMad: input buffer is too small"); - samples_per_channel = samples / channels; - } - - while (samples_per_channel--) - { - *data_it++ = mad_f_todouble(*left++); - output_samples++; - if (channels == 2) - { - *data_it++ = mad_f_todouble(*right++); - output_samples++; - } - } - return output_samples; -} diff --git a/src/plugins/Input/mad/decoder_mad.h b/src/plugins/Input/mad/decoder_mad.h deleted file mode 100644 index b5c85238c..000000000 --- a/src/plugins/Input/mad/decoder_mad.h +++ /dev/null @@ -1,120 +0,0 @@ -/*************************************************************************** - * Based on mq3 and madplay projects * - * * - * Copyright (c) 2000-2001 Brad Hughes * - * Copyright (C) 2000-2004 Robert Leslie * - * Copyright (C) 2009-2017 Ilya Kotov forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef DECODER_MAD_H -#define DECODER_MAD_H - -class QIODevice; -class DecoderMAD; - -#include -#include "decodermadfactory.h" - -extern "C" -{ -#include -} - -class DecoderMAD : public Decoder -{ -public: - DecoderMAD(QIODevice *i); - virtual ~DecoderMAD(); - - // standard decoder API - bool initialize(); - qint64 totalTime() const; - int bitrate() const; - qint64 read(unsigned char *data, qint64 size); - void seek(qint64); - -private: - //LAME header - struct LameHeader - { - unsigned char revision; - unsigned char flags; - mad_fixed_t peak; - unsigned short start_delay; - unsigned short end_padding; - qint8 gain; - }; - // helper functions - bool decodeFrame(); - qint64 madOutputFloat(float *data, qint64 samples); - bool fillBuffer(); - void deinit(); - bool findHeader(); - bool findXingHeader(struct mad_bitptr, unsigned int bitlen); - LameHeader *findLameHeader(struct mad_bitptr ptr, unsigned int bitlen); - uint findID3v2(uchar *data, ulong size); - bool m_inited, m_eof; - qint64 m_totalTime; - int m_channels, m_skip_frames; - uint m_bitrate; - long m_freq, m_len; - - // file input buffer - char *m_input_buf; - qint64 m_input_bytes; - - // MAD decoder - - //xing header - struct XingHeader - { - int flags; - unsigned long frames; - unsigned long bytes; - unsigned char toc[100]; - long scale; - LameHeader *lame; - - XingHeader() - { - flags = 0; - frames = 0; - bytes = 0; - scale = 0; - lame = 0; - } - }; - XingHeader m_xing; - - enum - { - XING_FRAMES = 0x0001, - XING_BYTES = 0x0002, - XING_TOC = 0x0004, - XING_SCALE = 0x0008 - }; - - struct mad_stream m_stream; - struct mad_frame m_frame; - struct mad_synth m_synth; - qint64 m_skip_bytes, m_play_bytes; - -}; - - -#endif // DECODER_MAD_H diff --git a/src/plugins/Input/mad/decodermadfactory.cpp b/src/plugins/Input/mad/decodermadfactory.cpp deleted file mode 100644 index 96227bd2f..000000000 --- a/src/plugins/Input/mad/decodermadfactory.cpp +++ /dev/null @@ -1,288 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008-2017 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "mpegmetadatamodel.h" -#include "replaygainreader.h" -#include "settingsdialog.h" -#include "decoder_mad.h" -#include "decodermadfactory.h" - -// DecoderMADFactory - -DecoderMADFactory::DecoderMADFactory() -{ - //detecting rusxmms patch - m_using_rusxmms = false; - char str[] = { char(0xF2), char(0xE5), char(0xF1), char(0xF2), '\0'}; - QTextCodec *codec = QTextCodec::codecForName ("windows-1251"); - TagLib::String tstr(str); - if(codec->toUnicode(str) == QString::fromUtf8(tstr.toCString(true))) - { - qDebug("DecoderMADFactory: found taglib with rusxmms patch"); - m_using_rusxmms = true; - } -} - -bool DecoderMADFactory::canDecode(QIODevice *input) const -{ - char buf[8192]; - qint64 buf_at = sizeof(buf); - - if(input->peek(buf, sizeof(buf)) != sizeof(buf)) - return false; - - if (!memcmp(buf, "FLV", 3)) //skip Macromedia Flash Video - return false; - - if (!memcmp(buf + 8, "WAVE", 4)) - return !memcmp(buf + 20, "U" ,1); - - if(!memcmp(buf, "ID3", 3)) - { - TagLib::ByteVector byteVector(buf, sizeof(buf)); - TagLib::ID3v2::Header header(byteVector); - - //skip id3v2tag if possible - if(input->isSequential()) - { - if(header.tagSize() >= sizeof(buf)) - return false; - - buf_at = sizeof(buf) - header.tagSize(); - memmove(buf, buf + header.tagSize() + header.tagSize(), sizeof(buf) - header.tagSize()); - } - else - { - input->seek(header.tagSize()); - buf_at = input->read(buf, sizeof(buf)); - input->seek(0); //restore inital position - } - } - - if(buf_at > 0) - { - struct mad_stream stream; - struct mad_header header; - int dec_res; - - mad_stream_init (&stream); - mad_header_init (&header); - mad_stream_buffer (&stream, (unsigned char *) buf, buf_at); - stream.error = MAD_ERROR_NONE; - - while ((dec_res = mad_header_decode(&header, &stream)) == -1 - && MAD_RECOVERABLE(stream.error)) - ; - return dec_res != -1 ? true: false; - } - return false; -} - -const DecoderProperties DecoderMADFactory::properties() const -{ - DecoderProperties properties; - properties.name = tr("MPEG Plugin"); - properties.shortName = "mad"; - properties.filters << "*.mp1" << "*.mp2" << "*.mp3" << "*.wav"; - properties.description = tr("MPEG Files"); - properties.contentTypes << "audio/mp3" << "audio/mpeg"; - properties.hasAbout = true; - properties.hasSettings = true; - return properties; -} - -Decoder *DecoderMADFactory::create(const QString &url, QIODevice *input) -{ - Decoder *d = new DecoderMAD(input); - if(!url.contains("://")) //local file - { - ReplayGainReader rg(url); - d->setReplayGainInfo(rg.replayGainInfo()); - } - return d; -} - -QList DecoderMADFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) -{ - FileInfo *info = new FileInfo(fileName); - TagLib::Tag *tag = 0; - - TagLib::FileStream stream(QStringToFileName(fileName), true); - TagLib::MPEG::File fileRef(&stream, TagLib::ID3v2::FrameFactory::instance()); - - if (useMetaData) - { - QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - settings.beginGroup("MAD"); - - QTextCodec *codec = 0; - - uint tag_array[3]; - tag_array[0] = settings.value("tag_1", SettingsDialog::ID3v2).toInt(); - tag_array[1] = settings.value("tag_2", SettingsDialog::APE).toInt(); - tag_array[2] = settings.value("tag_3", SettingsDialog::ID3v1).toInt(); - - QByteArray name; - for (int i = 0; i < 3; ++i) - { - switch ((uint) tag_array[i]) - { - case SettingsDialog::ID3v1: - codec = QTextCodec::codecForName(settings.value("ID3v1_encoding","ISO-8859-1") - .toByteArray ()); - tag = fileRef.ID3v1Tag(); - break; - case SettingsDialog::ID3v2: - name = settings.value("ID3v2_encoding","UTF-8").toByteArray (); - if (name.contains("UTF")) - codec = QTextCodec::codecForName ("UTF-8"); - else - codec = QTextCodec::codecForName(name); - tag = fileRef.ID3v2Tag(); - break; - case SettingsDialog::APE: - codec = QTextCodec::codecForName ("UTF-8"); - tag = fileRef.APETag(); - break; - case SettingsDialog::Disabled: - break; - } - if (tag && !tag->isEmpty()) - break; - } - settings.endGroup(); - - if(m_using_rusxmms) - codec = QTextCodec::codecForName ("UTF-8"); - - if (!codec) - codec = QTextCodec::codecForName ("UTF-8"); - - if (tag && codec) - { - bool utf = codec->name ().contains("UTF"); - TagLib::String album = tag->album(); - TagLib::String artist = tag->artist(); - TagLib::String comment = tag->comment(); - TagLib::String genre = tag->genre(); - TagLib::String title = tag->title(); - - info->setMetaData(Qmmp::ALBUM, - codec->toUnicode(album.toCString(utf)).trimmed()); - info->setMetaData(Qmmp::ARTIST, - codec->toUnicode(artist.toCString(utf)).trimmed()); - info->setMetaData(Qmmp::COMMENT, - codec->toUnicode(comment.toCString(utf)).trimmed()); - info->setMetaData(Qmmp::GENRE, - codec->toUnicode(genre.toCString(utf)).trimmed()); - info->setMetaData(Qmmp::TITLE, - codec->toUnicode(title.toCString(utf)).trimmed()); - info->setMetaData(Qmmp::YEAR, - tag->year()); - info->setMetaData(Qmmp::TRACK, - tag->track()); - - if(tag == fileRef.ID3v2Tag()) - { - if(!fileRef.ID3v2Tag()->frameListMap()["TPE2"].isEmpty()) - { - TagLib::String albumArtist; - albumArtist = fileRef.ID3v2Tag()->frameListMap()["TPE2"].front()->toString(); - info->setMetaData(Qmmp::ALBUMARTIST, - codec->toUnicode(albumArtist.toCString(utf)).trimmed()); - } - if(!fileRef.ID3v2Tag()->frameListMap()["TCOM"].isEmpty()) - { - TagLib::String composer; - composer = fileRef.ID3v2Tag()->frameListMap()["TCOM"].front()->toString(); - info->setMetaData(Qmmp::COMPOSER, - codec->toUnicode(composer.toCString(utf)).trimmed()); - } - if(!fileRef.ID3v2Tag()->frameListMap()["TPOS"].isEmpty()) - { - TagLib::String disc = fileRef.ID3v2Tag()->frameListMap()["TPOS"].front()->toString(); - info->setMetaData(Qmmp::DISCNUMBER, QString(disc.toCString()).trimmed()); - } - } - else if(tag == fileRef.APETag()) - { - TagLib::APE::Item fld; - if(!(fld = fileRef.APETag()->itemListMap()["ALBUM ARTIST"]).isEmpty()) - info->setMetaData(Qmmp::ALBUMARTIST, - QString::fromUtf8(fld.toString().toCString(true)).trimmed()); - if(!(fld = fileRef.APETag()->itemListMap()["COMPOSER"]).isEmpty()) - info->setMetaData(Qmmp::COMPOSER, - QString::fromUtf8(fld.toString().toCString(true)).trimmed()); - } - } - } - if (fileRef.audioProperties()) - info->setLength(fileRef.audioProperties()->length()); - QList list; - list << info; - return list; -} - -MetaDataModel* DecoderMADFactory::createMetaDataModel(const QString &path, QObject *parent) -{ - return new MPEGMetaDataModel(m_using_rusxmms, path, parent); -} - -void DecoderMADFactory::showSettings(QWidget *parent) -{ - SettingsDialog *s = new SettingsDialog(m_using_rusxmms, parent); - s->show(); -} - -void DecoderMADFactory::showAbout(QWidget *parent) -{ - QMessageBox::about (parent, tr("About MPEG Audio Plugin"), - tr("Qmmp MPEG Audio Plugin")+"\n"+ - tr("Compiled against libmad version:")+" "+ - QString("%1.%2.%3%4").arg(MAD_VERSION_MAJOR) - .arg(MAD_VERSION_MINOR) - .arg(MAD_VERSION_PATCH).arg(MAD_VERSION_EXTRA)+"\n"+ - tr("Written by: Ilya Kotov ")+"\n"+ - tr("Source code based on mq3 and madplay projects") - ); -} - -QTranslator *DecoderMADFactory::createTranslator(QObject *parent) -{ - QTranslator *translator = new QTranslator(parent); - QString locale = Qmmp::systemLanguageID(); - translator->load(QString(":/mad_plugin_") + locale); - return translator; -} diff --git a/src/plugins/Input/mad/decodermadfactory.h b/src/plugins/Input/mad/decodermadfactory.h deleted file mode 100644 index a3f0139ac..000000000 --- a/src/plugins/Input/mad/decodermadfactory.h +++ /dev/null @@ -1,55 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2016 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ -#ifndef DECODERMADFACTORY_H -#define DECODERMADFACTORY_H - -#include -#include -#include -#include - -#include -#include -#include -#include - -class DecoderMADFactory : public QObject, - DecoderFactory -{ -Q_OBJECT -Q_PLUGIN_METADATA(IID "org.qmmp.qmmp.DecoderFactoryInterface.1.0") -Q_INTERFACES(DecoderFactory) - -public: - DecoderMADFactory(); - bool canDecode(QIODevice *input) const; - const DecoderProperties properties() const; - Decoder *create(const QString &path, QIODevice *input); - QList createPlayList(const QString &fileName, bool useMetaData, QStringList *); - MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); - void showSettings(QWidget *parent); - void showAbout(QWidget *parent); - QTranslator *createTranslator(QObject *parent); - -private: - bool m_using_rusxmms; -}; - -#endif diff --git a/src/plugins/Input/mad/mad.pro b/src/plugins/Input/mad/mad.pro deleted file mode 100644 index 3766d2432..000000000 --- a/src/plugins/Input/mad/mad.pro +++ /dev/null @@ -1,32 +0,0 @@ -include(../../plugins.pri) - -TARGET = $$PLUGINS_PREFIX/Input/mad - -HEADERS += decodermadfactory.h \ - decoder_mad.h \ - settingsdialog.h \ - tagextractor.h \ - mpegmetadatamodel.h \ - replaygainreader.h - -SOURCES += decoder_mad.cpp \ - decodermadfactory.cpp \ - settingsdialog.cpp \ - tagextractor.cpp \ - mpegmetadatamodel.cpp \ - replaygainreader.cpp - -FORMS += settingsdialog.ui - -RESOURCES = translations/translations.qrc - -unix { - target.path = $$LIB_DIR/qmmp/Input - INSTALLS += target - LIBS += -lmad - PKGCONFIG += taglib mad -} - -win32 { - LIBS += -lmad -ltag.dll -} diff --git a/src/plugins/Input/mad/mpegmetadatamodel.cpp b/src/plugins/Input/mad/mpegmetadatamodel.cpp deleted file mode 100644 index 1a0371b39..000000000 --- a/src/plugins/Input/mad/mpegmetadatamodel.cpp +++ /dev/null @@ -1,407 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2009-2017 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "mpegmetadatamodel.h" - -MPEGMetaDataModel::MPEGMetaDataModel(bool using_rusxmms, const QString &path, QObject *parent) : MetaDataModel(parent) -{ - m_file = new TagLib::MPEG::File(QStringToFileName(path)); - m_tags << new MpegFileTagModel(using_rusxmms, m_file, TagLib::MPEG::File::ID3v1); - m_tags << new MpegFileTagModel(using_rusxmms, m_file, TagLib::MPEG::File::ID3v2); - m_tags << new MpegFileTagModel(using_rusxmms, m_file, TagLib::MPEG::File::APE); -} - -MPEGMetaDataModel::~MPEGMetaDataModel() -{ - while(!m_tags.isEmpty()) - delete m_tags.takeFirst(); - delete m_file; -} - -QHash MPEGMetaDataModel::audioProperties() -{ - QHash ap; - QString text; - QString v; - switch((int)m_file->audioProperties()->version()) - { - case TagLib::MPEG::Header::Version1: - v = "1"; - break; - case TagLib::MPEG::Header::Version2: - v = "2"; - break; - case TagLib::MPEG::Header::Version2_5: - v = "2.5"; - } - text = QString("MPEG-%1 layer %2").arg(v).arg(m_file->audioProperties()->layer()); - ap.insert(tr("Format"), text); - text = QString("%1").arg(m_file->audioProperties()->bitrate()); - ap.insert(tr("Bitrate"), text+" "+tr("kbps")); - text = QString("%1").arg(m_file->audioProperties()->sampleRate()); - ap.insert(tr("Sample rate"), text+" "+tr("Hz")); - switch (m_file->audioProperties()->channelMode()) - { - case TagLib::MPEG::Header::Stereo: - ap.insert(tr("Mode"), "Stereo"); - break; - case TagLib::MPEG::Header::JointStereo: - ap.insert(tr("Mode"), "Joint stereo"); - break; - case TagLib::MPEG::Header::DualChannel: - ap.insert(tr("Mode"), "Dual channel"); - break; - case TagLib::MPEG::Header::SingleChannel: - ap.insert(tr("Mode"), "Single channel"); - break; - } - text = QString("%1 "+tr("KB")).arg(m_file->length()/1024); - ap.insert(tr("File size"), text); - if (m_file->audioProperties()->protectionEnabled()) - ap.insert(tr("Protection"), tr("Yes")); - else - ap.insert(tr("Protection"), tr("No")); - if (m_file->audioProperties()->isCopyrighted()) - ap.insert(tr("Copyright"), tr("Yes")); - else - ap.insert(tr("Copyright"), tr("No")); - if (m_file->audioProperties()->isOriginal()) - ap.insert(tr("Original"), tr("Yes")); - else - ap.insert(tr("Original"), tr("No")); - return ap; -} - -QList MPEGMetaDataModel::tags() -{ - return m_tags; -} - -QPixmap MPEGMetaDataModel::cover() -{ - if(!m_file->ID3v2Tag()) - return QPixmap(); - TagLib::ID3v2::FrameList frames = m_file->ID3v2Tag()->frameListMap()["APIC"]; - if(frames.isEmpty()) - return QPixmap(); - - for(TagLib::ID3v2::FrameList::Iterator it = frames.begin(); it != frames.end(); ++it) - { - TagLib::ID3v2::AttachedPictureFrame *frame = dynamic_cast(*it); - if(frame && frame->type() == TagLib::ID3v2::AttachedPictureFrame::FrontCover) - { - QPixmap cover; - cover.loadFromData((const uchar *)frame->picture().data(), - frame->picture().size()); - return cover; - } - } - //fallback image - for(TagLib::ID3v2::FrameList::Iterator it = frames.begin(); it != frames.end(); ++it) - { - TagLib::ID3v2::AttachedPictureFrame *frame = dynamic_cast(*it); - if(frame) - { - QPixmap cover; - cover.loadFromData((const uchar *)frame->picture().data(), - frame->picture().size()); - return cover; - } - } - return QPixmap(); -} - -MpegFileTagModel::MpegFileTagModel(bool using_rusxmms, TagLib::MPEG::File *file, TagLib::MPEG::File::TagTypes tagType) - : TagModel() -{ - m_tagType = tagType; - m_file = file; - m_using_rusxmms = using_rusxmms; - QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - settings.beginGroup("MAD"); - if (m_tagType == TagLib::MPEG::File::ID3v1) - { - m_tag = m_file->ID3v1Tag(); - m_codec = QTextCodec::codecForName(settings.value("ID3v1_encoding", "ISO-8859-1").toByteArray ()); - if (!m_codec) - QTextCodec::codecForName ("ISO-8859-1"); - } - else if (m_tagType == TagLib::MPEG::File::ID3v2) - { - m_tag = m_file->ID3v2Tag(); - m_codec = QTextCodec::codecForName(settings.value("ID3v2_encoding", "UTF-8").toByteArray ()); - if (!m_codec) - QTextCodec::codecForName ("UTF-8"); - } - else - { - m_tag = m_file->APETag(); - m_codec = QTextCodec::codecForName ("UTF-8"); - } - if(m_using_rusxmms) - { - m_codec = QTextCodec::codecForName ("UTF-8"); - } - settings.endGroup(); -} - -MpegFileTagModel::~MpegFileTagModel() -{} - -const QString MpegFileTagModel::name() -{ - if (m_tagType == TagLib::MPEG::File::ID3v1) - return "ID3v1"; - else if (m_tagType == TagLib::MPEG::File::ID3v2) - return "ID3v2"; - return "APE"; -} - -QList MpegFileTagModel::keys() -{ - QList list = TagModel::keys(); - if (m_tagType == TagLib::MPEG::File::ID3v2) - return list; - else if(m_tagType == TagLib::MPEG::File::APE) - { - list.removeAll(Qmmp::DISCNUMBER); - return list; - } - list.removeAll(Qmmp::COMPOSER); - list.removeAll(Qmmp::ALBUMARTIST); - list.removeAll(Qmmp::DISCNUMBER); - return list; -} - -const QString MpegFileTagModel::value(Qmmp::MetaData key) -{ - QTextCodec *codec = m_codec; - - if (m_tag) - { - bool utf = codec->name().contains("UTF"); - if (utf) - codec = QTextCodec::codecForName ("UTF-8"); - - TagLib::String str; - switch((int) key) - { - case Qmmp::TITLE: - str = m_tag->title(); - break; - case Qmmp::ARTIST: - str = m_tag->artist(); - break; - case Qmmp::ALBUMARTIST: - if(m_tagType == TagLib::MPEG::File::ID3v2 && - !m_file->ID3v2Tag()->frameListMap()["TPE2"].isEmpty()) - { - str = m_file->ID3v2Tag()->frameListMap()["TPE2"].front()->toString(); - } - else if(m_tagType == TagLib::MPEG::File::APE && - !m_file->APETag()->itemListMap()["ALBUM ARTIST"].isEmpty()) - { - str = m_file->APETag()->itemListMap()["ALBUM ARTIST"].toString(); - } - break; - case Qmmp::ALBUM: - str = m_tag->album(); - break; - case Qmmp::COMMENT: - str = m_tag->comment(); - break; - case Qmmp::GENRE: - str = m_tag->genre(); - break; - case Qmmp::COMPOSER: - if(m_tagType == TagLib::MPEG::File::ID3v2 && - !m_file->ID3v2Tag()->frameListMap()["TCOM"].isEmpty()) - { - str = m_file->ID3v2Tag()->frameListMap()["TCOM"].front()->toString(); - } - else if(m_tagType == TagLib::MPEG::File::APE && - !m_file->APETag()->itemListMap()["COMPOSER"].isEmpty()) - { - str = m_file->APETag()->itemListMap()["COMPOSER"].toString(); - } - break; - case Qmmp::YEAR: - return QString::number(m_tag->year()); - case Qmmp::TRACK: - return QString::number(m_tag->track()); - case Qmmp::DISCNUMBER: - if(m_tagType == TagLib::MPEG::File::ID3v2 - && !m_file->ID3v2Tag()->frameListMap()["TPOS"].isEmpty()) - str = m_file->ID3v2Tag()->frameListMap()["TPOS"].front()->toString(); - } - return codec->toUnicode(str.toCString(utf)).trimmed(); - } - return QString(); -} - -void MpegFileTagModel::setValue(Qmmp::MetaData key, const QString &value) -{ - if(!m_tag) - return; - TagLib::String::Type type = TagLib::String::Latin1; - - if (m_tagType == TagLib::MPEG::File::ID3v1) - { - if(m_codec->name().contains("UTF") && !m_using_rusxmms) //utf is unsupported - return; - - if(m_using_rusxmms) - type = TagLib::String::UTF8; - } - else if (m_tagType == TagLib::MPEG::File::ID3v2) - { - if (m_codec->name().contains("UTF")) - { - type = TagLib::String::UTF8; - if (m_codec->name().contains("UTF-16")) - type = TagLib::String::UTF16; - else if (m_codec->name().contains("UTF-16LE")) - type = TagLib::String::UTF16LE; - else if (m_codec->name().contains("UTF-16BE")) - type = TagLib::String::UTF16BE; - - m_codec = QTextCodec::codecForName ("UTF-8"); - TagLib::ID3v2::FrameFactory *factory = TagLib::ID3v2::FrameFactory::instance(); - factory->setDefaultTextEncoding(type); - m_file->setID3v2FrameFactory(factory); - type = TagLib::String::UTF8; - } - //save additional tags - TagLib::ByteVector id3v2_key; - if(key == Qmmp::ALBUMARTIST) - id3v2_key = "TPE2"; //album artist - else if (key == Qmmp::COMPOSER) - id3v2_key = "TCOM"; //composer - else if (key == Qmmp::DISCNUMBER) - id3v2_key = "TPOS"; //disc number - - if (!id3v2_key.isEmpty()) - { - TagLib::String composer = TagLib::String(m_codec->fromUnicode(value).constData(), type); - TagLib::ID3v2::Tag *id3v2_tag = dynamic_cast(m_tag); - if(value.isEmpty()) - id3v2_tag->removeFrames(id3v2_key); - else if(!id3v2_tag->frameListMap()[id3v2_key].isEmpty()) - id3v2_tag->frameListMap()[id3v2_key].front()->setText(composer); - else - { - TagLib::ID3v2::TextIdentificationFrame *frame; - frame = new TagLib::ID3v2::TextIdentificationFrame(id3v2_key, type); - frame->setText(composer); - id3v2_tag->addFrame(frame); - } - return; - } - } - else if(m_tagType == TagLib::MPEG::File::APE) - { - type = TagLib::String::UTF8; - } - - TagLib::String str = TagLib::String(m_codec->fromUnicode(value).constData(), type); - - if(m_tagType == TagLib::MPEG::File::APE) - { - if(key == Qmmp::COMPOSER) - { - m_file->APETag()->addValue("COMPOSER", str, true); - return; - } - else if(key == Qmmp::ALBUMARTIST) - { - m_file->APETag()->addValue("ALBUM ARTIST", str, true); - return; - } - } - - switch((int) key) - { - case Qmmp::TITLE: - m_tag->setTitle(str); - break; - case Qmmp::ARTIST: - m_tag->setArtist(str); - break; - case Qmmp::ALBUM: - m_tag->setAlbum(str); - break; - case Qmmp::COMMENT: - m_tag->setComment(str); - break; - case Qmmp::GENRE: - m_tag->setGenre(str); - break; - case Qmmp::YEAR: - m_tag->setYear(value.toInt()); - break; - case Qmmp::TRACK: - m_tag->setTrack(value.toInt()); - } -} - -bool MpegFileTagModel::exists() -{ - return (m_tag != 0); -} - -void MpegFileTagModel::create() -{ - if (m_tag) - return; - if (m_tagType == TagLib::MPEG::File::ID3v1) - m_tag = m_file->ID3v1Tag(true); - else if (m_tagType == TagLib::MPEG::File::ID3v2) - m_tag = m_file->ID3v2Tag(true); - else if (m_tagType == TagLib::MPEG::File::APE) - m_tag = m_file->APETag(true); -} - -void MpegFileTagModel::remove() -{ - m_tag = 0; -} - -void MpegFileTagModel::save() -{ - if(m_tag) - m_file->save(m_tagType, false); - else - m_file->strip(m_tagType); -} diff --git a/src/plugins/Input/mad/mpegmetadatamodel.h b/src/plugins/Input/mad/mpegmetadatamodel.h deleted file mode 100644 index 97b943895..000000000 --- a/src/plugins/Input/mad/mpegmetadatamodel.h +++ /dev/null @@ -1,66 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2009-2014 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef MPEGMETADATAMODEL_H -#define MPEGMETADATAMODEL_H - -#include -#include - -class QTextCodec; - -class MPEGMetaDataModel : public MetaDataModel -{ -Q_OBJECT -public: - MPEGMetaDataModel(bool using_rusxmms, const QString &path, QObject *parent); - ~MPEGMetaDataModel(); - QHash audioProperties(); - QList tags(); - QPixmap cover(); - -private: - QList m_tags; - TagLib::MPEG::File *m_file; -}; - -class MpegFileTagModel : public TagModel -{ -public: - MpegFileTagModel(bool using_rusxmms, TagLib::MPEG::File *file, TagLib::MPEG::File::TagTypes tagType); - ~MpegFileTagModel(); - const QString name(); - QList keys(); - const QString value(Qmmp::MetaData key); - void setValue(Qmmp::MetaData key, const QString &value); - bool exists(); - void create(); - void remove(); - void save(); - -private: - bool m_using_rusxmms; - QTextCodec *m_codec; - TagLib::MPEG::File *m_file; - TagLib::Tag *m_tag; - TagLib::MPEG::File::TagTypes m_tagType; -}; - -#endif // MPEGMETADATAMODEL_H diff --git a/src/plugins/Input/mad/replaygainreader.cpp b/src/plugins/Input/mad/replaygainreader.cpp deleted file mode 100644 index e4bb4f56c..000000000 --- a/src/plugins/Input/mad/replaygainreader.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2009-2016 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "replaygainreader.h" - -ReplayGainReader::ReplayGainReader(const QString &path) -{ - TagLib::FileStream stream(QStringToFileName(path), true); - TagLib::MPEG::File fileRef(&stream, TagLib::ID3v2::FrameFactory::instance()); - if(fileRef.ID3v2Tag()) - readID3v2(fileRef.ID3v2Tag()); - if(m_values.isEmpty() && fileRef.APETag()) - readAPE(fileRef.APETag()); -} - -QMap ReplayGainReader::replayGainInfo() const -{ - return m_values; -} - -void ReplayGainReader::readID3v2(TagLib::ID3v2::Tag *tag) -{ - TagLib::ID3v2::UserTextIdentificationFrame* frame = 0; - TagLib::ID3v2::FrameList frames = tag->frameList("TXXX"); - for(TagLib::ID3v2::FrameList::Iterator it = frames.begin(); it != frames.end(); ++it) - { - frame = dynamic_cast(*it); - if(frame && frame->fieldList().size() >= 2) - { - TagLib::String desc = frame->description().upper(); - if (desc == "REPLAYGAIN_TRACK_GAIN") - setValue(Qmmp::REPLAYGAIN_TRACK_GAIN, TStringToQString(frame->fieldList()[1])); - else if (desc == "REPLAYGAIN_TRACK_PEAK") - setValue(Qmmp::REPLAYGAIN_TRACK_PEAK, TStringToQString(frame->fieldList()[1])); - else if (desc == "REPLAYGAIN_ALBUM_GAIN") - setValue(Qmmp::REPLAYGAIN_ALBUM_GAIN, TStringToQString(frame->fieldList()[1])); - else if (desc == "REPLAYGAIN_ALBUM_PEAK") - setValue(Qmmp::REPLAYGAIN_ALBUM_PEAK, TStringToQString(frame->fieldList()[1])); - } - } -} - -void ReplayGainReader::readAPE(TagLib::APE::Tag *tag) -{ - TagLib::APE::ItemListMap items = tag->itemListMap(); - if (items.contains("REPLAYGAIN_TRACK_GAIN")) - setValue(Qmmp::REPLAYGAIN_TRACK_GAIN,TStringToQString(items["REPLAYGAIN_TRACK_GAIN"].values()[0])); - if (items.contains("REPLAYGAIN_TRACK_PEAK")) - setValue(Qmmp::REPLAYGAIN_TRACK_PEAK,TStringToQString(items["REPLAYGAIN_TRACK_PEAK"].values()[0])); - if (items.contains("REPLAYGAIN_ALBUM_GAIN")) - setValue(Qmmp::REPLAYGAIN_ALBUM_GAIN,TStringToQString(items["REPLAYGAIN_ALBUM_GAIN"].values()[0])); - if (items.contains("REPLAYGAIN_ALBUM_PEAK")) - setValue(Qmmp::REPLAYGAIN_ALBUM_PEAK,TStringToQString(items["REPLAYGAIN_ALBUM_PEAK"].values()[0])); -} - -void ReplayGainReader::setValue(Qmmp::ReplayGainKey key, QString value) -{ - value.remove(" dB"); - if(value.isEmpty()) - return; - bool ok; - double v = value.toDouble(&ok); - if(ok) - m_values[key] = v; -} diff --git a/src/plugins/Input/mad/replaygainreader.h b/src/plugins/Input/mad/replaygainreader.h deleted file mode 100644 index 03398dc16..000000000 --- a/src/plugins/Input/mad/replaygainreader.h +++ /dev/null @@ -1,46 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2009-2013 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef REPLAYGAINREADER_H -#define REPLAYGAINREADER_H - -#include -#include -#include -#include -#include - -/** - @author Ilya Kotov -*/ -class ReplayGainReader -{ -public: - ReplayGainReader(const QString &path); - QMap replayGainInfo() const; - -private: - void readID3v2(TagLib::ID3v2::Tag *tag); - void readAPE(TagLib::APE::Tag *tag); - void setValue(Qmmp::ReplayGainKey key, QString value); - QMap m_values; -}; - -#endif // REPLAYGAINREADER_H diff --git a/src/plugins/Input/mad/settingsdialog.cpp b/src/plugins/Input/mad/settingsdialog.cpp deleted file mode 100644 index 7371d2cf9..000000000 --- a/src/plugins/Input/mad/settingsdialog.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2016 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ -#include -#include -#include -#include -#include "settingsdialog.h" - -SettingsDialog::SettingsDialog(bool using_rusxmms, QWidget *parent) - : QDialog(parent) -{ - m_ui.setupUi(this); - setAttribute(Qt::WA_DeleteOnClose); - findCodecs(); - foreach (QTextCodec *codec, codecs) - { - m_ui.id3v1EncComboBox->addItem(codec->name()); - m_ui.id3v2EncComboBox->addItem(codec->name()); - } - QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - settings.beginGroup("MAD"); - int pos = m_ui.id3v1EncComboBox->findText - (settings.value("ID3v1_encoding","ISO-8859-1").toString()); - m_ui.id3v1EncComboBox->setCurrentIndex(pos); - pos = m_ui.id3v2EncComboBox->findText - (settings.value("ID3v2_encoding","UTF-8").toString()); - m_ui.id3v2EncComboBox->setCurrentIndex(pos); - - m_ui.firstTagComboBox->setCurrentIndex(settings.value("tag_1", ID3v2).toInt()); - m_ui.secondTagComboBox->setCurrentIndex(settings.value("tag_2", APE).toInt()); - m_ui.thirdTagComboBox->setCurrentIndex(settings.value("tag_3", ID3v1).toInt()); - - settings.endGroup(); - connect(m_ui.buttonBox, SIGNAL(accepted()), SLOT(writeSettings())); - - - if(using_rusxmms) - { - m_ui.id3v1EncComboBox->setEnabled(false); - m_ui.id3v2EncComboBox->setEnabled(false); - } -} - - -SettingsDialog::~SettingsDialog() -{} - -void SettingsDialog::writeSettings() -{ - QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - settings.beginGroup("MAD"); - settings.setValue("ID3v1_encoding", m_ui.id3v1EncComboBox->currentText()); - settings.setValue("ID3v2_encoding", m_ui.id3v2EncComboBox->currentText()); - settings.setValue("tag_1", m_ui.firstTagComboBox->currentIndex()); - settings.setValue("tag_2", m_ui.secondTagComboBox->currentIndex()); - settings.setValue("tag_3", m_ui.thirdTagComboBox->currentIndex()); - settings.endGroup(); - accept(); -} - -void SettingsDialog::findCodecs() -{ - QMap codecMap; - QRegExp iso8859RegExp("ISO[- ]8859-([0-9]+).*"); - - foreach (int mib, QTextCodec::availableMibs()) - { - QTextCodec *codec = QTextCodec::codecForMib(mib); - - QString sortKey = codec->name().toUpper(); - int rank; - - if (sortKey.startsWith("UTF-8")) - { - rank = 1; - } - else if (sortKey.startsWith("UTF-16")) - { - rank = 2; - } - else if (iso8859RegExp.exactMatch(sortKey)) - { - if (iso8859RegExp.cap(1).size() == 1) - rank = 3; - else - rank = 4; - } - else - { - rank = 5; - } - sortKey.prepend(QChar('0' + rank)); - - codecMap.insert(sortKey, codec); - } - codecs = codecMap.values(); -} diff --git a/src/plugins/Input/mad/settingsdialog.h b/src/plugins/Input/mad/settingsdialog.h deleted file mode 100644 index b3701e9d9..000000000 --- a/src/plugins/Input/mad/settingsdialog.h +++ /dev/null @@ -1,49 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2009-2014 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ -#ifndef SETTINGSDIALOG_H -#define SETTINGSDIALOG_H - -#include -#include "ui_settingsdialog.h" - -/** - @author Ilya Kotov -*/ -class SettingsDialog : public QDialog -{ -Q_OBJECT -public: - SettingsDialog(bool using_rusxmms, QWidget *parent = 0); - - ~SettingsDialog(); - - enum TagType {ID3v1 = 0, ID3v2, APE, Disabled}; - -private slots: - void writeSettings(); - -private: - void findCodecs(); - Ui::SettingsDialog m_ui; - QList codecs; - -}; - -#endif diff --git a/src/plugins/Input/mad/settingsdialog.ui b/src/plugins/Input/mad/settingsdialog.ui deleted file mode 100644 index 94d4af4dc..000000000 --- a/src/plugins/Input/mad/settingsdialog.ui +++ /dev/null @@ -1,310 +0,0 @@ - - - SettingsDialog - - - - 0 - 0 - 238 - 243 - - - - MPEG Plugin Settings - - - - 6 - - - 6 - - - 6 - - - - - Tag Priority - - - - - - - 0 - 0 - - - - First: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - 0 - - - - ID3v1 - - - - - ID3v2 - - - - - APE - - - - - Disabled - - - - - - - - - 0 - 0 - - - - Second: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - 0 - - - - ID3v1 - - - - - ID3v2 - - - - - APE - - - - - Disabled - - - - - - - - - 0 - 0 - - - - Third: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - 0 - - - - ID3v1 - - - - - ID3v2 - - - - - APE - - - - - Disabled - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - Encodings - - - - - - - 0 - 0 - - - - ID3v1 encoding: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - ID3v2 encoding: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - Qt::Horizontal - - - - 125 - 18 - - - - - - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - rejected() - SettingsDialog - reject() - - - 162 - 245 - - - 70 - 244 - - - - - diff --git a/src/plugins/Input/mad/tagextractor.cpp b/src/plugins/Input/mad/tagextractor.cpp deleted file mode 100644 index c65cb6985..000000000 --- a/src/plugins/Input/mad/tagextractor.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "tagextractor.h" - -TagExtractor::TagExtractor(QIODevice *d) -{ - m_d = d; -} - - -TagExtractor::~TagExtractor() -{ -} - -const QMap TagExtractor::id3v2tag() -{ - QByteArray array = m_d->peek(2048); - int offset = array.indexOf("ID3"); - if (offset < 0) - return m_tag; - ID3v2Tag taglib_tag(&array, offset); - if (taglib_tag.isEmpty()) - return m_tag; - - TagLib::String album = taglib_tag.album(); - TagLib::String artist = taglib_tag.artist(); - TagLib::String comment = taglib_tag.comment(); - TagLib::String genre = taglib_tag.genre(); - TagLib::String title = taglib_tag.title(); - - QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - settings.beginGroup("MAD"); - QByteArray name = settings.value("ID3v2_encoding","UTF-8").toByteArray (); - bool utf = false; - QTextCodec *codec = 0; - if (name.contains("UTF")) - { - codec = QTextCodec::codecForName ("UTF-8"); - utf = true; - } - else - codec = QTextCodec::codecForName(name); - settings.endGroup(); - - if (!codec) - codec = QTextCodec::codecForName ("UTF-8"); - - m_tag.insert(Qmmp::ALBUM, - codec->toUnicode(album.toCString(utf)).trimmed()); - m_tag.insert(Qmmp::ARTIST, - codec->toUnicode(artist.toCString(utf)).trimmed()); - m_tag.insert(Qmmp::COMMENT, - codec->toUnicode(comment.toCString(utf)).trimmed()); - m_tag.insert(Qmmp::GENRE, - codec->toUnicode(genre.toCString(utf)).trimmed()); - m_tag.insert(Qmmp::TITLE, - codec->toUnicode(title.toCString(utf)).trimmed()); - m_tag.insert(Qmmp::YEAR, - QString::number(taglib_tag.year())); - m_tag.insert(Qmmp::TRACK, - QString::number(taglib_tag.track())); - - if(!taglib_tag.frameListMap()["TCOM"].isEmpty()) - { - TagLib::String composer = taglib_tag.frameListMap()["TCOM"].front()->toString(); - m_tag.insert(Qmmp::COMPOSER, codec->toUnicode(composer.toCString(utf)).trimmed()); - } - if(!taglib_tag.frameListMap()["TPOS"].isEmpty()) - { - TagLib::String disc = taglib_tag.frameListMap()["TPOS"].front()->toString(); - m_tag.insert(Qmmp::DISCNUMBER, QString(disc.toCString()).trimmed()); - } - return m_tag; -} - -ID3v2Tag::ID3v2Tag(QByteArray *array, long offset) : TagLib::ID3v2::Tag() -{ - m_buf = new QBuffer(array); - m_buf->open(QIODevice::ReadOnly); - m_offset = offset; - read(); -} - -void ID3v2Tag::read () -{ - m_buf->seek(m_offset); - uint to_read = TagLib::ID3v2::Header::size(); - if (to_read > 2048 - uint(m_offset)) - return; - header()->setData(TagLib::ByteVector(m_buf->read(to_read).data(), to_read)); - to_read = header()->tagSize(); - if (!to_read || 2048 < m_offset + TagLib::ID3v2::Header::size()) - return; - QByteArray array = m_buf->read(to_read); - TagLib::ByteVector v(array.data(), array.size()); - parse(v); -} diff --git a/src/plugins/Input/mad/tagextractor.h b/src/plugins/Input/mad/tagextractor.h deleted file mode 100644 index c6151d22b..000000000 --- a/src/plugins/Input/mad/tagextractor.h +++ /dev/null @@ -1,68 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Ilya Kotov * - * forkotov02@ya.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ -#ifndef TAGEXTRACTOR_H -#define TAGEXTRACTOR_H - -#include - -#include -#include -#include -#include -#include - -#include - -class QIODevice; -class QBuffer; -class QByteArray; - -/** - @author Ilya Kotov -*/ -class TagExtractor -{ -public: - TagExtractor(QIODevice *d); - - ~TagExtractor(); - - const QMap id3v2tag(); - -private: - QMap m_tag; - QIODevice *m_d; - -}; - -class ID3v2Tag : public TagLib::ID3v2::Tag -{ -public: - ID3v2Tag(QByteArray *array, long offset); - -protected: - void read (); - -private: - QBuffer *m_buf; - long m_offset; -}; - -#endif diff --git a/src/plugins/Input/mad/translations/mad_plugin_bg.ts b/src/plugins/Input/mad/translations/mad_plugin_bg.ts deleted file mode 100644 index 3425ba5a6..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_bg.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - - - - - MPEG Files - - - - - About MPEG Audio Plugin - - - - - Qmmp MPEG Audio Plugin - - - - - Compiled against libmad version: - - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - - - - - Bitrate - - - - - kbps - - - - - Sample rate - - - - - Hz - - - - - - - - Mode - - - - - KB - - - - - File size - - - - - - Protection - - - - - - - Yes - - - - - - - No - - - - - - Copyright - - - - - - Original - - - - - SettingsDialog - - - MPEG Plugin Settings - - - - - Tag Priority - - - - - First: - - - - - - - ID3v1 - - - - - - - ID3v2 - - - - - - - APE - - - - - - - Disabled - - - - - Second: - - - - - Third: - - - - - Encodings - - - - - ID3v1 encoding: - - - - - ID3v2 encoding: - - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_cs.ts b/src/plugins/Input/mad/translations/mad_plugin_cs.ts deleted file mode 100644 index a8cab007b..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_cs.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Modul MPEG - - - - MPEG Files - Soubory MPEG - - - - About MPEG Audio Plugin - O modulu MPEG - - - - Qmmp MPEG Audio Plugin - Vstupní modul Qmmp MPEG - - - - Compiled against libmad version: - Zkompilováno s libmad verze: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - Zdrojový kód je založen na projektech mq3 a madplay - - - - MPEGMetaDataModel - - - Format - Formát - - - - Bitrate - Datový tok - - - - kbps - kbps - - - - Sample rate - Vzorkovací frekvence - - - - Hz - Hz - - - - - - - Mode - Režim - - - - KB - KiB - - - - File size - Velikost souboru - - - - - Protection - Ochrana - - - - - - Yes - Ano - - - - - - No - Ne - - - - - Copyright - Copyright - - - - - Original - Originál - - - - SettingsDialog - - - MPEG Plugin Settings - Nastavení pluginu MPEG - - - - Tag Priority - Priorita tagu - - - - First: - První: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Zakázáno - - - - Second: - Druhý: - - - - Third: - Třetí: - - - - Encodings - Kódování - - - - ID3v1 encoding: - Kódování ID3v1: - - - - ID3v2 encoding: - Kódování ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_de.ts b/src/plugins/Input/mad/translations/mad_plugin_de.ts deleted file mode 100644 index bbbc0f671..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_de.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG-Modul - - - - MPEG Files - MPEG-Dateien - - - - About MPEG Audio Plugin - Über MPEG-Audiomodul - - - - Qmmp MPEG Audio Plugin - Qmmp MPEG-Audiomodul - - - - Compiled against libmad version: - Kompiliert gegen libmad-Version: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Geschrieben von: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Basiert auf Code von den mq3- und madplay-Projekten - - - - MPEGMetaDataModel - - - Format - Format - - - - Bitrate - Bitrate - - - - kbps - KBit/s - - - - Sample rate - Abtastrate - - - - Hz - Hz - - - - - - - Mode - Modus - - - - KB - KB - - - - File size - Dateigröße - - - - - Protection - Geschützt - - - - - - Yes - Ja - - - - - - No - Nein - - - - - Copyright - Copyright - - - - - Original - Original - - - - SettingsDialog - - - MPEG Plugin Settings - Einstellungen MPEG-Modul - - - - Tag Priority - Schlagwortpriorität - - - - First: - Erster: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Deaktiviert - - - - Second: - Zweiter: - - - - Third: - Dritter: - - - - Encodings - Kodierungen - - - - ID3v1 encoding: - ID3v1-Kodierung: - - - - ID3v2 encoding: - ID3v2-Kodierung: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_el.ts b/src/plugins/Input/mad/translations/mad_plugin_el.ts deleted file mode 100644 index 162999bb5..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_el.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Πρόσθετο MPEG - - - - MPEG Files - Αρχεία MPEG - - - - About MPEG Audio Plugin - Σχετικά με το πρόσθετο ήχου MPEG - - - - Qmmp MPEG Audio Plugin - Qmmp πρόσθετο ήχου MPEG - - - - Compiled against libmad version: - Μεταγλωττίστηκε χρησιμοποιώντας την έκδοση της βιβλιοθήκης libmad: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Γράφτηκε από τον: Ilya Kotov <forkotov02@hotmail.ru> - - - - Source code based on mq3 and madplay projects - Ο πηγαίος κώδικας έχει βασιστεί στα έργα mq3 και madplay - - - - MPEGMetaDataModel - - - Format - Μορφή - - - - Bitrate - Ρυθμός bit - - - - kbps - kbps - - - - Sample rate - Ρυθμός δειγματοληψίας - - - - Hz - Hz - - - - - - - Mode - Λειτουργία - - - - KB - KB - - - - File size - Μέγεθος αρχείου - - - - - Protection - Προστασία - - - - - - Yes - Ναι - - - - - - No - Όχι - - - - - Copyright - Πνευματικά δικαιώματα - - - - - Original - Αρχικό - - - - SettingsDialog - - - MPEG Plugin Settings - Ρυθμίσεις πρόσθετου MPEG - - - - Tag Priority - Προτεραιότητα ετικέτας - - - - First: - Πρώτη: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Απενεργοποιημένο - - - - Second: - Δεύτερη: - - - - Third: - Τρίτη - - - - Encodings - Κωδικοποιήσεις - - - - ID3v1 encoding: - Κωδικοποίηση ID3v1: - - - - ID3v2 encoding: - Κωδικοποίηση ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_en.ts b/src/plugins/Input/mad/translations/mad_plugin_en.ts deleted file mode 100644 index 9614b9bfe..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_en.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - - - - - MPEG Files - - - - - About MPEG Audio Plugin - - - - - Qmmp MPEG Audio Plugin - - - - - Compiled against libmad version: - - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - - - - - Bitrate - - - - - kbps - - - - - Sample rate - - - - - Hz - - - - - - - - Mode - - - - - KB - - - - - File size - - - - - - Protection - - - - - - - Yes - - - - - - - No - - - - - - Copyright - - - - - - Original - - - - - SettingsDialog - - - MPEG Plugin Settings - - - - - Tag Priority - - - - - First: - - - - - - - ID3v1 - - - - - - - ID3v2 - - - - - - - APE - - - - - - - Disabled - - - - - Second: - - - - - Third: - - - - - Encodings - - - - - ID3v1 encoding: - - - - - ID3v2 encoding: - - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_es.ts b/src/plugins/Input/mad/translations/mad_plugin_es.ts deleted file mode 100644 index bd8d4b0eb..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_es.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Módulo MPEG - - - - MPEG Files - Archivos MPEG - - - - About MPEG Audio Plugin - Acerca del módulo de audio MPEG - - - - Qmmp MPEG Audio Plugin - Módulo de audio MPEG para Qmmp - - - - Compiled against libmad version: - Compilado con libmad version: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Escrito por: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Código fuente basado sobre proyectos mq3 y madplay - - - - MPEGMetaDataModel - - - Format - Formato - - - - Bitrate - Tasa de bits - - - - kbps - kbps - - - - Sample rate - Frecuencia - - - - Hz - Hz - - - - - - - Mode - Modo - - - - KB - KB - - - - File size - Tamaño del archivo - - - - - Protection - Protección - - - - - - Yes - - - - - - - No - No - - - - - Copyright - Copyright - - - - - Original - Original - - - - SettingsDialog - - - MPEG Plugin Settings - Configuración del módulo MPEG - - - - Tag Priority - Prioridad de etiquetas - - - - First: - Primera: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Deshabilitado - - - - Second: - Segunda: - - - - Third: - Tercera: - - - - Encodings - Codificaciones - - - - ID3v1 encoding: - Codificación ID3v1: - - - - ID3v2 encoding: - Codificación ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_fi.ts b/src/plugins/Input/mad/translations/mad_plugin_fi.ts deleted file mode 100644 index 650ff7c2c..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_fi.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG-liitännäinen - - - - MPEG Files - MPEG-tiedostot - - - - About MPEG Audio Plugin - Tietoja - MPEG-ääniliitännäinen - - - - Qmmp MPEG Audio Plugin - Qmmp:n MPEG-ääniliitännäinen - - - - Compiled against libmad version: - Koostettu vasten libmadin versiota: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Toteuttanut: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - - - - - Bitrate - Bittinopeus - - - - kbps - kbps - - - - Sample rate - Näytteenottotaajuus - - - - Hz - Hz - - - - - - - Mode - - - - - KB - kt - - - - File size - Tiedostokoko - - - - - Protection - Suojaus - - - - - - Yes - Kyllä - - - - - - No - Ei - - - - - Copyright - Tekijänoikeus - - - - - Original - Alkuperäinen - - - - SettingsDialog - - - MPEG Plugin Settings - MPEG-liitännäisen asetukset - - - - Tag Priority - - - - - First: - - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - - - - - - - Disabled - - - - - Second: - - - - - Third: - - - - - Encodings - - - - - ID3v1 encoding: - - - - - ID3v2 encoding: - - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_fr.ts b/src/plugins/Input/mad/translations/mad_plugin_fr.ts deleted file mode 100644 index 75b564ce6..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_fr.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Greffon MPEG - - - - MPEG Files - Fichiers MPEG - - - - About MPEG Audio Plugin - À propos du greffon audio MPEG - - - - Qmmp MPEG Audio Plugin - Greffon audio MPEG pour Qmmp - - - - Compiled against libmad version: - Compilé contre libmad version : - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Écrit par : Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Code source basé sur les projets mq3 et madplay - - - - MPEGMetaDataModel - - - Format - Format - - - - Bitrate - Débit binaire - - - - kbps - kbps - - - - Sample rate - Taux d’échantillonnage - - - - Hz - Hz - - - - - - - Mode - Mode - - - - KB - Ko - - - - File size - Taille du fichier - - - - - Protection - Protection - - - - - - Yes - Oui - - - - - - No - Non - - - - - Copyright - Copyright - - - - - Original - Original - - - - SettingsDialog - - - MPEG Plugin Settings - Configuration du greffon MPEG - - - - Tag Priority - Priorité d'étiquette - - - - First: - Premier : - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Désactivé - - - - Second: - Deuxième : - - - - Third: - Troisième : - - - - Encodings - Encodages - - - - ID3v1 encoding: - Encodage ID3v1 : - - - - ID3v2 encoding: - Encodage ID3v2 : - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_gl_ES.ts b/src/plugins/Input/mad/translations/mad_plugin_gl_ES.ts deleted file mode 100644 index ac07a4377..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_gl_ES.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Engadido MPEG - - - - MPEG Files - Ficheiros MPEG - - - - About MPEG Audio Plugin - Sobre o engadido MPEG - - - - Qmmp MPEG Audio Plugin - Engadido audio MPEG de Qmmp - - - - Compiled against libmad version: - Compilado coa versión libmad: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - Código fonte baseado nos proxectos mq3 e madplay - - - - MPEGMetaDataModel - - - Format - Formato - - - - Bitrate - Taxa de bits - - - - kbps - kbps - - - - Sample rate - Frecuencia de mostra - - - - Hz - Hz - - - - - - - Mode - Modo - - - - KB - KB - - - - File size - Tamaño de ficheiro - - - - - Protection - Protección - - - - - - Yes - Si - - - - - - No - Non - - - - - Copyright - Copyright - - - - - Original - Orixinal - - - - SettingsDialog - - - MPEG Plugin Settings - Preferencias do engadido MPEG - - - - Tag Priority - Prioridade de etiquetas - - - - First: - Primeira: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Desactivado - - - - Second: - Segunda: - - - - Third: - Terceira: - - - - Encodings - Codificacións - - - - ID3v1 encoding: - Codificación ID3v1: - - - - ID3v2 encoding: - Codificación ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_he.ts b/src/plugins/Input/mad/translations/mad_plugin_he.ts deleted file mode 100644 index 5b238f1d1..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_he.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - תוסף MPEG - - - - MPEG Files - קבצי MPEG - - - - About MPEG Audio Plugin - אודות תוסף שמע MPEG - - - - Qmmp MPEG Audio Plugin - תוסף שמע MPEG של Qmmp - - - - Compiled against libmad version: - הודר כנגדlibmad גירסה: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - קוד מקור מבוסס על המיזמים mq3 וגם madplay - - - - MPEGMetaDataModel - - - Format - פורמט - - - - Bitrate - שיעור סיביות - - - - kbps - - - - - Sample rate - שיעור דגימה - - - - Hz - הרץ - - - - - - - Mode - מצב - - - - KB - ק״ב - - - - File size - גודל קובץ - - - - - Protection - הגנה - - - - - - Yes - כן - - - - - - No - לא - - - - - Copyright - זכויות יוצרים - - - - - Original - מקורי - - - - SettingsDialog - - - MPEG Plugin Settings - הגדרות תוסף MPEG - - - - Tag Priority - עדיפות תגית - - - - First: - ראשונה: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - מנוטרלת - - - - Second: - שניה: - - - - Third: - שלישית: - - - - Encodings - קידוד - - - - ID3v1 encoding: - קידוד ID3v1: - - - - ID3v2 encoding: - קידוד ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_hu.ts b/src/plugins/Input/mad/translations/mad_plugin_hu.ts deleted file mode 100644 index 2ab90a740..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_hu.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - - - - - MPEG Files - - - - - About MPEG Audio Plugin - - - - - Qmmp MPEG Audio Plugin - - - - - Compiled against libmad version: - - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - - - - - Bitrate - - - - - kbps - - - - - Sample rate - - - - - Hz - - - - - - - - Mode - - - - - KB - - - - - File size - - - - - - Protection - - - - - - - Yes - - - - - - - No - - - - - - Copyright - - - - - - Original - - - - - SettingsDialog - - - MPEG Plugin Settings - - - - - Tag Priority - - - - - First: - - - - - - - ID3v1 - - - - - - - ID3v2 - - - - - - - APE - - - - - - - Disabled - - - - - Second: - - - - - Third: - - - - - Encodings - - - - - ID3v1 encoding: - - - - - ID3v2 encoding: - - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_id.ts b/src/plugins/Input/mad/translations/mad_plugin_id.ts deleted file mode 100644 index 0f25c2ade..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_id.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Plugin MPEG - - - - MPEG Files - File MPEG - - - - About MPEG Audio Plugin - Tentang Plugin Audio MPEG - - - - Qmmp MPEG Audio Plugin - Plugin Audio MPEG Qmmp - - - - Compiled against libmad version: - Dikompilasi terhadap versi libmad: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - Kode sumber berdasarkan pada mq3 dan proyek madplay - - - - MPEGMetaDataModel - - - Format - Format - - - - Bitrate - Bitrate - - - - kbps - kbps - - - - Sample rate - Sample rate - - - - Hz - Hz - - - - - - - Mode - Mode - - - - KB - KB - - - - File size - Ukuran file - - - - - Protection - Perlindungan - - - - - - Yes - Ya - - - - - - No - Tidak - - - - - Copyright - Hak cipta - - - - - Original - Asli - - - - SettingsDialog - - - MPEG Plugin Settings - Setelan Plugin MPEG - - - - Tag Priority - Prioritas Tag - - - - First: - Pertama: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Dinonaktifkan - - - - Second: - Detik: - - - - Third: - Ketiga: - - - - Encodings - Pengkodean - - - - ID3v1 encoding: - Pengkodean ID3v1: - - - - ID3v2 encoding: - Pengkodean ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_it.ts b/src/plugins/Input/mad/translations/mad_plugin_it.ts deleted file mode 100644 index be82bfb0a..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_it.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Modulo MPEG - - - - MPEG Files - Brani MPEG - - - - About MPEG Audio Plugin - Info sul modulo audio MPEG - - - - Qmmp MPEG Audio Plugin - Modulo audio MPEG per Qmmp - - - - Compiled against libmad version: - Compilato con libmad-Version: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Autore: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - Formato - - - - Bitrate - bit al secondo - - - - kbps - kbps - - - - Sample rate - Campionamento - - - - Hz - Hz - - - - - - - Mode - Modo - - - - KB - KB - - - - File size - Dimensione file - - - - - Protection - Protezione - - - - - - Yes - - - - - - - No - No - - - - - Copyright - Copyright - - - - - Original - Originale - - - - SettingsDialog - - - MPEG Plugin Settings - Impostazioni modulo MPEG - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - ID3v1 encoding: - Codifica ID3v1: - - - - ID3v2 encoding: - Codifica ID3v2: - - - - Tag Priority - Priorità etichettatura - - - - First: - Prima: - - - - - - APE - APE - - - - - - Disabled - Disabilitata - - - - Second: - Seconda: - - - - Third: - Terza: - - - - Encodings - Codifiche - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_ja.ts b/src/plugins/Input/mad/translations/mad_plugin_ja.ts deleted file mode 100644 index d860a0c4c..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_ja.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG プラグイン - - - - MPEG Files - MPEG ファイル - - - - About MPEG Audio Plugin - MPEG 音響プラグインについて - - - - Qmmp MPEG Audio Plugin - QMMP MPEG 音響プラグイン - - - - Compiled against libmad version: - コンパイル時に使われた libmad の版はつぎのとおり: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - 制作: Илья Котов (Ilya Kotov) <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - ソースコードは mq3 と madplay の両プロジェクトから流用 - - - - MPEGMetaDataModel - - - Format - 形式 - - - - Bitrate - ビットレート - - - - kbps - キロビット毎秒 - - - - Sample rate - サンプルレート - - - - Hz - Hz - - - - - - - Mode - モード - - - - KB - KiB - - - - File size - ファイルの大きさ - - - - - Protection - 保護 - - - - - - Yes - する - - - - - - No - しない - - - - - Copyright - 著作権 - - - - - Original - 原作 - - - - SettingsDialog - - - MPEG Plugin Settings - MPEG プラグイン設定 - - - - Tag Priority - タグ優先度 - - - - First: - 第一: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - 無効 - - - - Second: - 第二: - - - - Third: - 第三: - - - - Encodings - 文字符号化の形式 - - - - ID3v1 encoding: - ID3v1 用文字符号化形式: - - - - ID3v2 encoding: - ID3v2 用文字符号化形式: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_kk.ts b/src/plugins/Input/mad/translations/mad_plugin_kk.ts deleted file mode 100644 index 8a702981c..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_kk.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - - - - - MPEG Files - - - - - About MPEG Audio Plugin - - - - - Qmmp MPEG Audio Plugin - - - - - Compiled against libmad version: - - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - - - - - Bitrate - - - - - kbps - - - - - Sample rate - - - - - Hz - - - - - - - - Mode - - - - - KB - - - - - File size - - - - - - Protection - - - - - - - Yes - - - - - - - No - - - - - - Copyright - - - - - - Original - - - - - SettingsDialog - - - MPEG Plugin Settings - - - - - Tag Priority - - - - - First: - - - - - - - ID3v1 - - - - - - - ID3v2 - - - - - - - APE - - - - - - - Disabled - - - - - Second: - - - - - Third: - - - - - Encodings - - - - - ID3v1 encoding: - - - - - ID3v2 encoding: - - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_lt.ts b/src/plugins/Input/mad/translations/mad_plugin_lt.ts deleted file mode 100644 index 749d83767..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_lt.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG įskiepis - - - - MPEG Files - MPEG bylos - - - - About MPEG Audio Plugin - Apie MPEG audio įskiepį - - - - Qmmp MPEG Audio Plugin - Qmmp MPEG įskiepis - - - - Compiled against libmad version: - Sukurta libmad pagrindu: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Sukūrė: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Kodas sukurtas mq3 ir madplay projektų kodais - - - - MPEGMetaDataModel - - - Format - Formatas - - - - Bitrate - Kokybė - - - - kbps - kbps - - - - Sample rate - Dažnis - - - - Hz - Hz - - - - - - - Mode - Metodas - - - - KB - КB - - - - File size - Bylos dydis - - - - - Protection - Apsauga - - - - - - Yes - Taip - - - - - - No - Ne - - - - - Copyright - Copyright - - - - - Original - Originalas - - - - SettingsDialog - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - ID3v1 encoding: - ID3v1 koduotė: - - - - ID3v2 encoding: - ID3v2 koduotė: - - - - MPEG Plugin Settings - MPEG įskiepio nustatymai - - - - Tag Priority - Tag pirmenybė - - - - First: - Pirmas: - - - - - - APE - APE - - - - - - Disabled - Išjungta - - - - Second: - Antras: - - - - Third: - Trečias: - - - - Encodings - Koduotės - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_nl.ts b/src/plugins/Input/mad/translations/mad_plugin_nl.ts deleted file mode 100644 index 0f1408d9f..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_nl.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG Module - - - - MPEG Files - MPEG Bestanden - - - - About MPEG Audio Plugin - Over de MPEG Audio Module - - - - Qmmp MPEG Audio Plugin - MPEG Audio Module voor Qmmp - - - - Compiled against libmad version: - Gecompileerd tegen libmad met versie: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Auteur: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Broncode gebasseerd op 'mq3' en 'madplay' projecten - - - - MPEGMetaDataModel - - - Format - Formaat - - - - Bitrate - Bitsnelheid - - - - kbps - - - - - Sample rate - Sample frequentie - - - - Hz - - - - - - - - Mode - Stand - - - - KB - - - - - File size - Bestandsgrootte - - - - - Protection - Bescherming - - - - - - Yes - Ja - - - - - - No - Nee - - - - - Copyright - - - - - - Original - Origineel - - - - SettingsDialog - - - MPEG Plugin Settings - MPEG Module Instellingen - - - - - - ID3v1 - - - - - - - ID3v2 - - - - - ID3v1 encoding: - ID3v1 codering: - - - - ID3v2 encoding: - ID3v2 codering: - - - - Tag Priority - Tag prioriteit - - - - First: - Primair: - - - - - - APE - - - - - - - Disabled - Uitgeschakeld - - - - Second: - Secundair: - - - - Third: - Tertiair: - - - - Encodings - Codering - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_pl_PL.ts b/src/plugins/Input/mad/translations/mad_plugin_pl_PL.ts deleted file mode 100644 index 223bd6102..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_pl_PL.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Wtyczka MPEG - - - - MPEG Files - Pliki MPEG - - - - About MPEG Audio Plugin - O wtyczce Audio MPEG - - - - Qmmp MPEG Audio Plugin - Wtyczka MPEG Audio dla Qmmp - - - - Compiled against libmad version: - Skompilowane przy użyciu biblioteki libmad w wersji: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - Kod źródłowy oparty na projektach mq3 oraz madplay - - - - MPEGMetaDataModel - - - Format - Format - - - - Bitrate - Szybkość transmisji - - - - kbps - - - - - Sample rate - Próbkowanie - - - - Hz - Hz - - - - - - - Mode - Tryb - - - - KB - KB - - - - File size - Wielkość pliku - - - - - Protection - Zabezpieczenie - - - - - - Yes - Tak - - - - - - No - Nie - - - - - Copyright - Prawa autorskie - - - - - Original - Oryginał - - - - SettingsDialog - - - MPEG Plugin Settings - Ustawienia wtyczki MPEG - - - - Tag Priority - Priorytet tagów - - - - First: - Pierwszy: - - - - - - ID3v1 - - - - - - - ID3v2 - - - - - - - APE - - - - - - - Disabled - Wyłączone - - - - Second: - Drugi: - - - - Third: - Trzeci: - - - - Encodings - Kodowania - - - - ID3v1 encoding: - Kodowanie ID3v1: - - - - ID3v2 encoding: - Kodowanie ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_pt.ts b/src/plugins/Input/mad/translations/mad_plugin_pt.ts deleted file mode 100644 index 0aa2c048d..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_pt.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Suplemento MPEG - - - - MPEG Files - Ficheiros MPEG - - - - About MPEG Audio Plugin - Sobre o suplemento MPEG Audio - - - - Qmmp MPEG Audio Plugin - Suplemento Qmmp MPEG Audio - - - - Compiled against libmad version: - Compilado com a versão libmad: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Desenvolvido por: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Baseado no código fonte dos projetos mq3 e madplay - - - - MPEGMetaDataModel - - - Format - Formato - - - - Bitrate - Taxa de dados - - - - kbps - kbps - - - - Sample rate - Frequência - - - - Hz - Hz - - - - - - - Mode - Modo - - - - KB - KB - - - - File size - Tamanho do ficheiro - - - - - Protection - Proteção - - - - - - Yes - Sim - - - - - - No - Não - - - - - Copyright - Copyright - - - - - Original - Original - - - - SettingsDialog - - - MPEG Plugin Settings - Definições - - - - Tag Priority - Prioridade das etiquetas - - - - First: - Primeiro: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Desativada - - - - Second: - Segundo: - - - - Third: - Terceiro: - - - - Encodings - Codificação - - - - ID3v1 encoding: - Codificação ID3v1: - - - - ID3v2 encoding: - Codificação ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_pt_BR.ts b/src/plugins/Input/mad/translations/mad_plugin_pt_BR.ts deleted file mode 100644 index 58e4cf0d3..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_pt_BR.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Plugin MPEG - - - - MPEG Files - Arquivos MPEG - - - - About MPEG Audio Plugin - Sobre o plugin MPEG Audio - - - - Qmmp MPEG Audio Plugin - Plugin Qmmp MPEG Audio - - - - Compiled against libmad version: - Compilado com a versão libmad: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - Baseado no código fonte dos projetos mq3 e madplay - - - - MPEGMetaDataModel - - - Format - Formato - - - - Bitrate - Taxa de dados - - - - kbps - kbps - - - - Sample rate - Frequência - - - - Hz - Hz - - - - - - - Mode - Modo - - - - KB - KB - - - - File size - Tamanho do arquivo - - - - - Protection - Proteção - - - - - - Yes - Sim - - - - - - No - Não - - - - - Copyright - Direitos autorais - - - - - Original - Original - - - - SettingsDialog - - - MPEG Plugin Settings - Preferências do plugin MPEG - - - - Tag Priority - Prioridade das etiquetas - - - - First: - Primeiro: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Desativada - - - - Second: - Segundo: - - - - Third: - Terceiro: - - - - Encodings - Codificação - - - - ID3v1 encoding: - Codificação ID3v1: - - - - ID3v2 encoding: - Codificação ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_ru.ts b/src/plugins/Input/mad/translations/mad_plugin_ru.ts deleted file mode 100644 index 0173fbdee..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_ru.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Модуль MPEG - - - - MPEG Files - Файлы MPEG - - - - About MPEG Audio Plugin - Об аудио-модуле MPEG - - - - Qmmp MPEG Audio Plugin - Аудио-модуль MPEG для Qmmp - - - - Compiled against libmad version: - Собрано с версией libmad: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Разработчик: Илья Котов <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Исходный код снован на проектах mq3 и madplay - - - - MPEGMetaDataModel - - - Format - Формат - - - - Bitrate - Битовая частота - - - - kbps - кбит/с - - - - Sample rate - Дискретизация - - - - Hz - Гц - - - - - - - Mode - Режим - - - - KB - КБ - - - - File size - Размер файла - - - - - Protection - Защита - - - - - - Yes - Да - - - - - - No - Нет - - - - - Copyright - Авторские права - - - - - Original - Оригинальный - - - - SettingsDialog - - - MPEG Plugin Settings - Настройка модуля MPEG - - - - Tag Priority - Приоритет тегов - - - - First: - Первый: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Выключен - - - - Second: - Второй: - - - - Third: - Третий: - - - - Encodings - Кодировки - - - - ID3v1 encoding: - Кодировка ID3v1: - - - - ID3v2 encoding: - Кодировка ID3v2: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_sk.ts b/src/plugins/Input/mad/translations/mad_plugin_sk.ts deleted file mode 100644 index 496c5c812..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_sk.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - - - - - MPEG Files - - - - - About MPEG Audio Plugin - - - - - Qmmp MPEG Audio Plugin - - - - - Compiled against libmad version: - - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - - - - - Bitrate - - - - - kbps - - - - - Sample rate - - - - - Hz - - - - - - - - Mode - - - - - KB - - - - - File size - - - - - - Protection - - - - - - - Yes - - - - - - - No - - - - - - Copyright - - - - - - Original - - - - - SettingsDialog - - - MPEG Plugin Settings - - - - - Tag Priority - - - - - First: - - - - - - - ID3v1 - - - - - - - ID3v2 - - - - - - - APE - - - - - - - Disabled - - - - - Second: - - - - - Third: - - - - - Encodings - - - - - ID3v1 encoding: - - - - - ID3v2 encoding: - - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_sr_BA.ts b/src/plugins/Input/mad/translations/mad_plugin_sr_BA.ts deleted file mode 100644 index 9d6f7751a..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_sr_BA.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - МПЕГ прикључак - - - - MPEG Files - МПЕГ фајлови - - - - About MPEG Audio Plugin - О МПЕГ прикључку - - - - Qmmp MPEG Audio Plugin - Кумп МПЕГ прикључак - - - - Compiled against libmad version: - Компилован на libmad издању: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Аутор: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Заснован на пројектима mq3 и madplay - - - - MPEGMetaDataModel - - - Format - Формат - - - - Bitrate - Битски проток - - - - kbps - kb/s - - - - Sample rate - Узорковање - - - - Hz - Hz - - - - - - - Mode - Режим - - - - KB - KB - - - - File size - Величина - - - - - Protection - Заштита - - - - - - Yes - Да - - - - - - No - Не - - - - - Copyright - Ауторско право - - - - - Original - Оригинал - - - - SettingsDialog - - - MPEG Plugin Settings - Поставке МПЕГ прикључка - - - - Tag Priority - Приоритет ознака - - - - First: - Прва: - - - - - - ID3v1 - ИД3в1 - - - - - - ID3v2 - ИД3в2 - - - - - - APE - ЕЈП - - - - - - Disabled - онемогућена - - - - Second: - Друга: - - - - Third: - Трећа: - - - - Encodings - Кодирање - - - - ID3v1 encoding: - ИД3в1 кодирање: - - - - ID3v2 encoding: - ИД3в2 кодирање: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_sr_RS.ts b/src/plugins/Input/mad/translations/mad_plugin_sr_RS.ts deleted file mode 100644 index 1f2a2b712..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_sr_RS.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - МПЕГ прикључак - - - - MPEG Files - МПЕГ фајлови - - - - About MPEG Audio Plugin - О МПЕГ прикључку - - - - Qmmp MPEG Audio Plugin - Кумп МПЕГ прикључак - - - - Compiled against libmad version: - Компилован на libmad издању: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Аутор: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Заснован на пројектима mq3 и madplay - - - - MPEGMetaDataModel - - - Format - Формат - - - - Bitrate - Битски проток - - - - kbps - kb/s - - - - Sample rate - Узорковање - - - - Hz - Hz - - - - - - - Mode - Режим - - - - KB - KB - - - - File size - Величина - - - - - Protection - Заштита - - - - - - Yes - Да - - - - - - No - Не - - - - - Copyright - Ауторско право - - - - - Original - Оригинал - - - - SettingsDialog - - - MPEG Plugin Settings - Поставке МПЕГ прикључка - - - - Tag Priority - Приоритет ознака - - - - First: - Прва: - - - - - - ID3v1 - ИД3в1 - - - - - - ID3v2 - ИД3в2 - - - - - - APE - ЕЈП - - - - - - Disabled - онемогућена - - - - Second: - Друга: - - - - Third: - Трећа: - - - - Encodings - Кодирање - - - - ID3v1 encoding: - ИД3в1 кодирање: - - - - ID3v2 encoding: - ИД3в2 кодирање: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_tr.ts b/src/plugins/Input/mad/translations/mad_plugin_tr.ts deleted file mode 100644 index beff9ad80..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_tr.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG Eklentisi - - - - MPEG Files - MPEG Dosyaları - - - - About MPEG Audio Plugin - MPEG Ses Eklentisi Hakkında - - - - Qmmp MPEG Audio Plugin - Qmmp MPEG Ses Eklentisi - - - - Compiled against libmad version: - Derlendiği libmad sürümü: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Yazan: Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - - - - - Bitrate - - - - - kbps - - - - - Sample rate - - - - - Hz - - - - - - - - Mode - - - - - KB - - - - - File size - - - - - - Protection - - - - - - - Yes - - - - - - - No - - - - - - Copyright - - - - - - Original - - - - - SettingsDialog - - - MPEG Plugin Settings - MPEG Eklenti Ayarları - - - - Tag Priority - Etiket Önceliği - - - - First: - İlk: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - Etkisiz - - - - Second: - İkinci: - - - - Third: - Üçüncü: - - - - Encodings - Kodlamalar - - - - ID3v1 encoding: - ID3v1 kodlaması: - - - - ID3v2 encoding: - ID3v2 kodlaması: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts b/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts deleted file mode 100644 index b533d0630..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_uk_UA.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - Модуль MPEG - - - - MPEG Files - Файли MPEG - - - - About MPEG Audio Plugin - Про аудіо-модуль MPEG - - - - Qmmp MPEG Audio Plugin - Аудіо-модуль MPEG для Qmmp - - - - Compiled against libmad version: - Зібрано з версією libmad: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - Розробник: Ілля Котов <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - Вихідні коди базуються на проектах mq3 та madplay - - - - MPEGMetaDataModel - - - Format - Формат - - - - Bitrate - Бітрейт - - - - kbps - Кб/с - - - - Sample rate - Частота - - - - Hz - Гц - - - - - - - Mode - Режим - - - - KB - Кб - - - - File size - Розмір файла - - - - - Protection - Захищено - - - - - - Yes - Так - - - - - - No - Ні - - - - - Copyright - Авторське право - - - - - Original - Оригінал - - - - SettingsDialog - - - - - ID3v1 - - - - - - - ID3v2 - - - - - ID3v1 encoding: - Кодування ID3v1: - - - - ID3v2 encoding: - Кодування ID3v2: - - - - MPEG Plugin Settings - Налаштування модуля MPEG - - - - Tag Priority - Пріоритет тегу - - - - First: - Перший: - - - - - - APE - APE - - - - - - Disabled - Вимкнути - - - - Second: - Другий: - - - - Third: - Третій: - - - - Encodings - Кодування - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts b/src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts deleted file mode 100644 index 40ffa5f37..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_zh_CN.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG 插件 - - - - MPEG Files - MPEG 文件 - - - - About MPEG Audio Plugin - 关于 MPEG 音频插件 - - - - Qmmp MPEG Audio Plugin - Qmmp MPEG 音频插件 - - - - Compiled against libmad version: - 编译基于 libmad 版本: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - - - - - Source code based on mq3 and madplay projects - 源代码基于mq3及madplay项目 - - - - MPEGMetaDataModel - - - Format - 格式 - - - - Bitrate - 比特率 - - - - kbps - 千比特每秒 - - - - Sample rate - 取样率 - - - - Hz - 赫兹 - - - - - - - Mode - 风格 - - - - KB - 千字节 - - - - File size - 文件大小 - - - - - Protection - 保护 - - - - - - Yes - - - - - - - No - - - - - - Copyright - 版权 - - - - - Original - 原创 - - - - SettingsDialog - - - MPEG Plugin Settings - MPEG 插件设置 - - - - Tag Priority - 标签优先 - - - - First: - 第一: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - 无效 - - - - Second: - 第二: - - - - Third: - 第三: - - - - Encodings - 编码 - - - - ID3v1 encoding: - ID3v1 编码: - - - - ID3v2 encoding: - ID3v2 编码: - - - diff --git a/src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts b/src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts deleted file mode 100644 index e6546e0c3..000000000 --- a/src/plugins/Input/mad/translations/mad_plugin_zh_TW.ts +++ /dev/null @@ -1,191 +0,0 @@ - - - - - DecoderMADFactory - - - MPEG Plugin - MPEG 外掛 - - - - MPEG Files - MPEG 檔案 - - - - About MPEG Audio Plugin - 關於 MPEG 聲訊插件 - - - - Qmmp MPEG Audio Plugin - Qmmp MPEG 聲訊插件 - - - - Compiled against libmad version: - 編譯基於 libmad 的版本: - - - - Written by: Ilya Kotov <forkotov02@ya.ru> - 作者:Ilya Kotov <forkotov02@ya.ru> - - - - Source code based on mq3 and madplay projects - - - - - MPEGMetaDataModel - - - Format - 格式 - - - - Bitrate - 比特率 - - - - kbps - kbps - - - - Sample rate - 取樣率 - - - - Hz - Hz - - - - - - - Mode - 風格 - - - - KB - KB - - - - File size - 文件大小 - - - - - Protection - 保護 - - - - - - Yes - - - - - - - No - - - - - - Copyright - 版權 - - - - - Original - 原創 - - - - SettingsDialog - - - MPEG Plugin Settings - MPEG 插件設定 - - - - Tag Priority - 標簽優先 - - - - First: - 第一: - - - - - - ID3v1 - ID3v1 - - - - - - ID3v2 - ID3v2 - - - - - - APE - APE - - - - - - Disabled - 無效 - - - - Second: - 第二: - - - - Third: - 第三: - - - - Encodings - 編碼 - - - - ID3v1 encoding: - ID3v1 編碼: - - - - ID3v2 encoding: - ID3v2 編碼: - - - diff --git a/src/plugins/Input/mad/translations/translations.qrc b/src/plugins/Input/mad/translations/translations.qrc deleted file mode 100644 index 18a8218b5..000000000 --- a/src/plugins/Input/mad/translations/translations.qrc +++ /dev/null @@ -1,32 +0,0 @@ - - - - mad_plugin_ru.qm - mad_plugin_uk_UA.qm - mad_plugin_zh_CN.qm - mad_plugin_zh_TW.qm - mad_plugin_tr.qm - mad_plugin_cs.qm - mad_plugin_pt_BR.qm - mad_plugin_pt.qm - mad_plugin_de.qm - mad_plugin_pl_PL.qm - mad_plugin_fr.qm - mad_plugin_it.qm - mad_plugin_kk.qm - mad_plugin_lt.qm - mad_plugin_hu.qm - mad_plugin_nl.qm - mad_plugin_ja.qm - mad_plugin_sk.qm - mad_plugin_es.qm - mad_plugin_he.qm - mad_plugin_gl_ES.qm - mad_plugin_sr_BA.qm - mad_plugin_sr_RS.qm - mad_plugin_bg.qm - mad_plugin_el.qm - mad_plugin_id.qm - mad_plugin_fi.qm - - -- cgit v1.2.3-13-gbd6f