TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
Classes | Functions | Variables
mqrspec.c File Reference
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "mqrspec.h"

Go to the source code of this file.

Classes

struct  MQRspec_Capacity
 

Functions

int MQRspec_getDataLengthBit (int version, QRecLevel level)
 Return maximum data code length (bits) for the version. More...
 
int MQRspec_getDataLength (int version, QRecLevel level)
 Return maximum data code length (bytes) for the version. More...
 
int MQRspec_getECCLength (int version, QRecLevel level)
 Return maximum error correction code length (bytes) for the version. More...
 
int MQRspec_getWidth (int version)
 Return the width of the symbol for the version. More...
 
int MQRspec_lengthIndicator (QRencodeMode mode, int version)
 Return the size of length indicator for the mode and version. More...
 
int MQRspec_maximumWords (QRencodeMode mode, int version)
 Return the maximum length for the mode and version. More...
 
unsigned int MQRspec_getFormatInfo (int mask, int version, QRecLevel level)
 Return BCH encoded format information pattern. More...
 
static void putFinderPattern (unsigned char *frame, int width, int ox, int oy)
 Put a finder pattern. More...
 
static unsigned char * MQRspec_createFrame (int version)
 
unsigned char * MQRspec_newFrame (int version)
 Return a copy of initialized frame. More...
 

Variables

static const MQRspec_Capacity mqrspecCapacity [MQRSPEC_VERSION_MAX+1]
 Table of the capacity of symbols See Table 1 (pp.106) and Table 8 (pp.113) of Appendix 1, JIS X0510:2004. More...
 
static const int lengthTableBits [4][4]
 See Table 3 (pp.107) of Appendix 1, JIS X0510:2004. More...
 
static const unsigned int formatInfo [4][8]
 
static const int typeTable [MQRSPEC_VERSION_MAX+1][3]
 

Function Documentation

static unsigned char* MQRspec_createFrame ( int  version)
static

Definition at line 185 of file mqrspec.c.

References malloc(), putFinderPattern(), and MQRspec_Capacity::width.

Referenced by MQRspec_newFrame().

int MQRspec_getDataLength ( int  version,
QRecLevel  level 
)

Return maximum data code length (bytes) for the version.

Parameters
versionversion of the symbol
levelerror correction level
Returns
maximum size (bytes)

Definition at line 68 of file mqrspec.c.

References MQRspec_getDataLengthBit().

Referenced by MQRraw_new().

int MQRspec_getDataLengthBit ( int  version,
QRecLevel  level 
)

Return maximum data code length (bits) for the version.

Parameters
versionversion of the symbol
levelerror correction level
Returns
maximum size (bits)

Definition at line 57 of file mqrspec.c.

References MQRspec_Capacity::ec, and MQRspec_Capacity::width.

Referenced by MQRraw_new(), MQRspec_getDataLength(), and QRinput_appendPaddingBitMQR().

int MQRspec_getECCLength ( int  version,
QRecLevel  level 
)

Return maximum error correction code length (bytes) for the version.

Parameters
versionversion of the symbol
levelerror correction level
Returns
ECC size (bytes)

Definition at line 73 of file mqrspec.c.

References MQRspec_Capacity::ec.

Referenced by MQRraw_new(), QRinput_newMQR(), and QRinput_setVersionAndErrorCorrectionLevel().

unsigned int MQRspec_getFormatInfo ( int  mask,
int  version,
QRecLevel  level 
)

Return BCH encoded format information pattern.

Parameters
maskmask number
versionversion of the symbol
levelerror correction level
Returns
BCH encoded format information pattern

Definition at line 137 of file mqrspec.c.

References formatInfo, MQRSPEC_VERSION_MAX, QR_ECLEVEL_H, and typeTable.

Referenced by MMask_writeFormatInformation().

int MQRspec_getWidth ( int  version)

Return the width of the symbol for the version.

