/*
* Copyright (C) 2020, 2021 Gavin MacGregor
*
* This file is part of QTeletextMaker.
*
* QTeletextMaker is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* QTeletextMaker is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with QTeletextMaker. If not, see .
*/
#ifndef X26TRIPLETS_H
#define X26TRIPLETS_H
#include
class X26Triplet
{
public:
X26Triplet() {}
// X26Triplet(const X26Triplet &other);
// X26Triplet &operator=(const X26Triplet &other);
X26Triplet(int, int, int);
int address() const { return m_address; }
int mode() const { return m_mode; }
int modeExt() const { return (m_address >= 40) ? m_mode : (m_mode | 0x20); }
int data() const { return m_data; }
int addressRow() const { return (m_address == 40) ? 24 :m_address-40; }
int addressColumn() const { return (m_address); }
bool isRowTriplet() const { return (m_address >= 40); }
void setAddress(int);
void setMode(int);
void setData(int);
void setAddressRow(int);
void setAddressColumn(int);
private:
int m_address, m_mode, m_data;
};
class X26TripletList
{
public:
void append(const X26Triplet &);
void insert(int, const X26Triplet &);
void removeAt(int);
void replace(int, const X26Triplet &);
void removeLast() { m_list.removeLast(); }
const X26Triplet &at(int i) const { return m_list.at(i); }
bool isEmpty() const { return m_list.isEmpty(); }
void reserve(int alloc) { m_list.reserve(alloc); }
int size() const { return m_list.size(); }
private:
QList m_list;
};
#endif