kopia lustrzana https://gitlab.com/eliggett/wfview
Merge branch 'master' into audio-enhance
commit
5216b43230
|
@ -1,6 +0,0 @@
|
||||||
[submodule "opus-tools"]
|
|
||||||
path = opus-tools
|
|
||||||
url = https://github.com/xiph/opus-tools.git
|
|
||||||
[submodule "rtaudio"]
|
|
||||||
path = rtaudio
|
|
||||||
url = https://github.com/thestk/rtaudio.git
|
|
94
CHANGELOG
94
CHANGELOG
|
@ -1,5 +1,99 @@
|
||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
- 20210809
|
||||||
|
|
||||||
|
Add constants to make parsing (hopefully) easier
|
||||||
|
|
||||||
|
- 20210808
|
||||||
|
|
||||||
|
Fake known functions
|
||||||
|
|
||||||
|
Fix float warning
|
||||||
|
|
||||||
|
Remove calibration debugging
|
||||||
|
|
||||||
|
Add proper s-meter calibration
|
||||||
|
|
||||||
|
- 20210807
|
||||||
|
|
||||||
|
Add ritctl model to rigCaps
|
||||||
|
|
||||||
|
Fix to make wsjt-x work again!
|
||||||
|
|
||||||
|
Add split/duplex support
|
||||||
|
|
||||||
|
Update rigctld.cpp
|
||||||
|
|
||||||
|
Correct lack of parentheses in conditionals
|
||||||
|
|
||||||
|
Fix typo
|
||||||
|
|
||||||
|
Remove some debug logging
|
||||||
|
|
||||||
|
More rigctl features/fixes
|
||||||
|
|
||||||
|
- 20210806
|
||||||
|
|
||||||
|
Fix for get_powerstat
|
||||||
|
|
||||||
|
Update rigctld.cpp
|
||||||
|
|
||||||
|
Add some levels and other functions
|
||||||
|
|
||||||
|
Fix compile warnings
|
||||||
|
|
||||||
|
Add frequency ranges from rigcaps
|
||||||
|
|
||||||
|
- 20210806
|
||||||
|
|
||||||
|
Move rigctld settings in Ui
|
||||||
|
|
||||||
|
Fixes for setting freq/mode
|
||||||
|
|
||||||
|
Support for more rigctld commands
|
||||||
|
|
||||||
|
More fixes to rigctld
|
||||||
|
|
||||||
|
Change the way rigctl response is built
|
||||||
|
|
||||||
|
More rigctld fixes
|
||||||
|
|
||||||
|
- 20210804
|
||||||
|
|
||||||
|
Add rigctld config to ui and fix some bugs
|
||||||
|
|
||||||
|
- 20210802
|
||||||
|
|
||||||
|
added derSuessman prefix code
|
||||||
|
|
||||||
|
- 20210801
|
||||||
|
|
||||||
|
Fix broken 8bit audio
|
||||||
|
|
||||||
|
added derSuessmann additions to have a linux install prefix
|
||||||
|
|
||||||
|
Fedora build/install notes, see merge request eliggett/wfview!4
|
||||||
|
|
||||||
|
- 20210730
|
||||||
|
|
||||||
|
Added a little extra logic, also some cross-platform help, to the custom
|
||||||
|
stylesheet loader.
|
||||||
|
|
||||||
|
- 20210729
|
||||||
|
|
||||||
|
fix: set the style once
|
||||||
|
|
||||||
|
|
||||||
|
added /usr/local to search path for the stylesheet
|
||||||
|
|
||||||
|
- 20210726
|
||||||
|
|
||||||
|
Fixed error in IC-7410 attenuator spec.
|
||||||
|
|
||||||
|
- 20210726
|
||||||
|
|
||||||
|
Fix for blank username/password in server
|
||||||
|
|
||||||
- 20210724
|
- 20210724
|
||||||
|
|
||||||
small changes to INSTAll.md and addition of mint 20.2/openSUSE 15.3
|
small changes to INSTAll.md and addition of mint 20.2/openSUSE 15.3
|
||||||
|
|
34
INSTALL.md
34
INSTALL.md
|
@ -13,6 +13,7 @@ sudo apt-get install libqt5multimedia5
|
||||||
sudo apt-get install libqt5multimedia5-plugins
|
sudo apt-get install libqt5multimedia5-plugins
|
||||||
sudo apt-get install qtmultimedia5-dev
|
sudo apt-get install qtmultimedia5-dev
|
||||||
sudo apt-get install git
|
sudo apt-get install git
|
||||||
|
sudo apt-get install libopus-dev
|
||||||
~~~
|
~~~
|
||||||
Now you need to install qcustomplot. There are two versions that are commonly found in linux distros: 1.3 and 2.0. Either will work fine. If you are not sure which version your linux install comes with, simply run both commands. One will work and the other will fail, and that's fine!
|
Now you need to install qcustomplot. There are two versions that are commonly found in linux distros: 1.3 and 2.0. Either will work fine. If you are not sure which version your linux install comes with, simply run both commands. One will work and the other will fail, and that's fine!
|
||||||
|
|
||||||
|
@ -40,15 +41,16 @@ git clone https://gitlab.com/eliggett/wfview.git
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### 3. Create a build directory, compile, and install:
|
### 3. Create a build directory, compile, and install:
|
||||||
|
If you want to change the default install path from `/usr/local` to a different prefix (e.g. `/opt`), you must call `qmake ../wfview/wfview.pro PREFIX=/opt`
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
qmake ../wfview/wfview.pro
|
qmake ../wfview/wfview.pro
|
||||||
make -j
|
make -j
|
||||||
sudo ./install.sh
|
sudo make install
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
### 4. You can now launch wfview, either from the terminal or from your desktop environment. If you encounter issues using the serial port, run the following command:
|
### 4. You can now launch wfview, either from the terminal or from your desktop environment. If you encounter issues using the serial port, run the following command:
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
@ -65,7 +67,7 @@ sudo usermod -aG dialout $USER
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### opensuse/sles/tumbleweed install ###
|
### opensuse/sles/tumbleweed install
|
||||||
---
|
---
|
||||||
|
|
||||||
install wfview on suse 15.x sles 15.x or tumbleweed; this was done on a clean install/updated OS.
|
install wfview on suse 15.x sles 15.x or tumbleweed; this was done on a clean install/updated OS.
|
||||||
|
@ -73,7 +75,7 @@ install wfview on suse 15.x sles 15.x or tumbleweed; this was done on a clean in
|
||||||
we need to add packages to be able to build the stuff.
|
we need to add packages to be able to build the stuff.
|
||||||
|
|
||||||
- sudo zypper in --type pattern devel_basis
|
- sudo zypper in --type pattern devel_basis
|
||||||
- sudo zypper in libQt5Widgets-devel libqt5-qtbase-common-devel libqt5-qtserialport-devel libQt5SerialPort5 qcustomplot-devel libqcustomplot2 libQt5PrintSupport-devel libqt5-qtmultimedia-devel
|
- sudo zypper in libQt5Widgets-devel libqt5-qtbase-common-devel libqt5-qtserialport-devel libQt5SerialPort5 qcustomplot-devel libqcustomplot2 libQt5PrintSupport-devel libqt5-qtmultimedia-devel lv2-devel libopus-devel
|
||||||
|
|
||||||
optional (mainly for development specifics): get and install qt5:
|
optional (mainly for development specifics): get and install qt5:
|
||||||
|
|
||||||
|
@ -99,3 +101,27 @@ in this case, use your homedir:
|
||||||
wfview is now installed in /usr/local/bin
|
wfview is now installed in /usr/local/bin
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### Fedora install ###
|
||||||
|
---
|
||||||
|
|
||||||
|
Tested under Fedora 33/34.
|
||||||
|
|
||||||
|
Install qt5 dependencies:
|
||||||
|
- sudo dnf install qt5-qtbase-common qt5-qtbase qt5-qtbase-gui qt5-qtserialport qt5-qtmultimedia mingw64-qt5-qmake qt5-qtbase-devel qt5-qtserialport-devel qt5-qtmultimedia-devel libopus-dev
|
||||||
|
|
||||||
|
Install qcustomplot:
|
||||||
|
- sudo dnf install qcustomplot qcustomplot-devel
|
||||||
|
|
||||||
|
When done, create a build area, clone the repo, build and install:
|
||||||
|
|
||||||
|
- mkdir -p ~/src/build && cd src
|
||||||
|
- git clone https://gitlab.com/eliggett/wfview.git
|
||||||
|
- cd build
|
||||||
|
- qmake-qt5 ../wfview/wfview.pro
|
||||||
|
- make -j
|
||||||
|
- sudo ./install.sh
|
||||||
|
|
||||||
|
wfview is now installed in /usr/local/bin
|
||||||
|
|
||||||
|
---
|
||||||
|
|
20
WHATSNEW
20
WHATSNEW
|
@ -1,16 +1,10 @@
|
||||||
|
|
||||||
The following highlights are in this dot-release:
|
The following highlights are in this 1.x-release:
|
||||||
|
|
||||||
added IC7700, 718, 7100. (more testing needed)
|
many changes/mods/updates/enhancements to rigctld
|
||||||
fixes and improvements to audio
|
rigctld box added in the UI
|
||||||
ability to choose between rtaudio and qtmultimedia (default) as compile time option
|
build process changed: you can add the install prefix (derSuessmann)
|
||||||
fixes and lots of improvements at the usb-server end
|
added "do not ask again" for switching off rig and exiting wfview
|
||||||
waterfall length can be adjusted now
|
added opus as audio transport
|
||||||
no need to restart to change CIV address
|
dual meter support
|
||||||
seamless changing rigs without restart
|
|
||||||
started support for older rigs like the 718
|
|
||||||
wf display disappears when there is no wf capable rig
|
|
||||||
IC R8600 support improved
|
|
||||||
for older rigs added a polling timing box to keep stuff keeping smooth
|
|
||||||
Local af gain now has anti-log audio pot taper.
|
|
||||||
|
|
||||||
|
|
121
audiohandler.cpp
121
audiohandler.cpp
|
@ -2,11 +2,13 @@
|
||||||
This class handles both RX and TX audio, each is created as a seperate instance of the class
|
This class handles both RX and TX audio, each is created as a seperate instance of the class
|
||||||
but as the setup/handling if output (RX) and input (TX) devices is so similar I have combined them.
|
but as the setup/handling if output (RX) and input (TX) devices is so similar I have combined them.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "audiohandler.h"
|
#include "audiohandler.h"
|
||||||
|
|
||||||
#include "logcategories.h"
|
#include "logcategories.h"
|
||||||
#include "ulaw.h"
|
#include "ulaw.h"
|
||||||
|
|
||||||
|
|
||||||
audioHandler::audioHandler(QObject* parent)
|
audioHandler::audioHandler(QObject* parent)
|
||||||
{
|
{
|
||||||
Q_UNUSED(parent)
|
Q_UNUSED(parent)
|
||||||
|
@ -40,7 +42,14 @@ audioHandler::~audioHandler()
|
||||||
speex_resampler_destroy(resampler);
|
speex_resampler_destroy(resampler);
|
||||||
qDebug(logAudio()) << "Resampler closed";
|
qDebug(logAudio()) << "Resampler closed";
|
||||||
}
|
}
|
||||||
|
if (encoder != Q_NULLPTR) {
|
||||||
|
qInfo(logAudio()) << "Destroying opus encoder";
|
||||||
|
opus_encoder_destroy(encoder);
|
||||||
|
}
|
||||||
|
if (decoder != Q_NULLPTR) {
|
||||||
|
qInfo(logAudio()) << "Destroying opus decoder";
|
||||||
|
opus_decoder_destroy(decoder);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool audioHandler::init(audioSetup setupIn)
|
bool audioHandler::init(audioSetup setupIn)
|
||||||
|
@ -65,10 +74,10 @@ bool audioHandler::init(audioSetup setupIn)
|
||||||
if (setup.codec == 0x01 || setup.codec == 0x20) {
|
if (setup.codec == 0x01 || setup.codec == 0x20) {
|
||||||
setup.ulaw = true;
|
setup.ulaw = true;
|
||||||
}
|
}
|
||||||
if (setup.codec == 0x08 || setup.codec == 0x10 || setup.codec == 0x20) {
|
if (setup.codec == 0x08 || setup.codec == 0x10 || setup.codec == 0x20 || setup.codec == 0x80) {
|
||||||
setup.radioChan = 2;
|
setup.radioChan = 2;
|
||||||
}
|
}
|
||||||
if (setup.codec == 0x04 || setup.codec == 0x10) {
|
if (setup.codec == 0x04 || setup.codec == 0x10 || setup.codec == 0x40 || setup.codec == 0x80) {
|
||||||
setup.bits = 16;
|
setup.bits = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,17 +244,33 @@ bool audioHandler::init(audioSetup setupIn)
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// Setup resampler if it is needed.
|
// Setup resampler and opus if they are needed.
|
||||||
int resample_error = 0;
|
int resample_error = 0;
|
||||||
|
int opus_err = 0;
|
||||||
if (setup.isinput) {
|
if (setup.isinput) {
|
||||||
resampler = wf_resampler_init(devChannels, nativeSampleRate, setup.samplerate, setup.resampleQuality, &resample_error);
|
resampler = wf_resampler_init(devChannels, nativeSampleRate, setup.samplerate, setup.resampleQuality, &resample_error);
|
||||||
|
if (setup.codec == 0x40 || setup.codec == 0x80) {
|
||||||
|
// Opus codec
|
||||||
|
encoder = opus_encoder_create(setup.samplerate, setup.radioChan, OPUS_APPLICATION_AUDIO, &opus_err);
|
||||||
|
opus_encoder_ctl(encoder, OPUS_SET_LSB_DEPTH(16));
|
||||||
|
opus_encoder_ctl(encoder, OPUS_SET_INBAND_FEC(1));
|
||||||
|
opus_encoder_ctl(encoder, OPUS_SET_DTX(1));
|
||||||
|
opus_encoder_ctl(encoder, OPUS_SET_PACKET_LOSS_PERC(5));
|
||||||
|
qInfo(logAudio()) << "Creating opus encoder: " << opus_strerror(opus_err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
resampler = wf_resampler_init(devChannels, setup.samplerate, this->nativeSampleRate, setup.resampleQuality, &resample_error);
|
resampler = wf_resampler_init(devChannels, setup.samplerate, this->nativeSampleRate, setup.resampleQuality, &resample_error);
|
||||||
|
if (setup.codec == 0x40 || setup.codec == 0x80) {
|
||||||
|
// Opus codec
|
||||||
|
decoder = opus_decoder_create(setup.samplerate, setup.radioChan, &opus_err);
|
||||||
|
qInfo(logAudio()) << "Creating opus decoder: " << opus_strerror(opus_err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
wf_resampler_get_ratio(resampler, &ratioNum, &ratioDen);
|
wf_resampler_get_ratio(resampler, &ratioNum, &ratioDen);
|
||||||
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "wf_resampler_init() returned: " << resample_error << " ratioNum" << ratioNum << " ratioDen" << ratioDen;
|
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "wf_resampler_init() returned: " << resample_error << " ratioNum" << ratioNum << " ratioDen" << ratioDen;
|
||||||
|
|
||||||
|
|
||||||
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "thread id" << QThread::currentThreadId();
|
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "thread id" << QThread::currentThreadId();
|
||||||
|
|
||||||
#if !defined (RTAUDIO) && !defined(PORTAUDIO)
|
#if !defined (RTAUDIO) && !defined(PORTAUDIO)
|
||||||
|
@ -459,7 +484,34 @@ void audioHandler::incomingAudio(audioPacket inPacket)
|
||||||
qDebug(logAudio()) << "Packet received when stream was not ready";
|
qDebug(logAudio()) << "Packet received when stream was not ready";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//qDebug(logAudio()) << "Got" << radioSampleBits << "bits, length" << inPacket.data.length();
|
|
||||||
|
if (setup.codec == 0x40 || setup.codec == 0x80) {
|
||||||
|
unsigned char* in = (unsigned char*)inPacket.data.data();
|
||||||
|
|
||||||
|
/* Decode the frame. */
|
||||||
|
QByteArray outPacket((setup.samplerate / 50) * sizeof(qint16) * setup.radioChan, (char)0xff); // Preset the output buffer size.
|
||||||
|
qint16* out = (qint16*)outPacket.data();
|
||||||
|
|
||||||
|
int nSamples = opus_decode(decoder, in, inPacket.data.size(), out, (setup.samplerate / 50), 0);
|
||||||
|
|
||||||
|
if (nSamples < 0)
|
||||||
|
{
|
||||||
|
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "Opus decode failed:" << opus_strerror(nSamples) << "packet size" << inPacket.data.length();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (int(nSamples * sizeof(qint16) * setup.radioChan) != outPacket.size())
|
||||||
|
{
|
||||||
|
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "Opus decoder mismatch: nBytes:" << nSamples * sizeof(qint16) * setup.radioChan << "outPacket:" << outPacket.size();
|
||||||
|
outPacket.resize(nSamples * sizeof(qint16) * setup.radioChan);
|
||||||
|
}
|
||||||
|
//qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "Opus decoded" << inPacket.data.size() << "bytes, into" << outPacket.length() << "bytes";
|
||||||
|
inPacket.data.clear();
|
||||||
|
inPacket.data = outPacket; // Replace incoming data with converted.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//qDebug(logAudio()) << "Got" << setup.bits << "bits, length" << inPacket.data.length();
|
||||||
// Incoming data is 8bits?
|
// Incoming data is 8bits?
|
||||||
if (setup.bits == 8)
|
if (setup.bits == 8)
|
||||||
{
|
{
|
||||||
|
@ -468,12 +520,13 @@ void audioHandler::incomingAudio(audioPacket inPacket)
|
||||||
qint16* out = (qint16*)outPacket.data();
|
qint16* out = (qint16*)outPacket.data();
|
||||||
for (int f = 0; f < inPacket.data.length(); f++)
|
for (int f = 0; f < inPacket.data.length(); f++)
|
||||||
{
|
{
|
||||||
|
int samp = (quint8)inPacket.data[f];
|
||||||
for (int g = setup.radioChan; g <= devChannels; g++)
|
for (int g = setup.radioChan; g <= devChannels; g++)
|
||||||
{
|
{
|
||||||
if (setup.ulaw)
|
if (setup.ulaw)
|
||||||
*out++ = ulaw_decode[(quint8)inPacket.data[f]] * this->volume;
|
*out++ = ulaw_decode[samp] * this->volume;
|
||||||
else
|
else
|
||||||
*out++ = (qint16)(((quint8)inPacket.data[f] << 8) - 32640 * this->volume);
|
*out++ = (qint16)((samp - 128) << 8) * this->volume;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inPacket.data.clear();
|
inPacket.data.clear();
|
||||||
|
@ -534,6 +587,7 @@ void audioHandler::incomingAudio(audioPacket inPacket)
|
||||||
}
|
}
|
||||||
|
|
||||||
//qDebug(logAudio()) << "Adding packet to buffer:" << inPacket.seq << ": " << inPacket.data.length();
|
//qDebug(logAudio()) << "Adding packet to buffer:" << inPacket.seq << ": " << inPacket.data.length();
|
||||||
|
lastSentSeq = inPacket.seq;
|
||||||
|
|
||||||
if (!ringBuf->try_write(inPacket))
|
if (!ringBuf->try_write(inPacket))
|
||||||
{
|
{
|
||||||
|
@ -553,6 +607,8 @@ int audioHandler::getLatency()
|
||||||
return currentLatency;
|
return currentLatency;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void audioHandler::getNextAudioChunk(QByteArray& ret)
|
void audioHandler::getNextAudioChunk(QByteArray& ret)
|
||||||
{
|
{
|
||||||
audioPacket packet;
|
audioPacket packet;
|
||||||
|
@ -613,28 +669,57 @@ void audioHandler::getNextAudioChunk(QByteArray& ret)
|
||||||
|
|
||||||
//qDebug(logAudio()) << "Now mono, length" << packet.data.length();
|
//qDebug(logAudio()) << "Now mono, length" << packet.data.length();
|
||||||
|
|
||||||
// Do we need to convert 16-bit to 8-bit?
|
if (setup.codec == 0x40 || setup.codec == 0x80)
|
||||||
if (setup.bits == 8) {
|
{
|
||||||
|
//Are we using the opus codec?
|
||||||
|
qint16* in = (qint16*)packet.data.data();
|
||||||
|
|
||||||
|
/* Encode the frame. */
|
||||||
|
QByteArray outPacket(1275, (char)0xff); // Preset the output buffer size to MAXIMUM possible Opus frame size
|
||||||
|
unsigned char* out = (unsigned char*)outPacket.data();
|
||||||
|
|
||||||
|
int nbBytes = opus_encode(encoder, in, (setup.samplerate / 50), out, outPacket.length());
|
||||||
|
if (nbBytes < 0)
|
||||||
|
{
|
||||||
|
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "Opus encode failed:" << opus_strerror(nbBytes);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
outPacket.resize(nbBytes);
|
||||||
|
packet.data.clear();
|
||||||
|
packet.data = outPacket; // Replace incoming data with converted.
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (setup.bits == 8)
|
||||||
|
{
|
||||||
|
// Do we need to convert 16-bit to 8-bit?
|
||||||
QByteArray outPacket((int)packet.data.length() / 2, (char)0xff);
|
QByteArray outPacket((int)packet.data.length() / 2, (char)0xff);
|
||||||
qint16* in = (qint16*)packet.data.data();
|
qint16* in = (qint16*)packet.data.data();
|
||||||
for (int f = 0; f < outPacket.length(); f++)
|
for (int f = 0; f < outPacket.length(); f++)
|
||||||
{
|
{
|
||||||
quint8 outdata = 0;
|
qint16 sample = *in++;
|
||||||
if (setup.ulaw) {
|
if (setup.ulaw) {
|
||||||
qint16 enc = qFromLittleEndian<quint16>(in + f);
|
int sign = (sample >> 8) & 0x80;
|
||||||
if (enc >= 0)
|
if (sign)
|
||||||
outdata = ulaw_encode[enc];
|
sample = (short)-sample;
|
||||||
else
|
if (sample > cClip)
|
||||||
outdata = 0x7f & ulaw_encode[-enc];
|
sample = cClip;
|
||||||
|
sample = (short)(sample + cBias);
|
||||||
|
int exponent = (int)MuLawCompressTable[(sample >> 7) & 0xFF];
|
||||||
|
int mantissa = (sample >> (exponent + 3)) & 0x0F;
|
||||||
|
int compressedByte = ~(sign | (exponent << 4) | mantissa);
|
||||||
|
outPacket[f] = (quint8)compressedByte;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
outdata = (quint8)(((qFromLittleEndian<qint16>(in + f) >> 8) ^ 0x80) & 0xff);
|
int compressedByte = (((sample + 32768) >> 8) & 0xff);
|
||||||
|
outPacket[f] = (quint8)compressedByte;
|
||||||
}
|
}
|
||||||
outPacket[f] = (char)outdata;
|
|
||||||
}
|
}
|
||||||
packet.data.clear();
|
packet.data.clear();
|
||||||
packet.data = outPacket; // Copy output packet back to input buffer.
|
packet.data = outPacket; // Copy output packet back to input buffer.
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = packet.data;
|
ret = packet.data;
|
||||||
//qDebug(logAudio()) << "Now radio format, length" << packet.data.length();
|
//qDebug(logAudio()) << "Now radio format, length" << packet.data.length();
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,8 +33,15 @@ typedef signed short MY_TYPE;
|
||||||
#include <QMap>
|
#include <QMap>
|
||||||
#include "resampler/speex_resampler.h"
|
#include "resampler/speex_resampler.h"
|
||||||
#include "ring/ring.h"
|
#include "ring/ring.h"
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
#include "opus.h"
|
||||||
|
#else
|
||||||
|
#include "opus/opus.h"
|
||||||
|
#endif
|
||||||
#include "audiotaper.h"
|
#include "audiotaper.h"
|
||||||
|
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
//#define BUFFER_SIZE (32*1024)
|
//#define BUFFER_SIZE (32*1024)
|
||||||
|
@ -160,8 +167,8 @@ private:
|
||||||
bool chunkAvailable;
|
bool chunkAvailable;
|
||||||
|
|
||||||
quint32 lastSeq;
|
quint32 lastSeq;
|
||||||
|
quint32 lastSentSeq=0;
|
||||||
quint16 radioSampleRate;
|
|
||||||
quint16 nativeSampleRate=0;
|
quint16 nativeSampleRate=0;
|
||||||
quint8 radioSampleBits;
|
quint8 radioSampleBits;
|
||||||
quint8 radioChannels;
|
quint8 radioChannels;
|
||||||
|
@ -179,6 +186,8 @@ private:
|
||||||
qreal volume=1.0;
|
qreal volume=1.0;
|
||||||
int devChannels;
|
int devChannels;
|
||||||
audioSetup setup;
|
audioSetup setup;
|
||||||
|
OpusEncoder* encoder=Q_NULLPTR;
|
||||||
|
OpusDecoder* decoder=Q_NULLPTR;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AUDIOHANDLER_H
|
#endif // AUDIOHANDLER_H
|
||||||
|
|
192
meter.cpp
192
meter.cpp
|
@ -23,6 +23,13 @@ meter::meter(QWidget *parent) : QWidget(parent)
|
||||||
//
|
//
|
||||||
// Text in qdarkstylesheet seems to be #EFF0F1
|
// Text in qdarkstylesheet seems to be #EFF0F1
|
||||||
|
|
||||||
|
if(drawLabels)
|
||||||
|
{
|
||||||
|
mXstart = 32;
|
||||||
|
} else {
|
||||||
|
mXstart = 0;
|
||||||
|
}
|
||||||
|
|
||||||
meterType = meterS;
|
meterType = meterS;
|
||||||
|
|
||||||
currentColor.setNamedColor("#148CD2");
|
currentColor.setNamedColor("#148CD2");
|
||||||
|
@ -41,13 +48,24 @@ meter::meter(QWidget *parent) : QWidget(parent)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void meter::setMeterType(meterKind type)
|
void meter::clearMeterOnPTTtoggle()
|
||||||
{
|
{
|
||||||
if(type == meterType)
|
// When a meter changes type, such as the fixed S -- TxPo meter,
|
||||||
return;
|
// there is automatic clearing. However, some meters do not switch on thier own,
|
||||||
|
// and thus we are providing this clearing method. We are careful
|
||||||
|
// not to clear meters that don't make sense to clear (such as Vd and Id)
|
||||||
|
|
||||||
meterType = type;
|
|
||||||
// clear average and peak vectors:
|
if( (meterType == meterALC) || (meterType == meterSWR)
|
||||||
|
|| (meterType == meterComp) || (meterType == meterTxMod)
|
||||||
|
|| (meterType == meterCenter ))
|
||||||
|
{
|
||||||
|
clearMeter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void meter::clearMeter()
|
||||||
|
{
|
||||||
current = 0;
|
current = 0;
|
||||||
average = 0;
|
average = 0;
|
||||||
peak = 0;
|
peak = 0;
|
||||||
|
@ -63,6 +81,16 @@ void meter::setMeterType(meterKind type)
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void meter::setMeterType(meterKind type)
|
||||||
|
{
|
||||||
|
if(type == meterType)
|
||||||
|
return;
|
||||||
|
|
||||||
|
meterType = type;
|
||||||
|
// clear average and peak vectors:
|
||||||
|
this->clearMeter();
|
||||||
|
}
|
||||||
|
|
||||||
meterKind meter::getMeterType()
|
meterKind meter::getMeterType()
|
||||||
{
|
{
|
||||||
return meterType;
|
return meterType;
|
||||||
|
@ -85,50 +113,60 @@ void meter::paintEvent(QPaintEvent *)
|
||||||
// space of the widget, and gives it corrdinates.
|
// space of the widget, and gives it corrdinates.
|
||||||
// The end effect, is that the drawing functions will all
|
// The end effect, is that the drawing functions will all
|
||||||
// scale to the window size.
|
// scale to the window size.
|
||||||
|
painter.setRenderHint(QPainter::SmoothPixmapTransform);
|
||||||
painter.setWindow(QRect(0, 0, 255+mXstart, widgetWindowHeight));
|
painter.setFont(QFont(this->fontInfo().family(), fontSize));
|
||||||
|
widgetWindowHeight = this->height();
|
||||||
if(this->height() > widgetWindowHeight )
|
painter.setWindow(QRect(0, 0, 255+mXstart+15, widgetWindowHeight));
|
||||||
{
|
barHeight = widgetWindowHeight / 2;
|
||||||
// Clamp down on stretching fonts.
|
|
||||||
// TODO: Make this more elegant
|
|
||||||
painter.setFont(QFont(this->fontInfo().family(), widgetWindowHeight/3.5));
|
|
||||||
widgetWindowHeight = this->height();
|
|
||||||
painter.setWindow(QRect(0, 0, 255+mXstart, widgetWindowHeight));
|
|
||||||
barHeight = widgetWindowHeight / 2;
|
|
||||||
|
|
||||||
|
|
||||||
//painter.setFont(QFont(this->fontInfo().family(), widgetWindowHeight/2.5));
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(meterType)
|
switch(meterType)
|
||||||
{
|
{
|
||||||
case meterS:
|
case meterS:
|
||||||
|
label = "S";
|
||||||
peakRedLevel = 120; // S9+
|
peakRedLevel = 120; // S9+
|
||||||
drawScaleS(&painter);
|
drawScaleS(&painter);
|
||||||
break;
|
break;
|
||||||
case meterPower:
|
case meterPower:
|
||||||
|
label = "PWR";
|
||||||
peakRedLevel = 210; // 100%
|
peakRedLevel = 210; // 100%
|
||||||
drawScalePo(&painter);
|
drawScalePo(&painter);
|
||||||
break;
|
break;
|
||||||
case meterALC:
|
case meterALC:
|
||||||
|
label = "ALC";
|
||||||
peakRedLevel = 100;
|
peakRedLevel = 100;
|
||||||
drawScaleALC(&painter);
|
drawScaleALC(&painter);
|
||||||
break;
|
break;
|
||||||
case meterSWR:
|
case meterSWR:
|
||||||
|
label = "SWR";
|
||||||
peakRedLevel = 100; // SWR 2.5
|
peakRedLevel = 100; // SWR 2.5
|
||||||
drawScaleSWR(&painter);
|
drawScaleSWR(&painter);
|
||||||
break;
|
break;
|
||||||
case meterCenter:
|
case meterCenter:
|
||||||
|
label = "CTR";
|
||||||
peakRedLevel = 256; // No need for red here
|
peakRedLevel = 256; // No need for red here
|
||||||
drawScaleCenter(&painter);
|
drawScaleCenter(&painter);
|
||||||
break;
|
break;
|
||||||
case meterVoltage:
|
case meterVoltage:
|
||||||
|
label = "Vd";
|
||||||
peakRedLevel = 241;
|
peakRedLevel = 241;
|
||||||
drawScaleVd(&painter);
|
drawScaleVd(&painter);
|
||||||
break;
|
break;
|
||||||
|
case meterCurrent:
|
||||||
|
label = "Id";
|
||||||
|
peakRedLevel = 120;
|
||||||
|
drawScaleId(&painter);
|
||||||
|
break;
|
||||||
|
case meterComp:
|
||||||
|
label = "CMP";
|
||||||
|
peakRedLevel = 100;
|
||||||
|
drawScaleComp(&painter);
|
||||||
|
break;
|
||||||
|
case meterNone:
|
||||||
|
return;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
peakRedLevel = 200;
|
label = "DN";
|
||||||
|
peakRedLevel = 241;
|
||||||
drawScaleRaw(&painter);
|
drawScaleRaw(&painter);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -179,6 +217,16 @@ void meter::paintEvent(QPaintEvent *)
|
||||||
|
|
||||||
painter.drawRect(mXstart+peak-1,mYstart,2,barHeight);
|
painter.drawRect(mXstart+peak-1,mYstart,2,barHeight);
|
||||||
}
|
}
|
||||||
|
if(drawLabels)
|
||||||
|
{
|
||||||
|
drawLabel(&painter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void meter::drawLabel(QPainter *qp)
|
||||||
|
{
|
||||||
|
qp->setPen(lowLineColor);
|
||||||
|
qp->drawText(0,scaleTextYstart, label );
|
||||||
}
|
}
|
||||||
|
|
||||||
void meter::setLevel(int current)
|
void meter::setLevel(int current)
|
||||||
|
@ -229,7 +277,7 @@ void meter::drawScaleRaw(QPainter *qp)
|
||||||
qp->setPen(lowTextColor);
|
qp->setPen(lowTextColor);
|
||||||
//qp->setFont(QFont("Arial", fontSize));
|
//qp->setFont(QFont("Arial", fontSize));
|
||||||
int i=mXstart;
|
int i=mXstart;
|
||||||
for(; i<mXstart+256; i+=20)
|
for(; i<mXstart+256; i+=25)
|
||||||
{
|
{
|
||||||
qp->drawText(i,scaleTextYstart, QString("%1").arg(i) );
|
qp->drawText(i,scaleTextYstart, QString("%1").arg(i) );
|
||||||
}
|
}
|
||||||
|
@ -262,7 +310,7 @@ void meter::drawScaleVd(QPainter *qp)
|
||||||
float VdperDn = (float)(highPointVd-midPointVd) / float(highPointDn-midPointDn);
|
float VdperDn = (float)(highPointVd-midPointVd) / float(highPointDn-midPointDn);
|
||||||
|
|
||||||
int i=mXstart;
|
int i=mXstart;
|
||||||
for(; i<mXstart+midPointDn; i+=midPointDn/2)
|
for(; i<mXstart+midPointDn; i+=midPointDn/1)
|
||||||
{
|
{
|
||||||
qp->drawText(i,scaleTextYstart, QString("%1").arg( (int)((i-mXstart) * (float(midPointVd) / float(midPointDn)) )) );
|
qp->drawText(i,scaleTextYstart, QString("%1").arg( (int)((i-mXstart) * (float(midPointVd) / float(midPointDn)) )) );
|
||||||
}
|
}
|
||||||
|
@ -380,6 +428,7 @@ void meter::drawScaleALC(QPainter *qp)
|
||||||
for(; i<mXstart+100; i += (20))
|
for(; i<mXstart+100; i += (20))
|
||||||
{
|
{
|
||||||
qp->drawText(i,scaleTextYstart, QString("%1").arg(alc) );
|
qp->drawText(i,scaleTextYstart, QString("%1").arg(alc) );
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
alc +=20;
|
alc +=20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -388,6 +437,7 @@ void meter::drawScaleALC(QPainter *qp)
|
||||||
for(; i<mXstart+120; i+=(int)(10*i))
|
for(; i<mXstart+120; i+=(int)(10*i))
|
||||||
{
|
{
|
||||||
qp->drawText(i,scaleTextYstart, QString("+%1").arg(alc) );
|
qp->drawText(i,scaleTextYstart, QString("+%1").arg(alc) );
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
alc +=10;
|
alc +=10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,6 +449,44 @@ void meter::drawScaleALC(QPainter *qp)
|
||||||
(void)qp;
|
(void)qp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void meter::drawScaleComp(QPainter *qp)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// 0000=0 dB, 0130=15 dB,0241=30 dB
|
||||||
|
//
|
||||||
|
|
||||||
|
qp->setPen(lowTextColor);
|
||||||
|
|
||||||
|
int midPointDn = 130;
|
||||||
|
int midPointdB = 15;
|
||||||
|
|
||||||
|
int highPointDn = 241;
|
||||||
|
int highPointdB = 30;
|
||||||
|
float dBperDn = (float)(highPointdB-midPointdB) / float(highPointDn-midPointDn);
|
||||||
|
|
||||||
|
int i=mXstart;
|
||||||
|
for(; i<mXstart+midPointDn; i+=midPointDn/4)
|
||||||
|
{
|
||||||
|
qp->drawText(i,scaleTextYstart, QString("%1").arg( (int)((i-mXstart) * (float(midPointdB) / float(midPointDn)) )) );
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
|
}
|
||||||
|
|
||||||
|
i = midPointDn+60;
|
||||||
|
for(; i<mXstart+255; i+= 30)
|
||||||
|
{
|
||||||
|
qp->drawText(i,scaleTextYstart, QString("%1").arg( (int) std::round( ((i-mXstart-midPointDn) * (dBperDn) ) + (midPointdB) )));
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now the lines:
|
||||||
|
qp->setPen(lowLineColor);
|
||||||
|
|
||||||
|
// Line: X1, Y1 -->to--> X2, Y2
|
||||||
|
qp->drawLine(mXstart,scaleLineYstart,peakRedLevel+mXstart,scaleLineYstart);
|
||||||
|
qp->setPen(Qt::red);
|
||||||
|
qp->drawLine(peakRedLevel+mXstart,scaleLineYstart,255+mXstart,scaleLineYstart);
|
||||||
|
}
|
||||||
|
|
||||||
void meter::drawScaleSWR(QPainter *qp)
|
void meter::drawScaleSWR(QPainter *qp)
|
||||||
{
|
{
|
||||||
// From the manual:
|
// From the manual:
|
||||||
|
@ -409,26 +497,72 @@ void meter::drawScaleSWR(QPainter *qp)
|
||||||
|
|
||||||
qp->drawText(mXstart,scaleTextYstart, QString("1.0"));
|
qp->drawText(mXstart,scaleTextYstart, QString("1.0"));
|
||||||
qp->drawText(24+mXstart,scaleTextYstart, QString("1.3"));
|
qp->drawText(24+mXstart,scaleTextYstart, QString("1.3"));
|
||||||
qp->drawText(48+mXstart,scaleTextYstart, QString("1.5"));
|
qp->drawText(48+mXstart,scaleTextYstart, QString("1.5"));
|
||||||
qp->drawText(80+mXstart,scaleTextYstart, QString("2.0"));
|
qp->drawText(80+mXstart,scaleTextYstart, QString("2.0"));
|
||||||
qp->drawText(100+mXstart,scaleTextYstart, QString("2.5"));
|
qp->drawText(100+mXstart,scaleTextYstart, QString("2.5"));
|
||||||
qp->drawText(120+mXstart,scaleTextYstart, QString("3.0"));
|
qp->drawText(120+mXstart,scaleTextYstart, QString("3.0"));
|
||||||
|
|
||||||
|
qp->drawLine( 0+mXstart,scaleTextYstart, 0+mXstart, scaleTextYstart+5);
|
||||||
|
qp->drawLine( 24+mXstart,scaleTextYstart, 24+mXstart, scaleTextYstart+5);
|
||||||
|
qp->drawLine( 48+mXstart,scaleTextYstart, 48+mXstart, scaleTextYstart+5);
|
||||||
|
qp->drawLine( 80+mXstart,scaleTextYstart, 80+mXstart, scaleTextYstart+5);
|
||||||
|
qp->drawLine(100+mXstart,scaleTextYstart,100+mXstart, scaleTextYstart+5); // does not draw?
|
||||||
|
qp->drawLine(120+mXstart,scaleTextYstart,120+mXstart, scaleTextYstart+5);
|
||||||
|
|
||||||
|
|
||||||
qp->setPen(lowLineColor);
|
qp->setPen(lowLineColor);
|
||||||
qp->drawLine(mXstart,scaleLineYstart,100+mXstart,scaleLineYstart);
|
qp->drawLine(mXstart,scaleLineYstart,100+mXstart,scaleLineYstart);
|
||||||
qp->setPen(Qt::red);
|
qp->setPen(Qt::red);
|
||||||
qp->drawLine(100+mXstart,scaleLineYstart,255+mXstart,scaleLineYstart);
|
qp->drawLine(100+mXstart,scaleLineYstart,255+mXstart,scaleLineYstart);
|
||||||
|
|
||||||
(void)qp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void meter::drawScaleId(QPainter *qp)
|
void meter::drawScaleId(QPainter *qp)
|
||||||
{
|
{
|
||||||
(void)qp;
|
// IC-7300:
|
||||||
|
// 0000=0, 0097=10, 0146=15, 0241=25
|
||||||
|
//
|
||||||
|
|
||||||
|
qp->setPen(lowTextColor);
|
||||||
|
//qp->setFont(QFont("Arial", fontSize));
|
||||||
|
|
||||||
|
// 7300/9700 and others:
|
||||||
|
int midPointDn = 97;
|
||||||
|
int midPointId = 10;
|
||||||
|
|
||||||
|
int highPointDn = 146;
|
||||||
|
int highPointId = 15;
|
||||||
|
float IdperDn = (float)(highPointId-midPointId) / float(highPointDn-midPointDn);
|
||||||
|
|
||||||
|
int i=mXstart;
|
||||||
|
for(; i<mXstart+midPointDn; i+=midPointDn/4)
|
||||||
|
{
|
||||||
|
qp->drawText(i,scaleTextYstart, QString("%1").arg( (int)((i-mXstart) * (float(midPointId) / float(midPointDn)) )) );
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(; i<mXstart+255; i+= 4*(highPointDn-midPointDn) / (highPointId-midPointId))
|
||||||
|
{
|
||||||
|
qp->drawText(i,scaleTextYstart, QString("%1").arg( (int) std::round( ((i-mXstart-midPointDn) * (IdperDn) ) + (midPointId) )));
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now the lines:
|
||||||
|
qp->setPen(lowLineColor);
|
||||||
|
|
||||||
|
// Line: X1, Y1 -->to--> X2, Y2
|
||||||
|
qp->drawLine(mXstart,scaleLineYstart,peakRedLevel+mXstart,scaleLineYstart);
|
||||||
|
qp->setPen(Qt::red);
|
||||||
|
qp->drawLine(peakRedLevel+mXstart,scaleLineYstart,255+mXstart,scaleLineYstart);
|
||||||
}
|
}
|
||||||
|
|
||||||
void meter::drawScaleS(QPainter *qp)
|
void meter::drawScaleS(QPainter *qp)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
// 0000=S0, 0120=S9, 0241=S9+60dB
|
||||||
|
// 120 / 9 = 13.333 steps per S-unit
|
||||||
|
|
||||||
qp->setPen(lowTextColor);
|
qp->setPen(lowTextColor);
|
||||||
//qp->setFont(QFont("Arial", fontSize));
|
//qp->setFont(QFont("Arial", fontSize));
|
||||||
int i=mXstart;
|
int i=mXstart;
|
||||||
|
@ -437,6 +571,7 @@ void meter::drawScaleS(QPainter *qp)
|
||||||
for(; i<mXstart+120; i+=13)
|
for(; i<mXstart+120; i+=13)
|
||||||
{
|
{
|
||||||
qp->drawText(i,scaleTextYstart, QString("%1").arg(s++) );
|
qp->drawText(i,scaleTextYstart, QString("%1").arg(s++) );
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2 DN per 1 dB now:
|
// 2 DN per 1 dB now:
|
||||||
|
@ -452,13 +587,14 @@ void meter::drawScaleS(QPainter *qp)
|
||||||
for(; i<mXstart+255; i+=40)
|
for(; i<mXstart+255; i+=40)
|
||||||
{
|
{
|
||||||
qp->drawText(i,scaleTextYstart, QString("+%1").arg(s) );
|
qp->drawText(i,scaleTextYstart, QString("+%1").arg(s) );
|
||||||
|
qp->drawLine(i,scaleTextYstart, i, scaleTextYstart+5);
|
||||||
s = s + 20;
|
s = s + 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
qp->setPen(lowLineColor);
|
qp->setPen(lowLineColor);
|
||||||
|
|
||||||
qp->drawLine(mXstart,scaleLineYstart,130,scaleLineYstart);
|
qp->drawLine(mXstart,scaleLineYstart,peakRedLevel+mXstart,scaleLineYstart);
|
||||||
qp->setPen(Qt::red);
|
qp->setPen(Qt::red);
|
||||||
qp->drawLine(130,scaleLineYstart,255,scaleLineYstart);
|
qp->drawLine(peakRedLevel+mXstart,scaleLineYstart,255+mXstart,scaleLineYstart);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
11
meter.h
11
meter.h
|
@ -24,6 +24,8 @@ public slots:
|
||||||
void updateDrawing(int num);
|
void updateDrawing(int num);
|
||||||
void setLevels(int current, int peak, int average);
|
void setLevels(int current, int peak, int average);
|
||||||
void setLevel(int current);
|
void setLevel(int current);
|
||||||
|
void clearMeterOnPTTtoggle();
|
||||||
|
void clearMeter();
|
||||||
void setMeterType(meterKind type);
|
void setMeterType(meterKind type);
|
||||||
void setMeterShortString(QString);
|
void setMeterShortString(QString);
|
||||||
QString getMeterShortString();
|
QString getMeterShortString();
|
||||||
|
@ -47,10 +49,8 @@ private:
|
||||||
std::vector<unsigned char> avgLevels;
|
std::vector<unsigned char> avgLevels;
|
||||||
std::vector<unsigned char> peakLevels;
|
std::vector<unsigned char> peakLevels;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int peakRedLevel=0;
|
int peakRedLevel=0;
|
||||||
|
bool drawLabels = true;
|
||||||
int mXstart = 0; // Starting point for S=0.
|
int mXstart = 0; // Starting point for S=0.
|
||||||
int mYstart = 14; // height, down from top, where the drawing starts
|
int mYstart = 14; // height, down from top, where the drawing starts
|
||||||
int barHeight = 10; // Height of meter "bar" indicators
|
int barHeight = 10; // Height of meter "bar" indicators
|
||||||
|
@ -67,8 +67,13 @@ private:
|
||||||
void drawScaleSWR(QPainter *qp);
|
void drawScaleSWR(QPainter *qp);
|
||||||
void drawScaleVd(QPainter *qp);
|
void drawScaleVd(QPainter *qp);
|
||||||
void drawScaleId(QPainter *qp);
|
void drawScaleId(QPainter *qp);
|
||||||
|
void drawScaleComp(QPainter *qp);
|
||||||
void drawScaleRaw(QPainter *qp);
|
void drawScaleRaw(QPainter *qp);
|
||||||
|
|
||||||
|
void drawLabel(QPainter *qp);
|
||||||
|
|
||||||
|
QString label;
|
||||||
|
|
||||||
QColor currentColor;
|
QColor currentColor;
|
||||||
QColor averageColor;
|
QColor averageColor;
|
||||||
QColor peakColor;
|
QColor peakColor;
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit ae5d6d59e82ef40300a4dece7897499685f87184
|
|
|
@ -3123,7 +3123,7 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.hasATU = true;
|
rigCaps.hasATU = true;
|
||||||
rigCaps.hasCTCSS = true;
|
rigCaps.hasCTCSS = true;
|
||||||
rigCaps.hasDTCS = true;
|
rigCaps.hasDTCS = true;
|
||||||
rigCaps.attenuators.push_back('\x12');
|
rigCaps.attenuators.push_back('\x20');
|
||||||
rigCaps.preamps.push_back('\x01');
|
rigCaps.preamps.push_back('\x01');
|
||||||
rigCaps.preamps.push_back('\x02');
|
rigCaps.preamps.push_back('\x02');
|
||||||
rigCaps.antennas = {0x00, 0x01};
|
rigCaps.antennas = {0x00, 0x01};
|
||||||
|
|
45
rigctld.cpp
45
rigctld.cpp
|
@ -2,6 +2,49 @@
|
||||||
#include "logcategories.h"
|
#include "logcategories.h"
|
||||||
|
|
||||||
|
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
quint64 mode;
|
||||||
|
const char* str;
|
||||||
|
} mode_str[] =
|
||||||
|
{
|
||||||
|
{ RIG_MODE_AM, "AM" },
|
||||||
|
{ RIG_MODE_CW, "CW" },
|
||||||
|
{ RIG_MODE_USB, "USB" },
|
||||||
|
{ RIG_MODE_LSB, "LSB" },
|
||||||
|
{ RIG_MODE_RTTY, "RTTY" },
|
||||||
|
{ RIG_MODE_FM, "FM" },
|
||||||
|
{ RIG_MODE_WFM, "WFM" },
|
||||||
|
{ RIG_MODE_CWR, "CWR" },
|
||||||
|
{ RIG_MODE_RTTYR, "RTTYR" },
|
||||||
|
{ RIG_MODE_AMS, "AMS" },
|
||||||
|
{ RIG_MODE_PKTLSB, "PKTLSB" },
|
||||||
|
{ RIG_MODE_PKTUSB, "PKTUSB" },
|
||||||
|
{ RIG_MODE_PKTFM, "PKTFM" },
|
||||||
|
{ RIG_MODE_PKTFMN, "PKTFMN" },
|
||||||
|
{ RIG_MODE_ECSSUSB, "ECSSUSB" },
|
||||||
|
{ RIG_MODE_ECSSLSB, "ECSSLSB" },
|
||||||
|
{ RIG_MODE_FAX, "FAX" },
|
||||||
|
{ RIG_MODE_SAM, "SAM" },
|
||||||
|
{ RIG_MODE_SAL, "SAL" },
|
||||||
|
{ RIG_MODE_SAH, "SAH" },
|
||||||
|
{ RIG_MODE_DSB, "DSB"},
|
||||||
|
{ RIG_MODE_FMN, "FMN" },
|
||||||
|
{ RIG_MODE_PKTAM, "PKTAM"},
|
||||||
|
{ RIG_MODE_P25, "P25"},
|
||||||
|
{ RIG_MODE_DSTAR, "D-STAR"},
|
||||||
|
{ RIG_MODE_DPMR, "DPMR"},
|
||||||
|
{ RIG_MODE_NXDNVN, "NXDN-VN"},
|
||||||
|
{ RIG_MODE_NXDN_N, "NXDN-N"},
|
||||||
|
{ RIG_MODE_DCR, "DCR"},
|
||||||
|
{ RIG_MODE_AMN, "AMN"},
|
||||||
|
{ RIG_MODE_PSK, "PSK"},
|
||||||
|
{ RIG_MODE_PSKR, "PSKR"},
|
||||||
|
{ RIG_MODE_C4FM, "C4FM"},
|
||||||
|
{ RIG_MODE_SPEC, "SPEC"},
|
||||||
|
{ RIG_MODE_NONE, "" },
|
||||||
|
};
|
||||||
|
|
||||||
rigCtlD::rigCtlD(QObject* parent) :
|
rigCtlD::rigCtlD(QObject* parent) :
|
||||||
QTcpServer(parent)
|
QTcpServer(parent)
|
||||||
{
|
{
|
||||||
|
@ -590,7 +633,7 @@ void rigCtlClient::socketReadyRead()
|
||||||
}
|
}
|
||||||
else if (command.length() > 2 && (command[0] == "L" || command[0] == "set_level"))
|
else if (command.length() > 2 && (command[0] == "L" || command[0] == "set_level"))
|
||||||
{
|
{
|
||||||
unsigned char value;
|
unsigned char value=0;
|
||||||
setCommand = true;
|
setCommand = true;
|
||||||
if (command[1] == "AF") {
|
if (command[1] == "AF") {
|
||||||
value = command[2].toFloat() * 255;
|
value = command[2].toFloat() * 255;
|
||||||
|
|
45
rigctld.h
45
rigctld.h
|
@ -159,48 +159,7 @@
|
||||||
#define RIG_FUNC_SPECTRUM CONSTANT_64BIT_FLAG (43) /*!< \c SPECTRUM -- Spectrum scope data output ON/OFF */
|
#define RIG_FUNC_SPECTRUM CONSTANT_64BIT_FLAG (43) /*!< \c SPECTRUM -- Spectrum scope data output ON/OFF */
|
||||||
#define RIG_FUNC_SPECTRUM_HOLD CONSTANT_64BIT_FLAG (44) /*!< \c SPECTRUM_HOLD -- Pause spectrum scope updates ON/OFF */
|
#define RIG_FUNC_SPECTRUM_HOLD CONSTANT_64BIT_FLAG (44) /*!< \c SPECTRUM_HOLD -- Pause spectrum scope updates ON/OFF */
|
||||||
|
|
||||||
static struct
|
#if 0
|
||||||
{
|
|
||||||
quint64 mode;
|
|
||||||
const char* str;
|
|
||||||
} mode_str[] =
|
|
||||||
{
|
|
||||||
{ RIG_MODE_AM, "AM" },
|
|
||||||
{ RIG_MODE_CW, "CW" },
|
|
||||||
{ RIG_MODE_USB, "USB" },
|
|
||||||
{ RIG_MODE_LSB, "LSB" },
|
|
||||||
{ RIG_MODE_RTTY, "RTTY" },
|
|
||||||
{ RIG_MODE_FM, "FM" },
|
|
||||||
{ RIG_MODE_WFM, "WFM" },
|
|
||||||
{ RIG_MODE_CWR, "CWR" },
|
|
||||||
{ RIG_MODE_RTTYR, "RTTYR" },
|
|
||||||
{ RIG_MODE_AMS, "AMS" },
|
|
||||||
{ RIG_MODE_PKTLSB, "PKTLSB" },
|
|
||||||
{ RIG_MODE_PKTUSB, "PKTUSB" },
|
|
||||||
{ RIG_MODE_PKTFM, "PKTFM" },
|
|
||||||
{ RIG_MODE_PKTFMN, "PKTFMN" },
|
|
||||||
{ RIG_MODE_ECSSUSB, "ECSSUSB" },
|
|
||||||
{ RIG_MODE_ECSSLSB, "ECSSLSB" },
|
|
||||||
{ RIG_MODE_FAX, "FAX" },
|
|
||||||
{ RIG_MODE_SAM, "SAM" },
|
|
||||||
{ RIG_MODE_SAL, "SAL" },
|
|
||||||
{ RIG_MODE_SAH, "SAH" },
|
|
||||||
{ RIG_MODE_DSB, "DSB"},
|
|
||||||
{ RIG_MODE_FMN, "FMN" },
|
|
||||||
{ RIG_MODE_PKTAM, "PKTAM"},
|
|
||||||
{ RIG_MODE_P25, "P25"},
|
|
||||||
{ RIG_MODE_DSTAR, "D-STAR"},
|
|
||||||
{ RIG_MODE_DPMR, "DPMR"},
|
|
||||||
{ RIG_MODE_NXDNVN, "NXDN-VN"},
|
|
||||||
{ RIG_MODE_NXDN_N, "NXDN-N"},
|
|
||||||
{ RIG_MODE_DCR, "DCR"},
|
|
||||||
{ RIG_MODE_AMN, "AMN"},
|
|
||||||
{ RIG_MODE_PSK, "PSK"},
|
|
||||||
{ RIG_MODE_PSKR, "PSKR"},
|
|
||||||
{ RIG_MODE_C4FM, "C4FM"},
|
|
||||||
{ RIG_MODE_SPEC, "SPEC"},
|
|
||||||
{ RIG_MODE_NONE, "" },
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
|
@ -311,6 +270,8 @@ static struct
|
||||||
{ RIG_LEVEL_NONE, "" },
|
{ RIG_LEVEL_NONE, "" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
struct cal_table {
|
struct cal_table {
|
||||||
int size; /*!< number of plots in the table */
|
int size; /*!< number of plots in the table */
|
||||||
struct {
|
struct {
|
||||||
|
|
1
rtaudio
1
rtaudio
|
@ -1 +0,0 @@
|
||||||
Subproject commit c9bf99d414cf81d19ef0ddd00212a4a58ccd99c6
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include "udphandler.h"
|
#include "udphandler.h"
|
||||||
#include "logcategories.h"
|
#include "logcategories.h"
|
||||||
|
|
||||||
udpHandler::udpHandler(udpPreferences prefs,audioSetup rx, audioSetup tx) :
|
udpHandler::udpHandler(udpPreferences prefs, audioSetup rx, audioSetup tx) :
|
||||||
controlPort(prefs.controlLANPort),
|
controlPort(prefs.controlLANPort),
|
||||||
civPort(0),
|
civPort(0),
|
||||||
audioPort(0),
|
audioPort(0),
|
||||||
|
@ -237,10 +237,10 @@ void udpHandler::dataReceived()
|
||||||
{
|
{
|
||||||
status_packet_t in = (status_packet_t)r.constData();
|
status_packet_t in = (status_packet_t)r.constData();
|
||||||
if (in->type != 0x01) {
|
if (in->type != 0x01) {
|
||||||
if (in->error == 0x00ffffff && !streamOpened)
|
if (in->error == 0xffffffff && !streamOpened)
|
||||||
{
|
{
|
||||||
emit haveNetworkError(radioIP.toString(), "Auth failed, try rebooting the radio.");
|
emit haveNetworkError(radioIP.toString(), "Connection failed, wait a few minutes or reboot the radio.");
|
||||||
qInfo(logUdp()) << this->metaObject()->className() << ": Auth failed, try rebooting the radio.";
|
qInfo(logUdp()) << this->metaObject()->className() << ": Connection failed, wait a few minutes or reboot the radio.";
|
||||||
}
|
}
|
||||||
else if (in->error == 0x00000000 && in->disc == 0x01)
|
else if (in->error == 0x00000000 && in->disc == 0x01)
|
||||||
{
|
{
|
||||||
|
@ -272,6 +272,27 @@ void udpHandler::dataReceived()
|
||||||
{
|
{
|
||||||
login_response_packet_t in = (login_response_packet_t)r.constData();
|
login_response_packet_t in = (login_response_packet_t)r.constData();
|
||||||
if (in->type != 0x01) {
|
if (in->type != 0x01) {
|
||||||
|
|
||||||
|
connectionType = in->connection;
|
||||||
|
qInfo(logUdp()) << "Got connection type:" << connectionType;
|
||||||
|
if (connectionType == "FTTH")
|
||||||
|
{
|
||||||
|
highBandwidthConnection = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (connectionType != "WFVIEW") // NOT WFVIEW
|
||||||
|
{
|
||||||
|
if (rxSetup.codec >= 0x40 || txSetup.codec >= 0x40)
|
||||||
|
{
|
||||||
|
emit haveNetworkError(QString("UDP"), QString("Opus codec not supported, forcing LPCM16"));
|
||||||
|
if (rxSetup.codec >= 0x40)
|
||||||
|
rxSetup.codec = 0x04;
|
||||||
|
if (txSetup.codec >= 0x40)
|
||||||
|
txSetup.codec = 0x04;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (in->error == 0xfeffffff)
|
if (in->error == 0xfeffffff)
|
||||||
{
|
{
|
||||||
emit haveNetworkStatus("Invalid Username/Password");
|
emit haveNetworkStatus("Invalid Username/Password");
|
||||||
|
@ -295,11 +316,6 @@ void udpHandler::dataReceived()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(in->connection, "FTTH"))
|
|
||||||
{
|
|
||||||
highBandwidthConnection = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
qInfo(logUdp()) << this->metaObject()->className() << ": Detected connection speed " << in->connection;
|
qInfo(logUdp()) << this->metaObject()->className() << ": Detected connection speed " << in->connection;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -308,6 +324,7 @@ void udpHandler::dataReceived()
|
||||||
{
|
{
|
||||||
conninfo_packet_t in = (conninfo_packet_t)r.constData();
|
conninfo_packet_t in = (conninfo_packet_t)r.constData();
|
||||||
if (in->type != 0x01) {
|
if (in->type != 0x01) {
|
||||||
|
|
||||||
devName = in->name;
|
devName = in->name;
|
||||||
QHostAddress ip = QHostAddress(qToBigEndian(in->ipaddress));
|
QHostAddress ip = QHostAddress(qToBigEndian(in->ipaddress));
|
||||||
if (!streamOpened && in->busy)
|
if (!streamOpened && in->busy)
|
||||||
|
@ -715,6 +732,7 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio
|
||||||
|
|
||||||
rxaudio = new audioHandler();
|
rxaudio = new audioHandler();
|
||||||
rxAudioThread = new QThread(this);
|
rxAudioThread = new QThread(this);
|
||||||
|
rxAudioThread->setPriority(QThread::TimeCriticalPriority);
|
||||||
|
|
||||||
rxaudio->moveToThread(rxAudioThread);
|
rxaudio->moveToThread(rxAudioThread);
|
||||||
|
|
||||||
|
@ -732,6 +750,7 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio
|
||||||
|
|
||||||
txaudio = new audioHandler();
|
txaudio = new audioHandler();
|
||||||
txAudioThread = new QThread(this);
|
txAudioThread = new QThread(this);
|
||||||
|
txAudioThread->setPriority(QThread::TimeCriticalPriority);
|
||||||
|
|
||||||
txaudio->moveToThread(txAudioThread);
|
txaudio->moveToThread(txAudioThread);
|
||||||
|
|
||||||
|
@ -912,7 +931,7 @@ void udpAudio::dataReceived()
|
||||||
control_packet_t in = (control_packet_t)r.constData();
|
control_packet_t in = (control_packet_t)r.constData();
|
||||||
|
|
||||||
|
|
||||||
if (in->type != 0x01 && in->len >= 0xAC) {
|
if (in->type != 0x01 && in->len >= 0x20) {
|
||||||
if (in->seq == 0)
|
if (in->seq == 0)
|
||||||
{
|
{
|
||||||
// Seq number has rolled over.
|
// Seq number has rolled over.
|
||||||
|
|
|
@ -120,7 +120,7 @@ public:
|
||||||
quint32 packetsLost=0;
|
quint32 packetsLost=0;
|
||||||
|
|
||||||
quint16 seqPrefix = 0;
|
quint16 seqPrefix = 0;
|
||||||
|
QString connectionType="";
|
||||||
int congestion = 0;
|
int congestion = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -364,7 +364,7 @@ void udpServer::controlReceived()
|
||||||
sendConnectionInfo(current);
|
sendConnectionInfo(current);
|
||||||
qInfo(logUdpServer()) << current->ipAddress.toString() << ": rxCodec:" << current->rxCodec << " txCodec:" << current->txCodec <<
|
qInfo(logUdpServer()) << current->ipAddress.toString() << ": rxCodec:" << current->rxCodec << " txCodec:" << current->txCodec <<
|
||||||
" rxSampleRate" << current->rxSampleRate <<
|
" rxSampleRate" << current->rxSampleRate <<
|
||||||
" txSampleRate" << current->rxSampleRate <<
|
" txSampleRate" << current->txSampleRate <<
|
||||||
" txBufferLen" << current->txBufferLen;
|
" txBufferLen" << current->txBufferLen;
|
||||||
|
|
||||||
if (!config.lan) {
|
if (!config.lan) {
|
||||||
|
@ -382,6 +382,7 @@ void udpServer::controlReceived()
|
||||||
|
|
||||||
txaudio = new audioHandler();
|
txaudio = new audioHandler();
|
||||||
txAudioThread = new QThread(this);
|
txAudioThread = new QThread(this);
|
||||||
|
txAudioThread->setPriority(QThread::TimeCriticalPriority);
|
||||||
txaudio->moveToThread(txAudioThread);
|
txaudio->moveToThread(txAudioThread);
|
||||||
|
|
||||||
txAudioThread->start(QThread::TimeCriticalPriority);
|
txAudioThread->start(QThread::TimeCriticalPriority);
|
||||||
|
@ -401,8 +402,11 @@ void udpServer::controlReceived()
|
||||||
inAudio.samplerate = current->rxSampleRate;
|
inAudio.samplerate = current->rxSampleRate;
|
||||||
|
|
||||||
rxaudio = new audioHandler();
|
rxaudio = new audioHandler();
|
||||||
|
|
||||||
rxAudioThread = new QThread(this);
|
rxAudioThread = new QThread(this);
|
||||||
|
|
||||||
|
rxaudio->moveToThread(rxAudioThread);
|
||||||
|
|
||||||
rxAudioThread->start(QThread::TimeCriticalPriority);
|
rxAudioThread->start(QThread::TimeCriticalPriority);
|
||||||
|
|
||||||
connect(this, SIGNAL(setupRxAudio(audioSetup)), rxaudio, SLOT(init(audioSetup)));
|
connect(this, SIGNAL(setupRxAudio(audioSetup)), rxaudio, SLOT(init(audioSetup)));
|
||||||
|
@ -461,7 +465,6 @@ void udpServer::civReceived()
|
||||||
if (current == Q_NULLPTR)
|
if (current == Q_NULLPTR)
|
||||||
{
|
{
|
||||||
current = new CLIENT();
|
current = new CLIENT();
|
||||||
|
|
||||||
foreach(CLIENT* client, controlClients)
|
foreach(CLIENT* client, controlClients)
|
||||||
{
|
{
|
||||||
if (client != Q_NULLPTR)
|
if (client != Q_NULLPTR)
|
||||||
|
@ -474,6 +477,13 @@ void udpServer::civReceived()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (current->controlClient == Q_NULLPTR || !current->controlClient->isAuthenticated)
|
||||||
|
{
|
||||||
|
// There is no current controlClient that matches this civClient
|
||||||
|
delete current;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
current->type = "CIV";
|
current->type = "CIV";
|
||||||
current->civId = 0;
|
current->civId = 0;
|
||||||
current->connected = true;
|
current->connected = true;
|
||||||
|
@ -504,10 +514,6 @@ void udpServer::civReceived()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (current->controlClient == Q_NULLPTR || !current->controlClient->isAuthenticated)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (r.length())
|
switch (r.length())
|
||||||
{
|
{
|
||||||
|
@ -621,6 +627,14 @@ void udpServer::audioReceived()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (current->controlClient == Q_NULLPTR || !current->controlClient->isAuthenticated)
|
||||||
|
{
|
||||||
|
// There is no current controlClient that matches this audioClient
|
||||||
|
delete current;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
current->type = "Audio";
|
current->type = "Audio";
|
||||||
current->connected = true;
|
current->connected = true;
|
||||||
current->timeConnected = QDateTime::currentDateTime();
|
current->timeConnected = QDateTime::currentDateTime();
|
||||||
|
@ -687,7 +701,8 @@ void udpServer::audioReceived()
|
||||||
*/
|
*/
|
||||||
control_packet_t in = (control_packet_t)r.constData();
|
control_packet_t in = (control_packet_t)r.constData();
|
||||||
|
|
||||||
if (in->type != 0x01 && in->len >= 0xAC) {
|
if (in->type != 0x01) {
|
||||||
|
// Opus packets can be smaller than this! && in->len >= 0xAC) {
|
||||||
if (in->seq == 0)
|
if (in->seq == 0)
|
||||||
{
|
{
|
||||||
// Seq number has rolled over.
|
// Seq number has rolled over.
|
||||||
|
@ -1580,6 +1595,7 @@ void udpServer::deleteConnection(QList<CLIENT*>* l, CLIENT* c)
|
||||||
while (it != l->end()) {
|
while (it != l->end()) {
|
||||||
CLIENT* client = *it;
|
CLIENT* client = *it;
|
||||||
if (client != Q_NULLPTR && client == c) {
|
if (client != Q_NULLPTR && client == c) {
|
||||||
|
qInfo(logUdpServer()) << "Found" << client->type << "connection to: " << client->ipAddress.toString() << ":" << QString::number(client->port);
|
||||||
it = l->erase(it);
|
it = l->erase(it);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
706
ulaw.h
706
ulaw.h
|
@ -1,693 +1,31 @@
|
||||||
#ifndef ULAW_H
|
#ifndef ULAW_H
|
||||||
#define ULAW_H
|
#define ULAW_H
|
||||||
|
|
||||||
|
const int cBias = 0x84;
|
||||||
|
|
||||||
static unsigned char ulaw_encode[8193] =
|
const int cClip = 32635;
|
||||||
{ 0xff, 0xfe, 0xfe, 0xfd, 0xfd, 0xfc, 0xfc, 0xfb, 0xfb, 0xfa, 0xfa, 0xf9,
|
|
||||||
0xf9, 0xf8, 0xf8, 0xf7, 0xf7, 0xf6, 0xf6, 0xf5, 0xf5, 0xf4, 0xf4, 0xf3,
|
static const char MuLawCompressTable[256] =
|
||||||
0xf3, 0xf2, 0xf2, 0xf1, 0xf1, 0xf0, 0xf0, 0xef, 0xef, 0xef, 0xef, 0xee,
|
{
|
||||||
0xee, 0xee, 0xee, 0xed, 0xed, 0xed, 0xed, 0xec, 0xec, 0xec, 0xec, 0xeb,
|
0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,
|
||||||
0xeb, 0xeb, 0xeb, 0xea, 0xea, 0xea, 0xea, 0xe9, 0xe9, 0xe9, 0xe9, 0xe8,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
0xe8, 0xe8, 0xe8, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, 0xe6, 0xe6, 0xe6, 0xe5,
|
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
|
||||||
0xe5, 0xe5, 0xe5, 0xe4, 0xe4, 0xe4, 0xe4, 0xe3, 0xe3, 0xe3, 0xe3, 0xe2,
|
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
|
||||||
0xe2, 0xe2, 0xe2, 0xe1, 0xe1, 0xe1, 0xe1, 0xe0, 0xe0, 0xe0, 0xe0, 0xdf,
|
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
|
||||||
0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xde, 0xde, 0xde, 0xde, 0xde,
|
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
|
||||||
0xde, 0xde, 0xde, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdc,
|
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
|
||||||
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
|
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
|
||||||
0xdb, 0xdb, 0xdb, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xd9,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||||
0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||||
0xd8, 0xd8, 0xd8, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd6,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||||
0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||||
0xd5, 0xd5, 0xd5, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd3,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||||
0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||||
0xd2, 0xd2, 0xd2, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd0,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
|
||||||
0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf,
|
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
||||||
0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xce,
|
|
||||||
0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce,
|
|
||||||
0xce, 0xce, 0xce, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
|
|
||||||
0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
|
|
||||||
0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcb,
|
|
||||||
0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb,
|
|
||||||
0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca,
|
|
||||||
0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9,
|
|
||||||
0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc8,
|
|
||||||
0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8,
|
|
||||||
0xc8, 0xc8, 0xc8, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7,
|
|
||||||
0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
|
|
||||||
0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc5,
|
|
||||||
0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5,
|
|
||||||
0xc5, 0xc5, 0xc5, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4,
|
|
||||||
0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
|
|
||||||
0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc2,
|
|
||||||
0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2,
|
|
||||||
0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
|
||||||
0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
|
||||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xbf,
|
|
||||||
0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf,
|
|
||||||
0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf,
|
|
||||||
0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,
|
|
||||||
0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,
|
|
||||||
0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,
|
|
||||||
0xbe, 0xbe, 0xbe, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd,
|
|
||||||
0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd,
|
|
||||||
0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbc,
|
|
||||||
0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc,
|
|
||||||
0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc,
|
|
||||||
0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
|
||||||
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
|
||||||
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
|
|
||||||
0xbb, 0xbb, 0xbb, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba,
|
|
||||||
0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba,
|
|
||||||
0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xb9,
|
|
||||||
0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9,
|
|
||||||
0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9,
|
|
||||||
0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
|
|
||||||
0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
|
|
||||||
0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
|
|
||||||
0xb8, 0xb8, 0xb8, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7,
|
|
||||||
0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7,
|
|
||||||
0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb6,
|
|
||||||
0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6,
|
|
||||||
0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6,
|
|
||||||
0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5,
|
|
||||||
0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5,
|
|
||||||
0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5,
|
|
||||||
0xb5, 0xb5, 0xb5, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
|
|
||||||
0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
|
|
||||||
0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb3,
|
|
||||||
0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3,
|
|
||||||
0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3,
|
|
||||||
0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2,
|
|
||||||
0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2,
|
|
||||||
0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2,
|
|
||||||
0xb2, 0xb2, 0xb2, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
|
|
||||||
0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1,
|
|
||||||
0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb0,
|
|
||||||
0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0,
|
|
||||||
0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0,
|
|
||||||
0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf,
|
|
||||||
0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf,
|
|
||||||
0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf,
|
|
||||||
0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf,
|
|
||||||
0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf,
|
|
||||||
0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xae,
|
|
||||||
0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae,
|
|
||||||
0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae,
|
|
||||||
0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae,
|
|
||||||
0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae,
|
|
||||||
0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae,
|
|
||||||
0xae, 0xae, 0xae, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad,
|
|
||||||
0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad,
|
|
||||||
0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad,
|
|
||||||
0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad,
|
|
||||||
0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad,
|
|
||||||
0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xac, 0xac, 0xac, 0xac, 0xac,
|
|
||||||
0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
|
|
||||||
0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
|
|
||||||
0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
|
|
||||||
0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac,
|
|
||||||
0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xab,
|
|
||||||
0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
|
|
||||||
0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
|
|
||||||
0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
|
|
||||||
0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
|
|
||||||
0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
|
|
||||||
0xab, 0xab, 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
|
||||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
|
||||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
|
||||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
|
||||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
|
||||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9,
|
|
||||||
0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9,
|
|
||||||
0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9,
|
|
||||||
0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9,
|
|
||||||
0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9,
|
|
||||||
0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa8,
|
|
||||||
0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8,
|
|
||||||
0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8,
|
|
||||||
0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8,
|
|
||||||
0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8,
|
|
||||||
0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8,
|
|
||||||
0xa8, 0xa8, 0xa8, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7,
|
|
||||||
0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7,
|
|
||||||
0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7,
|
|
||||||
0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7,
|
|
||||||
0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7,
|
|
||||||
0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6,
|
|
||||||
0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6,
|
|
||||||
0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6,
|
|
||||||
0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6,
|
|
||||||
0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6,
|
|
||||||
0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa5,
|
|
||||||
0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
|
|
||||||
0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
|
|
||||||
0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
|
|
||||||
0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
|
|
||||||
0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
|
|
||||||
0xa5, 0xa5, 0xa5, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4,
|
|
||||||
0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4,
|
|
||||||
0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4,
|
|
||||||
0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4,
|
|
||||||
0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4,
|
|
||||||
0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
|
|
||||||
0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
|
|
||||||
0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
|
|
||||||
0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
|
|
||||||
0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
|
|
||||||
0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa2,
|
|
||||||
0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
|
|
||||||
0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
|
|
||||||
0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
|
|
||||||
0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
|
|
||||||
0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
|
|
||||||
0xa2, 0xa2, 0xa2, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1,
|
|
||||||
0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1,
|
|
||||||
0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1,
|
|
||||||
0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1,
|
|
||||||
0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1,
|
|
||||||
0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0,
|
|
||||||
0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0,
|
|
||||||
0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0,
|
|
||||||
0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0,
|
|
||||||
0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0,
|
|
||||||
0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
|
|
||||||
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e,
|
|
||||||
0x9e, 0x9e, 0x9e, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
|
|
||||||
0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
|
|
||||||
0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b,
|
|
||||||
0x9b, 0x9b, 0x9b, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a,
|
|
||||||
0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
|
|
||||||
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
|
|
||||||
0x98, 0x98, 0x98, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
|
|
||||||
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
|
|
||||||
0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
|
|
||||||
0x95, 0x95, 0x95, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
|
|
||||||
0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
|
|
||||||
0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
|
|
||||||
0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
|
|
||||||
0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
|
|
||||||
0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f,
|
|
||||||
0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e,
|
|
||||||
0x8e, 0x8e, 0x8e, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d,
|
|
||||||
0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c,
|
|
||||||
0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b,
|
|
||||||
0x8b, 0x8b, 0x8b, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a,
|
|
||||||
0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
|
|
||||||
0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
|
|
||||||
0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
|
||||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
|
|
||||||
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
|
|
||||||
0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
|
||||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
|
|
||||||
0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
|
|
||||||
0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
|
|
||||||
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
|
||||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const qint16 ulaw_decode[256] = {
|
static const qint16 ulaw_decode[256] = {
|
||||||
-32124, -31100, -30076, -29052, -28028, -27004, -25980, -24956,
|
-32124, -31100, -30076, -29052, -28028, -27004, -25980, -24956,
|
||||||
-23932, -22908, -21884, -20860, -19836, -18812, -17788, -16764,
|
-23932, -22908, -21884, -20860, -19836, -18812, -17788, -16764,
|
||||||
|
|
19
wfmain.cpp
19
wfmain.cpp
|
@ -684,14 +684,9 @@ void wfmain::setupMainUI()
|
||||||
ui->meter2selectionCombo->addItem("Center", meterCenter);
|
ui->meter2selectionCombo->addItem("Center", meterCenter);
|
||||||
ui->meter2Widget->hide();
|
ui->meter2Widget->hide();
|
||||||
|
|
||||||
#ifdef QT_DEBUG
|
|
||||||
// Experimental feature:
|
|
||||||
ui->meter2selectionCombo->show();
|
ui->meter2selectionCombo->show();
|
||||||
ui->secondaryMeterSelectionLabel->show();
|
ui->secondaryMeterSelectionLabel->show();
|
||||||
#else
|
|
||||||
ui->meter2selectionCombo->hide();
|
|
||||||
ui->secondaryMeterSelectionLabel->hide();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Future ideas:
|
// Future ideas:
|
||||||
//ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod);
|
//ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod);
|
||||||
|
@ -1433,6 +1428,8 @@ void wfmain::loadSettings()
|
||||||
ui->audioRXCodecCombo->addItem("LPCM 2ch 16bit", 16);
|
ui->audioRXCodecCombo->addItem("LPCM 2ch 16bit", 16);
|
||||||
ui->audioRXCodecCombo->addItem("uLaw 2ch 8bit", 32);
|
ui->audioRXCodecCombo->addItem("uLaw 2ch 8bit", 32);
|
||||||
ui->audioRXCodecCombo->addItem("PCM 2ch 8bit", 8);
|
ui->audioRXCodecCombo->addItem("PCM 2ch 8bit", 8);
|
||||||
|
ui->audioRXCodecCombo->addItem("Opus 1ch", 64);
|
||||||
|
ui->audioRXCodecCombo->addItem("Opus 2ch", 128);
|
||||||
|
|
||||||
ui->audioRXCodecCombo->blockSignals(true);
|
ui->audioRXCodecCombo->blockSignals(true);
|
||||||
rxSetup.codec = settings->value("AudioRXCodec", "4").toInt();
|
rxSetup.codec = settings->value("AudioRXCodec", "4").toInt();
|
||||||
|
@ -1445,6 +1442,7 @@ void wfmain::loadSettings()
|
||||||
ui->audioTXCodecCombo->addItem("LPCM 1ch 16bit", 4);
|
ui->audioTXCodecCombo->addItem("LPCM 1ch 16bit", 4);
|
||||||
ui->audioTXCodecCombo->addItem("LPCM 1ch 8bit", 2);
|
ui->audioTXCodecCombo->addItem("LPCM 1ch 8bit", 2);
|
||||||
ui->audioTXCodecCombo->addItem("uLaw 1ch 8bit", 1);
|
ui->audioTXCodecCombo->addItem("uLaw 1ch 8bit", 1);
|
||||||
|
ui->audioTXCodecCombo->addItem("Opus 1ch", 64);
|
||||||
|
|
||||||
ui->audioRXCodecCombo->blockSignals(true);
|
ui->audioRXCodecCombo->blockSignals(true);
|
||||||
txSetup.codec = settings->value("AudioTXCodec", "4").toInt();
|
txSetup.codec = settings->value("AudioTXCodec", "4").toInt();
|
||||||
|
@ -2242,12 +2240,12 @@ void wfmain::setAppTheme(bool isCustom)
|
||||||
#ifndef Q_OS_LINUX
|
#ifndef Q_OS_LINUX
|
||||||
QFile f(":"+prefs.stylesheetPath); // built-in resource
|
QFile f(":"+prefs.stylesheetPath); // built-in resource
|
||||||
#else
|
#else
|
||||||
QFile f("/usr/share/wfview/stylesheets/" + prefs.stylesheetPath);
|
QFile f(PREFIX "/share/wfview/" + prefs.stylesheetPath);
|
||||||
#endif
|
#endif
|
||||||
if (!f.exists())
|
if (!f.exists())
|
||||||
{
|
{
|
||||||
printf("Unable to set stylesheet, file not found\n");
|
printf("Unable to set stylesheet, file not found\n");
|
||||||
printf("Tried to load: [%s]\n", QString( QString("/usr/share/wfview/stylesheets/") + prefs.stylesheetPath).toStdString().c_str() );
|
printf("Tried to load: [%s]\n", f.fileName().toStdString().c_str() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2404,6 +2402,7 @@ void wfmain::doCmd(commandtype cmddata)
|
||||||
{
|
{
|
||||||
bool pttrequest = (*std::static_pointer_cast<bool>(data));
|
bool pttrequest = (*std::static_pointer_cast<bool>(data));
|
||||||
emit setPTT(pttrequest);
|
emit setPTT(pttrequest);
|
||||||
|
ui->meter2Widget->clearMeterOnPTTtoggle();
|
||||||
if(pttrequest)
|
if(pttrequest)
|
||||||
{
|
{
|
||||||
ui->meterSPoWidget->setMeterType(meterPower);
|
ui->meterSPoWidget->setMeterType(meterPower);
|
||||||
|
@ -3943,9 +3942,6 @@ void wfmain::on_bandGenbtn_clicked()
|
||||||
void wfmain::on_aboutBtn_clicked()
|
void wfmain::on_aboutBtn_clicked()
|
||||||
{
|
{
|
||||||
abtBox->show();
|
abtBox->show();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wfmain::on_fStoBtn_clicked()
|
void wfmain::on_fStoBtn_clicked()
|
||||||
|
@ -5257,6 +5253,7 @@ void wfmain::on_meter2selectionCombo_activated(int index)
|
||||||
if(newMeterType==meterNone)
|
if(newMeterType==meterNone)
|
||||||
{
|
{
|
||||||
ui->meter2Widget->hide();
|
ui->meter2Widget->hide();
|
||||||
|
ui->meter2Widget->setMeterType(newMeterType);
|
||||||
} else {
|
} else {
|
||||||
ui->meter2Widget->show();
|
ui->meter2Widget->show();
|
||||||
ui->meter2Widget->setMeterType(newMeterType);
|
ui->meter2Widget->setMeterType(newMeterType);
|
||||||
|
|
33
wfview.pro
33
wfview.pro
|
@ -38,6 +38,12 @@ equals(QT_ARCH, arm): DEFINES += USE_NEON
|
||||||
DEFINES += OUTSIDE_SPEEX
|
DEFINES += OUTSIDE_SPEEX
|
||||||
DEFINES += RANDOM_PREFIX=wf
|
DEFINES += RANDOM_PREFIX=wf
|
||||||
|
|
||||||
|
isEmpty(PREFIX) {
|
||||||
|
PREFIX = /usr/local
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINES += PREFIX=\\\"$$PREFIX\\\"
|
||||||
|
|
||||||
# Choose audio system, uses QTMultimedia if both are commented out.
|
# Choose audio system, uses QTMultimedia if both are commented out.
|
||||||
# DEFINES += RTAUDIO
|
# DEFINES += RTAUDIO
|
||||||
# DEFINES += PORTAUDIO
|
# DEFINES += PORTAUDIO
|
||||||
|
@ -74,31 +80,40 @@ win32:DEFINES += UNAME=\\\"build\\\"
|
||||||
RESOURCES += qdarkstyle/style.qrc \
|
RESOURCES += qdarkstyle/style.qrc \
|
||||||
resources/resources.qrc
|
resources/resources.qrc
|
||||||
|
|
||||||
|
unix:target.path = $$PREFIX/bin
|
||||||
|
INSTALLS += target
|
||||||
|
|
||||||
# Why doesn't this seem to do anything?
|
# Why doesn't this seem to do anything?
|
||||||
DISTFILES += resources/wfview.png \
|
DISTFILES += resources/wfview.png \
|
||||||
resources/install.sh
|
resources/install.sh
|
||||||
DISTFILES += resources/wfview.desktop
|
DISTFILES += resources/wfview.desktop
|
||||||
|
|
||||||
linux:QMAKE_POST_LINK += cp ../wfview/resources/wfview.png .;
|
unix:applications.files = resources/wfview.desktop
|
||||||
linux:QMAKE_POST_LINK += cp ../wfview/resources/wfview.desktop .;
|
unix:applications.path = $$PREFIX/share/applications
|
||||||
linux:QMAKE_POST_LINK += cp ../wfview/resources/install.sh .;
|
INSTALLS += applications
|
||||||
linux:QMAKE_POST_LINK += cp -r ../wfview/qdarkstyle .;
|
|
||||||
linux:QMAKE_POST_LINK += chmod 755 install.sh;
|
|
||||||
linux:QMAKE_POST_LINK += echo; echo; echo "Run install.sh as root from the build directory to install."; echo; echo;
|
|
||||||
|
|
||||||
|
unix:pixmaps.files = resources/wfview.png
|
||||||
|
unix:pixmaps.path = $$PREFIX/share/pixmaps
|
||||||
|
INSTALLS += pixmaps
|
||||||
|
|
||||||
|
unix:stylesheets.files = qdarkstyle
|
||||||
|
unix:stylesheets.path = $$PREFIX/share/wfview
|
||||||
|
INSTALLS += stylesheets
|
||||||
|
|
||||||
# Do not do this, it will hang on start:
|
# Do not do this, it will hang on start:
|
||||||
# CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT
|
# CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT
|
||||||
|
|
||||||
CONFIG(debug, release|debug) {
|
CONFIG(debug, release|debug) {
|
||||||
linux: QCPLIB = qcustomplotd
|
linux: QCPLIB = qcustomplotd
|
||||||
|
win32:LIBS += -L../opus/win32/VS2015/Win32/Debug/ -lopus
|
||||||
} else {
|
} else {
|
||||||
linux: QCPLIB = qcustomplot
|
linux: QCPLIB = qcustomplot
|
||||||
|
win32:LIBS += -L../opus/win32/VS2015/Win32/Release/ -lopus
|
||||||
}
|
}
|
||||||
|
|
||||||
#linux:LIBS += -L./ -l$$QCPLIB -lpulse -lpulse-simple -lpthread
|
#linux:LIBS += -L./ -l$$QCPLIB -lpulse -lpulse-simple -lpthread
|
||||||
linux:LIBS += -L./ -l$$QCPLIB
|
linux:LIBS += -L./ -l$$QCPLIB -lopus
|
||||||
macx:LIBS += -framework CoreAudio -framework CoreFoundation -lpthread
|
macx:LIBS += -framework CoreAudio -framework CoreFoundation -lpthread -lopus
|
||||||
|
|
||||||
#win32:SOURCES += rtaudio/RTAudio.cpp
|
#win32:SOURCES += rtaudio/RTAudio.cpp
|
||||||
#win32:HEADERS += rtaudio/RTAUdio.h
|
#win32:HEADERS += rtaudio/RTAUdio.h
|
||||||
|
@ -106,6 +121,8 @@ macx:LIBS += -framework CoreAudio -framework CoreFoundation -lpthread
|
||||||
!linux:HEADERS += ../qcustomplot/qcustomplot.h
|
!linux:HEADERS += ../qcustomplot/qcustomplot.h
|
||||||
!linux:INCLUDEPATH += ../qcustomplot
|
!linux:INCLUDEPATH += ../qcustomplot
|
||||||
|
|
||||||
|
!linux:INCLUDEPATH += ../opus/include
|
||||||
|
|
||||||
INCLUDEPATH += resampler
|
INCLUDEPATH += resampler
|
||||||
!linux:INCLUDEPATH += rtaudio
|
!linux:INCLUDEPATH += rtaudio
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>.;..\qcustomplot;resampler;rtaudio;release;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>.;..\qcustomplot;..\opus\include;resampler;rtaudio;release;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AssemblerListingLocation>release\</AssemblerListingLocation>
|
<AssemblerListingLocation>release\</AssemblerListingLocation>
|
||||||
<BrowseInformation>false</BrowseInformation>
|
<BrowseInformation>false</BrowseInformation>
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
<ExceptionHandling>Sync</ExceptionHandling>
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
<ObjectFileName>release\</ObjectFileName>
|
<ObjectFileName>release\</ObjectFileName>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="953f572";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="fc2d1e2";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<PreprocessToFile>false</PreprocessToFile>
|
<PreprocessToFile>false</PreprocessToFile>
|
||||||
<ProgramDataBaseFileName></ProgramDataBaseFileName>
|
<ProgramDataBaseFileName></ProgramDataBaseFileName>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
@ -66,8 +66,8 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>..\opus\win32\VS2015\Win32\Release\opus.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>..\opus\win32\VS2015\Win32\Release;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
|
@ -85,12 +85,12 @@
|
||||||
<WarningLevel>0</WarningLevel>
|
<WarningLevel>0</WarningLevel>
|
||||||
</Midl>
|
</Midl>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"953f572\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"fc2d1e2\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
|
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>.;..\qcustomplot;resampler;rtaudio;debug;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>.;..\qcustomplot;..\opus\include;resampler;rtaudio;debug;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)</AdditionalOptions>
|
||||||
<AssemblerListingLocation>debug\</AssemblerListingLocation>
|
<AssemblerListingLocation>debug\</AssemblerListingLocation>
|
||||||
<BrowseInformation>false</BrowseInformation>
|
<BrowseInformation>false</BrowseInformation>
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
<ExceptionHandling>Sync</ExceptionHandling>
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
<ObjectFileName>debug\</ObjectFileName>
|
<ObjectFileName>debug\</ObjectFileName>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="953f572";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="fc2d1e2";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<PreprocessToFile>false</PreprocessToFile>
|
<PreprocessToFile>false</PreprocessToFile>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
@ -107,8 +107,8 @@
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>..\opus\win32\VS2015\Win32\Debug\opus.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>..\opus\win32\VS2015\Win32\Debug;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
<WarningLevel>0</WarningLevel>
|
<WarningLevel>0</WarningLevel>
|
||||||
</Midl>
|
</Midl>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"953f572\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"fc2d1e2\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
|
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
Ładowanie…
Reference in New Issue