Parameters
versionversion of the symbol
Returns
width

Definition at line 78 of file mqrspec.c.

References MQRspec_Capacity::width.

Referenced by MMask_makeMask(), MMask_mask(), and QRcode_encodeMaskMQR().

int MQRspec_lengthIndicator ( QRencodeMode  mode,
int  version 
)

Return the size of length indicator for the mode and version.

Parameters
modeencode mode
versionvesion of the symbol
Returns
the size of the appropriate length indicator (bits).

Definition at line 97 of file mqrspec.c.

References lengthTableBits.

Referenced by QRinput_encodeMode8(), QRinput_encodeModeAn(), QRinput_encodeModeKanji(), QRinput_encodeModeNum(), and QRinput_estimateBitStreamSizeOfEntry().

int MQRspec_maximumWords ( QRencodeMode  mode,
int  version 
)

Return the maximum length for the mode and version.

Parameters
modeencode mode
versionvesion of the symbol
Returns
the maximum length (bytes)

Definition at line 102 of file mqrspec.c.

References lengthTableBits, and QR_MODE_KANJI.

Referenced by QRinput_encodeBitStream().

unsigned char* MQRspec_newFrame ( int  version)

Return a copy of initialized frame.

Parameters
versionversion of the symbol
Returns
Array of unsigned char. You can free it by free().

Definition at line 225 of file mqrspec.c.

References MQRspec_createFrame(), and MQRSPEC_VERSION_MAX.

Referenced by QRcode_encodeMaskMQR().

static void putFinderPattern ( unsigned char *  frame,
int  width,
int  ox,
int  oy 
)
static

Put a finder pattern.

Parameters
frame
width
ox,oyupper-left coordinate of the pattern

Definition at line 160 of file mqrspec.c.

Referenced by MQRspec_createFrame().

Variable Documentation

const unsigned int formatInfo[4][8]
static
Initial value:
= {
{0x4445, 0x55ae, 0x6793, 0x7678, 0x06de, 0x1735, 0x2508, 0x34e3},
{0x4172, 0x5099, 0x62a4, 0x734f, 0x03e9, 0x1202, 0x203f, 0x31d4},
{0x4e2b, 0x5fc0, 0x6dfd, 0x7c16, 0x0cb0, 0x1d5b, 0x2f66, 0x3e8d},
{0x4b1c, 0x5af7, 0x68ca, 0x7921, 0x0987, 0x186c, 0x2a51, 0x3bba}
}

Definition at line 121 of file mqrspec.c.

Referenced by MQRspec_getFormatInfo().

const int lengthTableBits[4][4]
static
Initial value:
= {
{ 3, 4, 5, 6},
{ 0, 3, 4, 5},
{ 0, 0, 4, 5},
{ 0, 0, 3, 4}
}

See Table 3 (pp.107) of Appendix 1, JIS X0510:2004.

Definition at line 90 of file mqrspec.c.

Referenced by MQRspec_lengthIndicator(), and MQRspec_maximumWords().

const MQRspec_Capacity mqrspecCapacity[MQRSPEC_VERSION_MAX+1]
static
Initial value:
= {
{ 0, {0, 0, 0, 0}},
{ 11, {2, 0, 0, 0}},
{ 13, {5, 6, 0, 0}},
{ 15, {6, 8, 0, 0}},
{ 17, {8, 10, 14, 0}}
}

Table of the capacity of symbols See Table 1 (pp.106) and Table 8 (pp.113) of Appendix 1, JIS X0510:2004.

Definition at line 49 of file mqrspec.c.

const int typeTable[MQRSPEC_VERSION_MAX+1][3]
static
Initial value:
= {
{-1, -1, -1},
{ 0, -1, -1},
{ 1, 2, -1},
{ 3, 4, -1},
{ 5, 6, 7}
}

Definition at line 129 of file mqrspec.c.

Referenced by MQRspec_getFormatInfo().