Commit 278fa76816597731198d3a99da943b95d58e384f

Authored by Josh Klontz
1 parent f7ae0c93

progress toward serving images

Showing 1 changed file with 22 additions and 4 deletions
app/br-serve/br-serve.cpp
... ... @@ -57,10 +57,28 @@ public slots:
57 57 message = process.readLine();
58 58 response->setHeader("Content-Type", "application/json");
59 59 } else if (urlQuery.hasQueryItem("ImageID")) {
60   - process.write(qPrintable(QString(urlQuery.queryItemValue("ImageID") + "\n")));
61   - process.waitForReadyRead();
62   - if (process.error() != QProcess::UnknownError)
63   - qFatal("%s\n", qPrintable(process.errorString()));
  60 + const QByteArray imageID = QByteArray::fromHex(urlQuery.queryItemValue("ImageID").toLatin1());
  61 + if (imageID.size() == 16) {
  62 + br_universal_template in;
  63 + in.algorithmID = 2;
  64 + memcpy(&in.imageID, imageID.data(), 16);
  65 + memset(in.templateID, 0, 16);
  66 + in.size = 0;
  67 +
  68 + process.write((const char *)&in, sizeof(br_universal_template));
  69 + process.waitForReadyRead();
  70 + if (process.error() != QProcess::UnknownError)
  71 + qFatal("%s\n", qPrintable(process.errorString()));
  72 +
  73 + br_utemplate out = (br_utemplate) malloc(sizeof(br_universal_template));
  74 + if (process.read((char*) out, sizeof(br_universal_template)) == sizeof(br_universal_template)) {
  75 + out = (br_utemplate) realloc(out, sizeof(br_universal_template) + out->size);
  76 + if (process.read(reinterpret_cast<char*>(out+1), out->size) != out->size)
  77 + qFatal("Unexepected EOF when reading universal template data.");
  78 + message = QByteArray((char*)&out->data, out->size);
  79 + }
  80 + free(out);
  81 + }
64 82 response->setHeader("Content-Type", "image/jpeg");
65 83 } else {
66 84 QString path = request->path();
... ...