cpp-filetype
 
Loading...
Searching...
No Matches
types.hpp File Reference

Main header file for file type definitions. More...

#include <array>
#include <cstdint>
#include <string_view>
#include <vector>
#include "filetype/type.hpp"
#include "filetype/types/archive.hpp"
#include "filetype/types/audio.hpp"
#include "filetype/types/document.hpp"
#include "filetype/types/image.hpp"
#include "filetype/types/video.hpp"

Go to the source code of this file.

Functions

bool filetype::types::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.
 
template<size_t N>
bool filetype::types::match_magic (const std::vector< uint8_t > &bytes, const std::array< uint8_t, N > &magic, size_t offset=0)
 Template version of match_magic for std::array magic numbers.
 
bool filetype::types::is_valid_buffer (const std::vector< uint8_t > &bytes, size_t min_size=8)
 Check if a buffer is valid for type detection.
 

Variables

const Type filetype::types::TYPE_BMP
 
const Type filetype::types::TYPE_CR2
 
const Type filetype::types::TYPE_GIF
 
const Type filetype::types::TYPE_HEIC
 
const Type filetype::types::TYPE_ICO
 
const Type filetype::types::TYPE_JPEG
 
const Type filetype::types::TYPE_JXR
 
const Type filetype::types::TYPE_PNG
 
const Type filetype::types::TYPE_PSD
 
const Type filetype::types::TYPE_TIFF
 
const Type filetype::types::TYPE_WEBP
 
const Type filetype::types::TYPE_DOC
 
const Type filetype::types::TYPE_DOCX
 
const Type filetype::types::TYPE_EPUB
 
const Type filetype::types::TYPE_PDF
 
const Type filetype::types::TYPE_PPT
 
const Type filetype::types::TYPE_PPTX
 
const Type filetype::types::TYPE_RTF
 
const Type filetype::types::TYPE_XLS
 
const Type filetype::types::TYPE_XLSX
 
const Type filetype::types::TYPE_7Z
 
const Type filetype::types::TYPE_BZ2
 
const Type filetype::types::TYPE_GZ
 
const Type filetype::types::TYPE_RAR
 
const Type filetype::types::TYPE_TAR
 
const Type filetype::types::TYPE_XZ
 
const Type filetype::types::TYPE_Z
 
const Type filetype::types::TYPE_ZIP
 
const Type filetype::types::TYPE_AAC
 
const Type filetype::types::TYPE_AIFF
 
const Type filetype::types::TYPE_FLAC
 
const Type filetype::types::TYPE_M4A
 
const Type filetype::types::TYPE_MIDI
 
const Type filetype::types::TYPE_MP3
 
const Type filetype::types::TYPE_OGG
 
const Type filetype::types::TYPE_WAV
 
const Type filetype::types::TYPE_WMA
 
const Type filetype::types::TYPE_3GP
 
const Type filetype::types::TYPE_AVI
 
const Type filetype::types::TYPE_FLV
 
const Type filetype::types::TYPE_MKV
 
const Type filetype::types::TYPE_MOV
 
const Type filetype::types::TYPE_MP4
 
const Type filetype::types::TYPE_MPEG
 
const Type filetype::types::TYPE_WEBM
 
const Type filetype::types::TYPE_WMV
 
const std::array< uint8_t, 2 > filetype::types::BMP_MAGIC
 BMP image format Magic: 42 4D (BM)
 
const std::array< uint8_t, 8 > filetype::types::CR2_MAGIC
 Canon Raw v2 image format Magic: 49 49 2A 00 10 00 00 00.
 
const std::array< uint8_t, 6 > filetype::types::GIF_MAGIC
 GIF image format Magic: 47 49 46 38 (GIF8)
 
const std::array< uint8_t, 12 > filetype::types::HEIC_MAGIC
 HEIC image format (High Efficiency Image Format) Magic: 00 00 00 ?? 66 74 79 70 68 65 69 63 (....ftyp heic)
 
const std::array< uint8_t, 4 > filetype::types::ICO_MAGIC
 ICO image format Magic: 00 00 01 00.
 
const std::array< uint8_t, 3 > filetype::types::JPEG_MAGIC
 JPEG image format Magic: FF D8 FF.
 
const std::array< uint8_t, 3 > filetype::types::JXR_MAGIC
 JPEG XR image format Magic: 49 49 BC.
 
