diff --git a/ChunkManager.cpp b/ChunkManager.cpp index 1579fb3..bde4bc5 100644 --- a/ChunkManager.cpp +++ b/ChunkManager.cpp @@ -1,7 +1,6 @@ -#include "ChunkManager.h" +#include "CompressingManager.h" -ChunkManager::ChunkManager(EncryptionManager& em) - :eman(em) +CompressingManager::CompressingManager() { } ChunkManager::~ChunkManager() @@ -37,17 +36,14 @@ std::vector ChunkManager::chunked(const std::vector& raw, const bool std::vector outChunk; - // Przetw髍z chunki i przetw髍z - if (compress) - { - // Zaszyfruj i skompresuj lub tylko skompresuj - outChunk = encrypt ? eman.encrypt(cman.compress(chunk)) : cman.compress(chunk); - } - else - { - // Zaszyfruj lub skopiuj - outChunk = encrypt ? eman.encrypt(chunk) : std::move(chunk); - } + // Buffor wyj渃iowy nadpisany skompresowanymi danymi + std::vector zipChunk(maxZipChunkSize); + + // Kompresja + int zipSize = LZ4_compress_default(chunk.data(), zipChunk.data(), chunkSize, maxZipChunkSize); + + // Zmiana rozmiaru do faktycznego rozmiaru po kompresji + zipChunk.resize(zipSize); uint32_t chs = chunk.size(); uint32_t zch = outChunk.size(); @@ -100,11 +96,19 @@ std::vector ChunkManager::dechunked(const std::vector& zip, const bo std::memcpy(inChunk.data(), zip.data() + offset, chunkZipSize); offset += chunkZipSize; - // Je渓i flaga encrypt jest aktywna najpierw zdeszyfruj blok - std::vector zipChunk = encrypt ? eman.decrypt(inChunk) : std::move(inChunk); - // Zdeklar骿 pusty chunk - std::vector chunk = compress ? cman.decompress(zipChunk, chunkSize) : std::move(zipChunk); + std::vector chunk(chunkSize); + + // Dekompresja chunka + int sizeData = LZ4_decompress_safe(zipChunk.data(), chunk.data(), static_cast(chunkZipSize), static_cast(chunkSize)); + + if (sizeData < 0) + { + throw std::runtime_error("LZ4 Decompressing Error"); + } + + // Dostosowanie rozmiaru vectora po skompresowaniu + chunk.resize(sizeData); // Scal chunki chunksString.insert(chunksString.end(), chunk.begin(), chunk.end()); diff --git a/CompressionManager.cpp b/CompressionManager.cpp index 56825a4..27a2435 100644 --- a/CompressionManager.cpp +++ b/CompressionManager.cpp @@ -1,3 +1,22 @@ +/* + * This file is part of VoidArchiveTool. + * + * Copyright (C) 2025 Yanczi + * + * Void Archive Toolis free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + #include "CompressionManager.h" CompressionManager::CompressionManager() diff --git a/CompressionManager.h b/CompressionManager.h index e49956a..83eef36 100644 --- a/CompressionManager.h +++ b/CompressionManager.h @@ -1,3 +1,22 @@ +/* + * This file is part of VoidArchiveTool. + * + * Copyright (C) 2025 Yanczi + * + * Void Archive Toolis free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + #pragma once #include diff --git a/EncryptionManager.cpp b/EncryptionManager.cpp index aa49bd8..32f533d 100644 --- a/EncryptionManager.cpp +++ b/EncryptionManager.cpp @@ -1,3 +1,22 @@ +/* + * This file is part of VoidArchiveTool. + * + * Copyright (C) 2025 Yanczi + * + * Void Archive Toolis free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + #include "EncryptionManager.h" EncryptionManager::EncryptionManager() diff --git a/EncryptionManager.h b/EncryptionManager.h index 61a03e4..c795bd7 100644 --- a/EncryptionManager.h +++ b/EncryptionManager.h @@ -1,3 +1,22 @@ +/* + * This file is part of VoidArchiveTool. + * + * Copyright (C) 2025 Yanczi + * + * Void Archive Toolis free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + #pragma once #include diff --git a/Interface.cpp b/Interface.cpp index 9e0d7e6..aff711b 100644 --- a/Interface.cpp +++ b/Interface.cpp @@ -1,3 +1,22 @@ +/* + * This file is part of VoidArchiveTool. + * + * Copyright (C) 2025 Yanczi + * + * Void Archive Toolis free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + #include "Interface.h" Interface::Interface() { diff --git a/Interface.h b/Interface.h index e060f7f..5523efd 100644 --- a/Interface.h +++ b/Interface.h @@ -1,3 +1,22 @@ +/* + * This file is part of VoidArchiveTool. + * + * Copyright (C) 2025 Yanczi + * + * Void Archive Toolis free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + #pragma once #include diff --git a/testx/herrsher-of-the-void.png b/testx/herrsher-of-the-void.png new file mode 100644 index 0000000..d6dfc12 Binary files /dev/null and b/testx/herrsher-of-the-void.png differ diff --git a/testx/mus_honkai_space.ogg b/testx/mus_honkai_space.ogg new file mode 100644 index 0000000..136cba5 Binary files /dev/null and b/testx/mus_honkai_space.ogg differ diff --git a/testx/text_file.txt b/testx/text_file.txt new file mode 100644 index 0000000..ed2b7f7 --- /dev/null +++ b/testx/text_file.txt @@ -0,0 +1,251 @@ +Nam strzela膰 nie kazano. - Wst膮pi艂em na dzia艂o + +I sp贸jrza艂em na pole; dwie艣cie armat grzmia艂o. + +Artyleryi ruskiej ci膮gn膮 si臋 szeregi, + +Prosto, d艂ugo, daleko, jako morza brzegi; + +I widzia艂em ich wodza: przybieg艂, mieczem skin膮艂 + +I jak ptak jedno skrzyd艂o wojska swego zwin膮艂; + +Wylewa si臋 spod skrzyd艂a 艣ci艣niona piechota + +D艂ug膮 czarn膮 kolumn膮, jako lawa b艂ota, + +Nasypana iskrami bagnet贸w. Jak s臋py + +Czarne chor膮gwie na 艣mier膰 prowadz膮 zast臋py. + + + +Przeciw nim sterczy bia艂a, w膮ska, zaostrzona, + +Jak g艂az bodz膮cy morze, reduta Ordona. + +Sze艣膰 tylko mia艂a armat; wci膮偶 dymi膮 i 艣wiec膮; + +I nie tyle pr臋dkich s艂贸w gniewne usta miec膮, + +Nie tyle przejdzie uczu膰 przez dusz臋 w rozpaczy, + +Ile z tych dzia艂 lecia艂o bomb, kul i kartaczy. + +Patrz, tam granat w sam 艣rodek kolumny si臋 nurza, + +Jak w fale bry艂a lawy, pu艂k dymem zachmurza; + +P臋ka 艣r贸d dymu granat, szyk pod niebo leci + +I ogromna 艂ysina 艣r贸d kolumny 艣wieci. + + + +Tam kula, lec膮c, z dala grozi, szumi, wyje. + +Ryczy jak byk przed bitw膮, miota si臋, grunt ryje; - + +Ju偶 dopad艂a; jak boa 艣r贸d kolumn si臋 zwija, + +Pali piersi膮, rwie z臋bem, oddechem zabija. + +Najstraszniejszej nie wida膰, lecz s艂ycha膰 po d藕wi臋ku, + +Po waleniu si臋 trup贸w, po ranionych j臋ku: + +Gdy kolumn臋 od ko艅ca do ko艅ca przewierci, + +Jak gdyby 艣rodkiem wojska przeszed艂 anio艂 艣mierci. + + + +Gdzie偶 jest kr贸l, co na rzezie t艂umy te wyprawia? + +Czy dzieli ich odwag臋, czy pier艣 sam nadstawia? + +Nie, on siedzi o pi臋膰set mil na swej stolicy, + +Kr贸l wielki, samow艂adnik 艣wiata po艂owicy; + +Zmarszczy艂 brwi, - i tysi膮ce kibitek wnet leci; + +Podpisa艂, - tysi膮c matek op艂akuje dzieci; + +Skin膮艂, - padaj膮 knuty od Niemna do Chiwy. + +Mocarzu, jak B贸g silny, jak szatan z艂o艣liwy, + +Gdy Turk贸w za Ba艂kanem twoje strasz膮 spi偶e, + +Gdy poselstwo paryskie twoje stopy li偶e, - + +Warszawa jedna twojej mocy si臋 ur膮ga, + +Podnosi na ci臋 r臋k臋 i koron臋 艣ci膮ga, + +Koron臋 Kazimierz贸w, Chrobrych z twojej g艂owy, + +Bo艣 j膮 ukrad艂 i skrwawi艂, synu Wasilowy! + + + +Car dziwi si臋 - ze strachu. drz膮 Petersburczany, + +Car gniewa si臋 - ze strachu mr膮 jego dworzany; + +Ale sypi膮 si臋 wojska, kt贸rych B贸g i wiara + +Jest Car. - Car gniewny: umrzem, rozweselim Cara. + +Pos艂any w贸dz kaukaski z si艂ami p贸艂-艣wiata, + +Wierny, czynny i sprawny - jak knut w r臋ku kata. + + + +Ura! ura! Patrz, blisko reduty, ju偶 w rowy + +Wal膮 si臋, na faszyn臋 k艂ad膮c swe tu艂owy; + +Ju偶 czerni膮 si臋 na bia艂ych palisadach wa艂贸w. + +Jeszcze reduta w 艣rodku, jasna od wystrza艂贸w, + +Czerwieni si臋 nad czerni膮: jak w 艣rodek mrowiaka + +Wrzucony motyl b艂yska, - mrowie go naciska, - + +Zgas艂 - tak zgas艂a reduta. Czy偶 ostatnie dzia艂o + +Str膮cone z 艂o偶a w piasku paszcz臋 zagrzeba艂o? + +Czy zapa艂 krwi膮 ostatni bombardyjer zala艂? + +Zgasn膮艂 ogie艅. - Ju偶 Moskal rogatki wywala艂. + + + +Gdzie偶 r臋czna bro艅? - Ach, dzisiaj pracowa艂a wi臋cej + +Ni偶 na wszystkich przegl膮dach za w艂adzy ksi膮偶臋cej; + +Zgad艂em, dlaczego milczy, - bo nieraz widzia艂em + +Garstk臋 naszych walcz膮c膮 z Moskali nawa艂em. + +Gdy godzin臋 wo艂ano dwa s艂owa: pal, nabij; + +Gdy oddechy dym t艂umi, trud ramiona s艂abi; + +A wci膮偶 grzmi rozkaz wodz贸w, wre 偶o艂nierza czynno艣膰; + +Na koniec bez rozkazu pe艂ni膮 sw膮 powinno艣膰, + +Na koniec bez rozwagi, bez czucia, pami臋ci, + +呕o艂nierz jako m艂yn palny nabija - grzmi - kr臋ci + +Bro艅 od oka do nogi, od nogi na oko: + +A偶 r臋ka w 艂adownicy d艂ugo i g艂臋boko + +Szuka艂a, nie znalaz艂a - i 偶o艂nierz pobladn膮艂, + +Nie znalaz艂szy 艂adunku, ju偶 broni膮 nie w艂adn膮艂; + +I uczu艂, 偶e go pali strzelba rozogniona; + +Upu艣ci艂 j膮 i upad艂; - nim dobij膮, skona. + +Takem my艣li艂, - a w szaniec nieprzyjaci贸艂 kupa + +Ju偶 艂az艂a, jak robactwo na 艣wie偶ego trupa. + + + +Pociemnia艂o mi w oczach - a gdym 艂zy ociera艂, + +S艂ysza艂em, 偶e co艣 do mnie m贸wi艂 m贸j Jenera艂. + +On przez lunet臋 wspart膮 na moim ramieniu + +D艂ugo na szturm i szaniec pogl膮da艂 w milczeniu. + +Na koniec rzek艂; "Stracona". - Spod lunety jego + +Wymkn臋艂o si臋 艂ez kilka, - rzek艂 do mnie: "Kolego, + +Wzrok m艂ody od szkie艂 lepszy; patrzaj, tam na wale, + +Znasz Ordona, czy widzisz, gdzie jest?" - "Jenerale, + +Czy go znam? - Tam sta艂 zawsze, to dzia艂o kierowa艂. + +Nie widz臋 - znajd臋 - dojrz臋! - 艣r贸d dymu si臋 schowa艂: + +Lecz 艣r贸d najg臋stszych k艂臋b贸w dymu ile偶 razy + +Widzia艂em r臋k臋 jego, daj膮c膮 rozkazy. - + +Widz臋 go znowu, - widz臋 r臋k臋 - b艂yskawic臋, + +Wywija, grozi wrogom, trzyma paln膮 艣wi茅c臋, + +Bior膮 go - zgin膮艂 - o nie, - skoczy艂 w d贸艂, - do loch贸w"! + +"Dobrze - rzecze Jenera艂 - nie odda im proch贸w". + + + +Tu blask - dym - chwila cicho - i huk jak stu grom贸w. + +Za膰mi艂o si臋 powietrze od ziemi wylom贸w, + +Harmaty podskoczy艂y i jak wystrzelone + +Toczy艂y si臋 na ko艂ach - lonty zapalone + +Nie trafi艂y do swoich panew. I dym wion膮艂 + +Prosto ku nam; i w g臋stej chmurze nas och艂on膮艂. + +I nie by艂o nic wida膰 pr贸cz granat贸w blasku, + +I powoli dym rzednia艂, opada艂 deszcz piasku. + +Spojrza艂em na redut臋; - wa艂y, palisady, + +Dzia艂a i naszych garstka, i wrog贸w gromady; + +Wszystko jako sen znik艂o. - Tylko czarna bry艂a + +Ziemi niekszta艂tnej le偶y - rozjemcza mogi艂a. + +Tam i ci, co bronili, -i ci, co si臋 wdarli, + +Pierwszy raz pok贸j szczery i wieczny zawarli. + +Cho膰by cesarz Moskalom kaza艂 wsta膰, ju偶 dusza + +Moskiewska. tam raz pierwszy, cesarza nie s艂usza. + +Tam zagrzebane tylu set cia艂a, imiona: + +Dusze gdzie? nie wiem; lecz wiem, gdzie dusza Ordona. + +On b臋dzie Patron sza艅c贸w! - Bo dzie艂o zniszczenia + +W dobrej sprawie jest 艣wi臋te, Jak dzie艂o tworzenia; + +B贸g wyrzek艂 s艂owo sta艅 si臋, B贸g i zgi艅 wyrzecze. + +Kiedy od ludzi wiara i wolno艣膰 uciecze, + +Kiedy ziemi臋 despotyzm i duma szalona + +Oblej膮, jak Moskale redut臋 Ordona - + +Karz膮c plemi臋 zwyci臋偶c贸w zbrodniami zatrute, + +B贸g wysadzi t臋 ziemi臋, jak on sw膮 redut臋. \ No newline at end of file