aboutsummaryrefslogblamecommitdiff
path: root/src/plugins/Input/modplug/archivereader.h
blob: 0189787c98fcc25f6e0c2be7218ada2724b9196b (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
















                                                                            
                                                                            































                                                                             
/***************************************************************************
 *   Copyright (C) 2008 by Ilya Kotov                                      *
 *   forkotov02@hotmail.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 ARCHIVEREADER_H
#define ARCHIVEREADER_H

#include <QObject>
#include <QByteArray>

class QProcess;

/**
	@author Ilya Kotov <forkotov02@hotmail.ru>
*/
class ArchiveReader : public QObject
{
Q_OBJECT
public:
    ArchiveReader(QObject *parent = 0);

    ~ArchiveReader();

    bool isSupported(const QString &path);
    QByteArray unpack(const QString &path);

private:
    QProcess *m_process;
    QByteArray unzip(const QString &path);
    QByteArray gunzip(const QString &path);
    QByteArray bunzip2(const QString &path);

};

#endif
ialuser02@90c681e8-e032-0410-971d-27865f9a5e38> 2008-10-10 08:42:15 +0000 committer trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> 2008-10-10 08:42:15 +0000 cue sheet support' href='/qmmp/commit/src/plugins/Input/cue/decodercuefactory.cpp?id=45117f6d2f2ccfb47af840d4416f43607d83d518'>45117f6d2
2111b8272
45117f6d2



eb05b493c
45117f6d2
eb05b493c
013ee07b5


45117f6d2


8ba3c4bc2
45117f6d2
8ba3c4bc2

45117f6d2

833d350ae
45117f6d2
ce79cbc21
d33ea6f84
833d350ae
1bc607cb6
833d350ae
d33ea6f84
1bc607cb6

f91f63b99
d33ea6f84

f91f63b99
45117f6d2

1cc4b9337
45117f6d2
8d146b246
b917024aa
45117f6d2

7acba956e




45117f6d2




41c8a60a2
45117f6d2
2111b8272




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
                                                                            
                                                                            
                                                                            













                                                                            
                                                                            
                                                                             
 
                      
                        
                             
                    
                           

                              
                    
 
                                                    
 
                 

 
                                                       



                                       
                                                 
                                             
                                                 


                                  


                      
                                                                         
 

                                

 
                                                                                                                            
 
                    
                          
                            
     
                                                  
                                             

        
     

                                                      
     

 
                                                                                         
 
                       
                                                                            

 




                                                     




                                                             
                                                                         
 




                                              
/***************************************************************************
 *   Copyright (C) 2008-2021 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 <QMessageBox>
#include "decoder_cue.h"
#include "cuemetadatamodel.h"
#include "cuefile.h"
#include "settingsdialog.h"
#include "decodercuefactory.h"

// DecoderCUEFactory

bool DecoderCUEFactory::canDecode(QIODevice *) const
{
    return false;
}

DecoderProperties DecoderCUEFactory::properties() const
{
    DecoderProperties properties;
    properties.name = tr("CUE Plugin");
    properties.shortName = "cue";
    properties.filters = QStringList { "*.cue" };
    properties.description = tr("CUE Files");
    properties.protocols = QStringList { "cue" };
    properties.hasAbout = true;
    properties.hasSettings = true;
    properties.noInput = true;
    return properties;
}

Decoder *DecoderCUEFactory::create(const QString &path, QIODevice *input)
{
    Q_UNUSED(input);
    return new DecoderCUE(path);
}

QList<TrackInfo *> DecoderCUEFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *ignoredPaths)
{
    Q_UNUSED(parts);
    CueFile cueFile(path);
    if(path.contains("://"))
    {
        int track = path.section("#", -1).toInt();
        return cueFile.createPlayList(track);
    }
    else
    {
        ignoredPaths->append(cueFile.dataFilePaths());
        return cueFile.createPlayList();
    }
}

MetaDataModel* DecoderCUEFactory::createMetaDataModel(const QString &path, bool readOnly)
{
    Q_UNUSED(readOnly);
    return path.startsWith("cue://") ? new CUEMetaDataModel(path) : nullptr;
}

void DecoderCUEFactory::showSettings(QWidget *parent)
{
     SettingsDialog *s = new SettingsDialog(parent);
     s->show();
}

void DecoderCUEFactory::showAbout(QWidget *parent)
{
    QMessageBox::about (parent, tr("About CUE Audio Plugin"),
                        tr("Qmmp CUE Audio Plugin")+"\n"+
                        tr("Written by: Ilya Kotov <forkotov02@ya.ru>"));
}

QString DecoderCUEFactory::translation() const
{
    return  QLatin1String(":/cue_plugin_");
}