const std::array< uint8_t, 8 > filetype::types::PNG_MAGIC
 PNG image format Magic: 89 50 4E 47 0D 0A 1A 0A.
 
const std::array< uint8_t, 4 > filetype::types::PSD_MAGIC
 Photoshop Document format Magic: 38 42 50 53 (8BPS)
 
const std::array< uint8_t, 4 > filetype::types::TIFF_MAGIC_BE
 TIFF image format (big-endian) Magic: 4D 4D 00 2A (MM*. )
 
const std::array< uint8_t, 4 > filetype::types::TIFF_MAGIC_LE
 TIFF image format (little-endian) Magic: 49 49 2A 00 (II*)
 
const std::array< uint8_t, 12 > filetype::types::WEBP_MAGIC
 WebP image format Magic: 52 49 46 46 ?? ?? ?? ?? 57 45 42 50 (RIFF....WEBP)
 
const std::array< uint8_t, 8 > filetype::types::DOC_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::DOCX_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::PDF_MAGIC
 
const std::array< uint8_t, 5 > filetype::types::RTF_MAGIC
 
const std::array< uint8_t, 3 > filetype::types::BZ2_MAGIC
 
const std::array< uint8_t, 3 > filetype::types::GZ_MAGIC
 
const std::array< uint8_t, 7 > filetype::types::RAR_MAGIC
 
const std::array< uint8_t, 6 > filetype::types::SEVEN_Z_MAGIC
 
const std::array< uint8_t, 5 > filetype::types::TAR_MAGIC
 
const std::array< uint8_t, 6 > filetype::types::XZ_MAGIC
 
const std::array< uint8_t, 2 > filetype::types::Z_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::ZIP_MAGIC
 
const std::array< uint8_t, 2 > filetype::types::AAC_MAGIC
 
const std::array< uint8_t, 12 > filetype::types::AIFF_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::FLAC_MAGIC
 
const std::array< uint8_t, 12 > filetype::types::M4A_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::MIDI_MAGIC
 
const std::array< uint8_t, 3 > filetype::types::MP3_ID3_MAGIC
 
const std::array< uint8_t, 2 > filetype::types::MP3_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::OGG_MAGIC
 
const std::array< uint8_t, 12 > filetype::types::WAV_MAGIC
 
const std::array< uint8_t, 8 > filetype::types::WMA_MAGIC
 
const std::array< uint8_t, 12 > filetype::types::AVI_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::FLV_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::MKV_MAGIC
 
const std::array< uint8_t, 12 > filetype::types::MOV_MAGIC
 
const std::array< uint8_t, 8 > filetype::types::MP4_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::MPEG_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::MPEG_MAGIC_ALT
 
const std::array< uint8_t, 11 > filetype::types::THREEGP_MAGIC
 
const std::array< uint8_t, 4 > filetype::types::WEBM_MAGIC
 
const std::array< uint8_t, 8 > filetype::types::WMV_MAGIC
 

Detailed Description

Main header file for file type definitions.

This header serves as the central include file for all file type definitions in the cpp-filetype library. It includes the common type definition as well as all category-specific type headers.

Function Documentation

◆ is_valid_buffer()

bool filetype::types::is_valid_buffer ( const std::vector< uint8_t > & bytes,
size_t min_size = 8 )
inline

Check if a buffer is valid for type detection.

Parameters
bytesBuffer to check.
min_sizeMinimum required size (default: 8 bytes).
Returns
true if buffer is valid and has sufficient size.

◆ match_magic() [1/2]

template<size_t N>
bool filetype::types::match_magic ( const std::vector< uint8_t > & bytes,
const std::array< uint8_t, N > & magic,
size_t offset = 0 )
inline

Template version of match_magic for std::array magic numbers.

Template Parameters
NSize of the magic number array.
Parameters
bytesBuffer containing file data.
magicArray containing magic number sequence.
offsetOffset in bytes where to start matching (default: 0).
Returns
true if bytes match the magic number pattern.

◆ match_magic() [2/2]

bool filetype::types::match_magic ( const std::vector< uint8_t > & bytes,
const uint8_t * magic,
size_t magic_size,
size_t offset = 0 )
inline

Check if bytes match a magic number pattern.

Parameters
bytesBuffer containing file data.
magicPointer to magic number sequence.
magic_sizeLength of the magic number sequence.
offsetOffset in bytes where to start matching (default: 0).
Returns
true if bytes match the magic number pattern.