1#ifndef FILETYPE_TYPES_HPP
2#define FILETYPE_TYPES_HPP
18#include "filetype/type.hpp"
19#include "filetype/types/archive.hpp"
20#include "filetype/types/audio.hpp"
21#include "filetype/types/document.hpp"
22#include "filetype/types/image.hpp"
23#include "filetype/types/video.hpp"
54 const std::array<uint8_t, N>& magic,
66inline bool is_valid_buffer(
const std::vector<uint8_t>& bytes,
size_t min_size = 8);
74using image::TYPE_HEIC;
76using image::TYPE_JPEG;
80using image::TYPE_TIFF;
81using image::TYPE_WEBP;
84using document::TYPE_DOC;
85using document::TYPE_DOCX;
86using document::TYPE_EPUB;
87using document::TYPE_PDF;
88using document::TYPE_PPT;
89using document::TYPE_PPTX;
90using document::TYPE_RTF;
91using document::TYPE_XLS;
92using document::TYPE_XLSX;
95using archive::TYPE_7Z;
96using archive::TYPE_BZ2;
97using archive::TYPE_GZ;
98using archive::TYPE_RAR;
99using archive::TYPE_TAR;
100using archive::TYPE_XZ;
101using archive::TYPE_Z;
102using archive::TYPE_ZIP;
105using audio::TYPE_AAC;
106using audio::TYPE_AIFF;
107using audio::TYPE_FLAC;
108using audio::TYPE_M4A;
109using audio::TYPE_MIDI;
110using audio::TYPE_MP3;
111using audio::TYPE_OGG;
112using audio::TYPE_WAV;
113using audio::TYPE_WMA;
116using video::TYPE_3GP;
117using video::TYPE_AVI;
118using video::TYPE_FLV;
119using video::TYPE_MKV;
120using video::TYPE_MOV;
121using video::TYPE_MP4;
122using video::TYPE_MPEG;
123using video::TYPE_WEBM;
124using video::TYPE_WMV;
129using image::BMP_MAGIC;
130using image::CR2_MAGIC;
131using image::GIF_MAGIC;
132using image::HEIC_MAGIC;
133using image::ICO_MAGIC;
134using image::JPEG_MAGIC;
135using image::JXR_MAGIC;
136using image::PNG_MAGIC;
137using image::PSD_MAGIC;
138using image::TIFF_MAGIC_BE;
139using image::TIFF_MAGIC_LE;
140using image::WEBP_MAGIC;
143using document::DOC_MAGIC;
144using document::DOCX_MAGIC;
145using document::PDF_MAGIC;
146using document::RTF_MAGIC;
149using archive::BZ2_MAGIC;
150using archive::GZ_MAGIC;
151using archive::RAR_MAGIC;
152using archive::SEVEN_Z_MAGIC;
153using archive::TAR_MAGIC;
154using archive::XZ_MAGIC;
155using archive::Z_MAGIC;
156using archive::ZIP_MAGIC;
159using audio::AAC_MAGIC;
160using audio::AIFF_MAGIC;
161using audio::FLAC_MAGIC;
162using audio::M4A_MAGIC;
163using audio::MIDI_MAGIC;
164using audio::MP3_ID3_MAGIC;
165using audio::MP3_MAGIC;
166using audio::OGG_MAGIC;
167using audio::WAV_MAGIC;
168using audio::WMA_MAGIC;
171using video::AVI_MAGIC;
172using video::FLV_MAGIC;
173using video::MKV_MAGIC;
174using video::MOV_MAGIC;
175using video::MP4_MAGIC;
176using video::MPEG_MAGIC;
177using video::MPEG_MAGIC_ALT;
178using video::THREEGP_MAGIC;
179using video::WEBM_MAGIC;
180using video::WMV_MAGIC;
bool match_magic(const std::vector< uint8_t > &bytes, const uint8_t *magic, size_t magic_size, size_t offset=0)
Check if bytes match a magic number pattern.
bool is_valid_buffer(const std::vector< uint8_t > &bytes, size_t min_size=8)
Check if a buffer is valid for type detection.