File indexing completed on 2024-05-12 04:51:08

0001 /*
0002     SPDX-FileCopyrightText: 1998-2007 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef _K3B_MOVIX_PROGRAM_H_
0007 #define _K3B_MOVIX_PROGRAM_H_
0008 
0009 #include "k3bexternalbinmanager.h"
0010 #include "k3b_export.h"
0011 
0012 namespace K3b {
0013     class LIBK3B_EXPORT MovixBin : public ExternalBin
0014     {
0015     public:
0016         MovixBin( ExternalProgram& program, const QString& path )
0017             : ExternalBin( program, path ) {
0018         }
0019 
0020         const QString& movixDataDir() const { return m_movixPath; }
0021 
0022         const QStringList& supportedBootLabels() const { return m_supportedBootLabels; }
0023         QStringList supportedSubtitleFonts() const;
0024         QStringList supportedLanguages() const;
0025         QStringList supportedKbdLayouts() const;
0026         QStringList supportedBackgrounds() const;
0027         QStringList supportedCodecs() const;
0028 
0029         /*
0030          * Unused for eMovix versions 0.9.0 and above
0031          */
0032         const QStringList& movixFiles() const { return m_movixFiles; }
0033 
0034         /*
0035          * Unused for eMovix versions 0.9.0 and above
0036          */
0037         const QStringList& isolinuxFiles() const { return m_isolinuxFiles; }
0038 
0039         /**
0040          * returns empty string if font was not found
0041          *
0042          * Unused for eMovix versions 0.9.0 and above
0043          */
0044         QString subtitleFontDir( const QString& font ) const;
0045 
0046         /**
0047          * returns empty string if lang was not found
0048          *
0049          * Unused for eMovix versions 0.9.0 and above
0050          */
0051         QString languageDir( const QString& lang ) const;
0052 
0053         /**
0054          * Interface for the movix-conf --files interface for
0055          * versions >= 0.9.0
0056          */
0057         QStringList files( const QString& kbd = QString(),
0058                            const QString& font = QString(),
0059                            const QString& bg = QString(),
0060                            const QString& lang = QString(),
0061                            const QStringList& codecs = QStringList() ) const;
0062 
0063     private:
0064         QStringList supported( const QString& ) const;
0065 
0066         QString m_movixPath;
0067         QStringList m_movixFiles;
0068         QStringList m_isolinuxFiles;
0069         QStringList m_supportedBootLabels;
0070         QStringList m_supportedSubtitleFonts;
0071         QStringList m_supportedLanguages;
0072 
0073         friend class MovixProgram;
0074     };
0075 
0076 
0077     class LIBK3B_EXPORT MovixProgram : public ExternalProgram
0078     {
0079     public:
0080         MovixProgram();
0081 
0082         bool scan( const QString& ) override;
0083 
0084         bool supportsUserParameters() const override { return false; }
0085 
0086     private:
0087         bool scanNewEMovix( MovixBin* bin, const QString& );
0088         bool scanOldEMovix( MovixBin* bin, const QString& );
0089         QStringList determineSupportedBootLabels( const QString& ) const;
0090     };
0091 }
0092 
0093 
0094 
0095 #endif