~ubuntu-branches/ubuntu/maverick/kdeutils/maverick-proposed

« back to all changes in this revision

Viewing changes to okteta/kasten/gui/io/bytearraysourcecodestreamencoder.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2010-05-28 09:49:30 UTC
  • mfrom: (1.2.44 upstream)
  • Revision ID: james.westby@ubuntu.com-20100528094930-jzynf0obv1n2v13a
Tags: 4:4.4.80-0ubuntu1~ppa1
New upstream beta release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
    This file is part of the Okteta Kasten module, part of the KDE project.
3
 
 
4
 
    Copyright 2007-2008 Friedrich W. H. Kossebau <kossebau@kde.org>
5
 
 
6
 
    This library is free software; you can redistribute it and/or
7
 
    modify it under the terms of the GNU Lesser General Public
8
 
    License as published by the Free Software Foundation; either
9
 
    version 2.1 of the License, or (at your option) version 3, or any
10
 
    later version accepted by the membership of KDE e.V. (or its
11
 
    successor approved by the membership of KDE e.V.), which shall
12
 
    act as a proxy defined in Section 6 of version 3 of the license.
13
 
 
14
 
    This library is distributed in the hope that it will be useful,
15
 
    but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
 
    Lesser General Public License for more details.
18
 
 
19
 
    You should have received a copy of the GNU Lesser General Public
20
 
    License along with this library. If not, see <http://www.gnu.org/licenses/>.
21
 
*/
22
 
 
23
 
#ifndef BYTEARRAYSOURCECODESTREAMENCODER_H
24
 
#define BYTEARRAYSOURCECODESTREAMENCODER_H
25
 
 
26
 
// lib
27
 
#include "abstractbytearraystreamencoder.h"
28
 
// Qt
29
 
#include <QtCore/QString>
30
 
 
31
 
 
32
 
namespace Kasten
33
 
{
34
 
 
35
 
class SourceCodeStreamEncoderSettings
36
 
{
37
 
  public:
38
 
    enum PrimitiveDataType
39
 
    {
40
 
        CharType = 0,
41
 
        UnsignedCharType,
42
 
        ShortType,
43
 
        UnsignedShortType,
44
 
        IntegerType,
45
 
        UnsignedIntegerType,
46
 
        FloatType,
47
 
        DoubleType
48
 
    };
49
 
 
50
 
  public:
51
 
    SourceCodeStreamEncoderSettings();
52
 
 
53
 
  public:
54
 
    QString variableName;
55
 
    int  dataType;
56
 
    int elementsPerLine;
57
 
    bool unsignedAsHexadecimal;
58
 
};
59
 
 
60
 
 
61
 
// TODO: General synchronizer would load matching encoder and decoder
62
 
// manually defined by desktopfile
63
 
class ByteArraySourceCodeStreamEncoder : public AbstractByteArrayStreamEncoder
64
 
{
65
 
    Q_OBJECT
66
 
 
67
 
  public:
68
 
    ByteArraySourceCodeStreamEncoder();
69
 
    virtual ~ByteArraySourceCodeStreamEncoder();
70
 
 
71
 
  public:
72
 
    SourceCodeStreamEncoderSettings settings() const;
73
 
    void setSettings( const SourceCodeStreamEncoderSettings& settings );
74
 
 
75
 
  public:
76
 
    const char* const* dataTypeNames() const;
77
 
    int dataTypesCount() const;
78
 
 
79
 
  protected: // AbstractByteArrayStreamEncoder API
80
 
    virtual bool encodeDataToStream( QIODevice* device,
81
 
                                     const ByteArrayView* byteArrayView,
82
 
                                     const Okteta::AbstractByteArrayModel* byteArrayModel,
83
 
                                     const Okteta::AddressRange& range );
84
 
 
85
 
  protected:
86
 
    QString printFormatted( const Okteta::AbstractByteArrayModel* byteArrayModel, Okteta::Address offset, unsigned int dataSize ) const;
87
 
 
88
 
  protected:
89
 
    SourceCodeStreamEncoderSettings mSettings;
90
 
};
91
 
 
92
 
 
93
 
inline SourceCodeStreamEncoderSettings ByteArraySourceCodeStreamEncoder::settings() const { return mSettings; }
94
 
inline void ByteArraySourceCodeStreamEncoder::setSettings( const SourceCodeStreamEncoderSettings& settings )
95
 
{
96
 
    mSettings = settings;
97
 
    emit settingsChanged();
98
 
}
99
 
 
100
 
}
101
 
 
102
 
#endif