36 lines
643 B
C
36 lines
643 B
C
|
#ifndef PINYIN_H
|
||
|
#define PINYIN_H
|
||
|
|
||
|
#include <QChar>
|
||
|
#include <QString>
|
||
|
|
||
|
enum Tone: std::uint8_t
|
||
|
{
|
||
|
NoTone = 0,
|
||
|
FlatTone = 0x1,
|
||
|
RisingTone = 0x2,
|
||
|
LowTone = 0x4,
|
||
|
FallingTone = 0x8,
|
||
|
NeutralTone = 0x10
|
||
|
};
|
||
|
|
||
|
struct PinyinCandidateSection
|
||
|
{
|
||
|
const std::uint16_t* data;
|
||
|
const char size;
|
||
|
};
|
||
|
using PinyinCandidateSections = PinyinCandidateSection[6];
|
||
|
|
||
|
struct PinyinCandidates
|
||
|
{
|
||
|
const PinyinCandidateSection* sections;
|
||
|
const std::int8_t vowel;
|
||
|
const std::uint8_t subtones;
|
||
|
};
|
||
|
|
||
|
PinyinCandidates pinyinCandidates( const QByteArray& text );
|
||
|
|
||
|
Qt::Key vowelWithTone( QChar vowel, int toneIndex );
|
||
|
|
||
|
#endif // PINYIN_H
|