1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef AUDIOCHUNK_H
- #define AUDIOCHUNK_H
- #include <memory>
- #include <vector>
- #include <string>
- #include <algorithm>
- #include "pthread.h"
- #include "platform/WrappedSemaphore.h"
- #include "Crypto.h"
- #include "Utils.h"
- #include <mutex>
- class AudioChunk {
- private:
-
- std::vector<uint8_t> getIVSum(uint32_t num);
- public:
- std::unique_ptr<Crypto> crypto;
- std::vector<uint8_t> decryptedData;
- std::vector<uint8_t> audioKey;
- bool keepInMemory = false;
- pthread_mutex_t loadingMutex;
- std::mutex dataAccessMutex;
- uint32_t startPosition;
- uint32_t endPosition;
- uint16_t seqId;
- size_t headerFileSize = -1;
- bool isLoaded = false;
- bool isFailed = false;
-
- std::unique_ptr<WrappedSemaphore> isLoadedSemaphore;
-
- std::unique_ptr<WrappedSemaphore> isHeaderFileSizeLoadedSemaphore;
-
- AudioChunk(uint16_t seqId, std::vector<uint8_t> &audioKey, uint32_t startPosition, uint32_t predictedEndPosition);
- ~AudioChunk();
-
- void appendData(std::vector<uint8_t> &data);
-
- void decrypt();
- };
- #endif
|