Warning, file /multimedia/audiocd-kio/plugins/vorbis/encodervorbis.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002   Copyright (C) 2000 Rik Hemsley (rikkus) <rik@kde.org>
0003   Copyright (C) 2000, 2001, 2002 Michael Matz <matz@kde.org>
0004   Copyright (C) 2001 Carsten Duvenhorst <duvenhorst@m2.uni-hannover.de>
0005   Copyright (C) 2001 Adrian Schroeter <adrian@suse.de>
0006   Copyright (C) 2003 Richard Lärkäng <richard@goteborg.utfors.se>
0007   Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
0008   Copyright (C) 2004, 2005 Benjamin Meyer <ben at meyerhome dot net>
0009 
0010   This program is free software; you can redistribute it and/or modify
0011   it under the terms of the GNU General Public License as published by
0012   the Free Software Foundation; either version 2 of the License, or
0013   (at your option) any later version.
0014 
0015   This program is distributed in the hope that it will be useful,
0016   but WITHOUT ANY WARRANTY; without even the implied warranty of
0017   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0018   GNU General Public License for more details.
0019 
0020   You should have received a copy of the GNU General Public License
0021   along with this program; if not, write to the Free Software
0022   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
0023   USA.
0024 */
0025 
0026 #ifndef ENCODER_VORBIS_H
0027 #define ENCODER_VORBIS_H
0028 
0029 #include "ui_encodervorbisconfig.h"
0030 
0031 #include "audiocdencoder.h"
0032 
0033 class EncoderVorbisConfig : public QWidget, public Ui::EncoderVorbisConfig
0034 {
0035 public:
0036     EncoderVorbisConfig(QWidget *parent = nullptr)
0037         : QWidget(parent)
0038     {
0039         setupUi(this);
0040     }
0041 };
0042 
0043 /**
0044  * Ogg Vorbis encoder.
0045  * Check out https://xiph.org/vorbis/ for more information.
0046  */
0047 class EncoderVorbis : public AudioCDEncoder {
0048 
0049 public:
0050     explicit EncoderVorbis(KIO::WorkerBase *worker);
0051     ~EncoderVorbis() override;
0052 
0053     QString type() const override
0054     {
0055         return QLatin1String("Ogg Vorbis");
0056     }
0057   bool init() override;
0058   void loadSettings() override;
0059   unsigned long size(long time_secs) const override;
0060   const char *fileType() const override
0061   {
0062       return "ogg";
0063   }
0064   const char *mimeType() const override;
0065   void fillSongInfo(KCDDB::CDInfo info, int track, const QString &comment) override;
0066   long readInit(long size) override;
0067   long read(qint16 *buf, int frames) override;
0068   long readCleanup() override;
0069   QWidget *getConfigureWidget(KConfigSkeleton **manager) const override;
0070 
0071   private:
0072   long flush_vorbis();
0073 
0074   class Private;
0075   Private *d;
0076 };
0077 
0078 #endif // ENCODER_VORBIS_H