Skip to content

Commit

Permalink
patterns: Added SWF header pattern (#219)
Browse files Browse the repository at this point in the history
* patterns: Added pattern for SWF files.

* Added test file for SWF header.

* Update README with SWF file type.
  • Loading branch information
saturnaliam authored Jan 27, 2024
1 parent 35cc685 commit e7d1973
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi
| SPIRV | | [`patterns/spirv.hexpat`](patterns/spirv.hexpat) | SPIR-V header and instructions |
| STL | `model/stl` | [`patterns/stl.hexpat`](patterns/stl.hexpat) | STL 3D Model format |
| StuffItV5 | `application/x-stuffit` | [`patterns/sit5.hexpat`](patterns/sit5.hexpat) | StuffIt V5 archive |
| SWF | |[`patterns/swf.hexpat`](patterns/swf.hexpat) | Shockwave Flash file format |
| TAR | `application/x-tar` | [`patterns/tar.hexpat`](patterns/tar.hexpat) | Tar file format |
| TIFF | `image/tiff` | [`patterns/tiff.hexpat`](patterns/tiff.hexpat) | Tag Image File Format |
| TGA | `image/tga` | [`patterns/tga.hexpat`](patterns/tga.hexpat) | Truevision TGA/TARGA image |
Expand Down
29 changes: 29 additions & 0 deletions patterns/swf.hexpat
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma author saturnaliam
#pragma description SWF file header
#pragma endian little
#include <type/magic.pat>


// RECTs are more complicated, but for the header,
// this works fine.
bitfield Rect {
nSize : 5 [[name("N Size")]];
signed xMin : 15 [[name("X Min")]];
signed xMax : 15 [[name("X Max")]];
signed yMin : 15 [[name("Y Min")]];
signed yMax : 15 [[name("Y Max")]];
};


struct Header {
char compressionSignature [[name("Compression"), comment("F - Uncompressed\nC - zlib Compressed\nZ - LZMA compressed")]];
type::Magic<"WS"> signature [[name("Signature")]];
u8 swfVersion [[name("SWF Version")]];
u32 bytesSize [[name("Uncompressed Size")]];
be Rect rect [[name("Frame Size"), comment("Needs to be uncompressed to have the correct value.")]];
padding[1];
u8 frameRate [[name("Framerate"), comment("Needs to be uncompressed to have the correct value.")]];
u16 frameCount [[name("Frame Count"), comment("Needs to be uncompressed to have the correct value.")]];
};

Header header @ 0x00;
Binary file added tests/patterns/test_data/swf.hexpat.swf
Binary file not shown.

0 comments on commit e7d1973

Please sign in to comment.