File indexing completed on 2024-05-12 05:38:16

0001 /*
0002     SPDX-FileCopyrightText: 2007 Matthias Kretz <kretz@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #pragma once
0008 
0009 #include "kiomediastream.h"
0010 
0011 #include <QUrl>
0012 
0013 #include <KIO/TransferJob>
0014 
0015 namespace Phonon
0016 {
0017 class KioMediaStreamPrivate
0018 {
0019     Q_DECLARE_PUBLIC(KioMediaStream)
0020 protected:
0021     KioMediaStream *q_ptr;
0022 
0023     KioMediaStreamPrivate(const QUrl &u)
0024         : url(u)
0025         , endOfDataSent(false)
0026         , seeking(false)
0027         , reading(false)
0028         , open(false)
0029         , seekPosition(0)
0030         , kiojob(nullptr)
0031     {
0032     }
0033 
0034     ~KioMediaStreamPrivate()
0035     {
0036         if (kiojob) {
0037             kiojob->kill();
0038             kiojob = nullptr;
0039         }
0040     }
0041 
0042     void _k_bytestreamNeedData();
0043     void _k_bytestreamEnoughData();
0044     void _k_bytestreamData(KIO::Job *, const QByteArray &);
0045     void _k_bytestreamResult(KJob *);
0046     void _k_bytestreamTotalSize(KJob *, qulonglong);
0047     void _k_bytestreamSeekStream(qint64);
0048     void _k_bytestreamFileJobOpen(KIO::Job *);
0049     void _k_bytestreamSeekDone(KIO::Job *, KIO::filesize_t);
0050     void _k_read();
0051 
0052     QUrl url;
0053     bool endOfDataSent;
0054     bool seeking;
0055     bool reading;
0056     bool open;
0057     qint64 seekPosition;
0058     KIO::SimpleJob *kiojob;
0059 };
0060 
0061 } // namespace Phonon