1 /* 2 This file is part of the Okteta Kasten module, made within the KDE community. 3 4 SPDX-FileCopyrightText: 2010 Friedrich W. H. Kossebau <kossebau@kde.org> 5 6 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 7 */ 8 9 #ifndef KASTEN_BYTEARRAYXXENCODINGSTREAMENCODER_HPP 10 #define KASTEN_BYTEARRAYXXENCODINGSTREAMENCODER_HPP 11 12 // lib 13 #include "abstractbytearraystreamencoder.hpp" 14 // Okteta core 15 #include <Okteta/OktetaCore> 16 // Qt 17 #include <QString> 18 19 namespace Kasten { 20 21 class XxencodingStreamEncoderSettings 22 { 23 public: 24 XxencodingStreamEncoderSettings(); 25 26 public: 27 QString fileName; 28 }; 29 30 class ByteArrayXxencodingStreamEncoder : public AbstractByteArrayStreamEncoder 31 { 32 Q_OBJECT 33 34 public: 35 enum class InputByteIndex 36 { 37 First = 0, 38 Second, 39 Third 40 }; 41 42 public: 43 ByteArrayXxencodingStreamEncoder(); 44 ~ByteArrayXxencodingStreamEncoder() override; 45 46 public: 47 XxencodingStreamEncoderSettings settings() const; 48 void setSettings(const XxencodingStreamEncoderSettings& settings); 49 50 protected: // AbstractByteArrayStreamEncoder API 51 bool encodeDataToStream(QIODevice* device, 52 const ByteArrayView* byteArrayView, 53 const Okteta::AbstractByteArrayModel* byteArrayModel, 54 const Okteta::AddressRange& range) override; 55 56 private: 57 XxencodingStreamEncoderSettings mSettings; 58 }; 59 settings() const60inline XxencodingStreamEncoderSettings ByteArrayXxencodingStreamEncoder::settings() const { return mSettings; } setSettings(const XxencodingStreamEncoderSettings & settings)61inline void ByteArrayXxencodingStreamEncoder::setSettings(const XxencodingStreamEncoderSettings& settings) 62 { 63 mSettings = settings; 64 emit settingsChanged(); 65 } 66 67 } 68 69 #endif 70