File indexing completed on 2024-04-21 04:50:11

0001 /*
0002     SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl>
0003     SPDX-FileCopyrightText: 1998-2007 Sebastian Trueg <trueg@k3b.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 
0009 #ifndef _K3B_INTERFACE_H_
0010 #define _K3B_INTERFACE_H_
0011 
0012 #include <QObject>
0013 #include <QString>
0014 #include <QStringList>
0015 
0016 
0017 namespace K3b {
0018     class MainWindow;
0019 
0020     class Interface : public QObject
0021     {
0022         Q_OBJECT
0023         Q_CLASSINFO( "D-Bus Interface", "org.k3b.MainWindow" )
0024 
0025     public:
0026         explicit Interface( MainWindow* main );
0027         ~Interface() override;
0028 
0029     public Q_SLOTS:
0030         /**
0031         * Returns a D-BUS path to a newly created project
0032         */
0033         QString createDataProject();
0034         QString createAudioProject();
0035         QString createMixedProject();
0036         QString createVcdProject();
0037         QString createMovixProject();
0038         QString createVideoDvdProject();
0039 
0040         /**
0041         * Returns a D-BUS path to the currently active project.
0042         */
0043         QString currentProject();
0044 
0045         QString openProject( const QString& url );
0046 
0047         QStringList projects();
0048 
0049         void copyMedium();
0050         void copyMedium( const QString& dev );
0051         void formatMedium();
0052         void writeImage();
0053         void writeImage( const QString& url );
0054 
0055         void audioCdRip();
0056         void audioCdRip( const QString& dev );
0057         void videoCdRip();
0058         void videoCdRip( const QString& dev );
0059         void videoDvdRip();
0060         void videoDvdRip( const QString& dev );
0061 
0062         /**
0063         * Add URLs to the current active project.
0064         * If no project is open a new Audio or Data CD
0065         * project will be created depending on the type
0066         * of the first file.
0067         */
0068         void addUrls( const QStringList& urls );
0069         void addUrl( const QString& url );
0070 
0071         /**
0072         * @return true if currently some job is running.
0073         */
0074         bool blocked() const;
0075 
0076     private:
0077         MainWindow* m_main;
0078     };
0079 }
0080 
0081 #endif