From b682b466318861ec7e64e764f6edf94c5ad15295 Mon Sep 17 00:00:00 2001 From: Rafael Date: Tue, 29 Mar 2016 13:17:38 +0200 Subject: [PATCH] added TITL DESC parse in SnapmaticPicture class --- SnapmaticPicture.cpp | 59 +++++++++++++++++++++++++++++++++++++++++++- SnapmaticPicture.h | 6 +++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/SnapmaticPicture.cpp b/SnapmaticPicture.cpp index 26c7cd5..3b94851 100755 --- a/SnapmaticPicture.cpp +++ b/SnapmaticPicture.cpp @@ -34,6 +34,7 @@ SnapmaticPicture::SnapmaticPicture(QString fileName, QObject *parent) : QObject( jpegPreHeaderLength = 14; jpegPicStreamLength = 524288; jsonStreamLength = 3076; + tideStreamLength = 260; // INIT PIC cachePicture = QImage(0, 0, QImage::Format_RGB32); @@ -102,7 +103,7 @@ bool SnapmaticPicture::readingPicture() // Read JPEG Stream if (!picFile->isReadable()) { - lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",3,NOPIC"; + lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",2,NOPIC"; picFile->close(); picFile->deleteLater(); delete picFile; @@ -132,6 +133,44 @@ bool SnapmaticPicture::readingPicture() jsonStr = getSnapmaticJSONString(jsonRawContent); parseJsonContent(); // JSON parsing is own function + if (!picFile->isReadable()) + { + lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",4,NOTITL"; + picFile->close(); + picFile->deleteLater(); + delete picFile; + return picOk; + } + else if (picFile->read(4) != "TITL") + { + lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",4,CTTITL"; + picFile->close(); + picFile->deleteLater(); + delete picFile; + return picOk; + } + QByteArray titlRawContent = picFile->read(tideStreamLength); + titlStr = getSnapmaticTIDEString(titlRawContent); + + if (!picFile->isReadable()) + { + lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",5,NODESC"; + picFile->close(); + picFile->deleteLater(); + delete picFile; + return picOk; + } + else if (picFile->read(4) != "DESC") + { + lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",5,CTDESC"; + picFile->close(); + picFile->deleteLater(); + delete picFile; + return picOk; + } + QByteArray descRawContent = picFile->read(tideStreamLength); + descStr = getSnapmaticTIDEString(descRawContent); + picFile->close(); picFile->deleteLater(); delete picFile; @@ -154,6 +193,14 @@ QString SnapmaticPicture::getSnapmaticJSONString(QByteArray jsonBytes) return QString::fromLatin1(jsonUsefulBytes); } +QString SnapmaticPicture::getSnapmaticTIDEString(QByteArray tideBytes) +{ + QByteArray tideUsefulBytes = tideBytes; + tideUsefulBytes.remove(0,4); + QList tideUsefulBytesList = tideUsefulBytes.split(0x00); + return QString::fromLatin1(tideUsefulBytesList.at(0)); +} + bool SnapmaticPicture::readingPictureFromFile(QString fileName) { if (fileName != "") @@ -172,6 +219,16 @@ void SnapmaticPicture::setPicture(QImage picture) cachePicture = picture; } +QString SnapmaticPicture::getPictureDesc() +{ + return descStr; +} + +QString SnapmaticPicture::getPictureTitl() +{ + return titlStr; +} + QString SnapmaticPicture::getPictureStr() { return pictureStr; diff --git a/SnapmaticPicture.h b/SnapmaticPicture.h index bcfc86f..64208b4 100755 --- a/SnapmaticPicture.h +++ b/SnapmaticPicture.h @@ -37,6 +37,8 @@ public: QImage getPicture(); QString getLastStep(); QString getPictureStr(); + QString getPictureTitl(); + QString getPictureDesc(); // JSON bool isJsonOk(); @@ -50,12 +52,15 @@ public: private: QString getSnapmaticPictureString(QByteArray snapmaticHeader); QString getSnapmaticJSONString(QByteArray jsonBytes); + QString getSnapmaticTIDEString(QByteArray tideBytes); QString convertDrawStringForLog(QString inputStr); QString convertLogStringForDraw(QString inputStr); QImage cachePicture; QString picFileName; QString pictureStr; QString lastStep; + QString titlStr; + QString descStr; bool picOk; // PARSE INT @@ -65,6 +70,7 @@ private: int jpegPreHeaderLength; int jpegPicStreamLength; int jsonStreamLength; + int tideStreamLength; // JSON void parseJsonContent();