Rigolo, mais ça sonne faux ^^

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turbo#include "BLTE.h"
#include <zlib.h>
#include <vector>
namespace cas
{
void blte_file::read(network::stream& stream, io::ofstream& sink)
{
if (!sink.is_open())
return;
stream >> network::binary;
int signature, headerSize;
stream >> signature >> endianness::big >> headerSize;
std::vector<int> compressedChunkSizes;
short chunkCount;
if (headerSize > 0)
{
short flags;
stream >> flags >> chunkCount;
compressedChunkSizes.resize(chunkCount);
for (size_t i = 0; i < chunkCount; ++i)
{
int compressedSize;
stream >> compressedSize;
stream.ignore(4 + 16);
compressedChunkSizes[i] = compressedSize - 1;
}
}
else
{
chunkCount = 1;
compressedChunkSizes.push_back(stream.content_length() - 9);
}
for (int i = 0; i < chunkCount; ++i)
{
char encodingMode;
std::vector<unsigned char> chunkData(compressedChunkSizes[i]);
stream >> endianness::little >> encodingMode >> chunkData;
switch (encodingMode)
{
case 0x4E:
sink << chunkData;
break;
case 0x5A: // zlibbed
{
z_stream zstrm;
zstrm.zalloc = Z_NULL;
zstrm.zfree = Z_NULL;
zstrm.opaque = Z_NULL;
zstrm.avail_in = 0;
zstrm.next_in = Z_NULL;
int ret = inflateInit(&zstrm);
if (ret != Z_OK)
break;
zstrm.avail_in = chunkData.size();
zstrm.next_in = &chunkData[0];
const int BufferSize = 4096;
unsigned char outputBuffer[BufferSize];
while (ret != Z_STREAM_END && zstrm.avail_in != 0)
{
zstrm.avail_out = BufferSize;
zstrm.next_out = &outputBuffer[0];
ret = inflate(&zstrm, Z_NO_FLUSH);
if (ret < 0)
{
std::cout << "zlib error " << std::hex << ret << " when decompressing BLTE archive. Process cancelled." << std::endl;
ret = inflateEnd(&zstrm);
return;
}
// ASSERT(ret == Z_STREAM_ERROR, "Clobbered zlib state");
for (unsigned int i = 0; i < BufferSize - zstrm.avail_out; ++i)
sink << outputBuffer[i];
}
ret = inflateEnd(&zstrm);
break;
}
default:
ASSERT(true, "Invalid compression algorithm");
break;
}
}
}
}

System::setPreventSleep(false);
Pen^2 Le 15/05/2016 à 14:34 (C'est en quel langage ?)
Pen^2 Le 15/05/2016 à 14:36 Et l'api c'est quoi ?
C'est bien pour éviter que le système passe en veille ?
Pen^2 Le 15/05/2016 à 15:30 Je sais pas, à une époque j'avais cherché un truc aussi simple et c'était nettement plus moche que ça. Et sur linux c'était encore 42 fois pire (pas vraiment d'api)
"{"BBOX":"155087.710523,5398566.913559,162454.329123,5406009.969187","scaledenom":27083.932228516387,"layers":{"Sites":{"map_layers":"site","sld_xml":"wms_sld_sites_code_risque.xml","opacity":0.48,"showlabel":false}},"baseLayer":{"name":"IGN - Vue aérienne","map_layers":"ORTHOIMAGERY.ORTHOPHOTOS","format":"image/png","opacity":1},"title":"test","subtitle":"","landscape":false,"showTitle":false,"showSubtitle":false,"user":"Me","showUser":false,"showDate":true,"showLegend":true,"copyright":"© IGN - Vue aérienne 2016 / © ONF 2016"}"
(j'ai beau rien y connaître en aviation, je trouver ça impressionnant aussi ; je m'attendais qu'à la fin de la vidéo on découvre qu'en fait c'est un modèle réduit manœuvré avec des ficelles ^^)

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboVêtements
fille
3 ans
Vêtements
fille
4 ans
Ça risque d'être un peu petit pour toi :/

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant