mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-27 23:37:04 -05:00
patterns: Add ARIA2 Control format (#179)
This commit is contained in:
@@ -26,6 +26,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi
|
|||||||
| 7Z | | [`patterns/7z.hexpat`](patterns/7z.hexpat) | 7z File Format |
|
| 7Z | | [`patterns/7z.hexpat`](patterns/7z.hexpat) | 7z File Format |
|
||||||
| AFE2 | | [`patterns/afe2.hexpat`](patterns/afe2.hexpat) | Nintendo Switch Atmosphère CFW Fatal Error log |
|
| AFE2 | | [`patterns/afe2.hexpat`](patterns/afe2.hexpat) | Nintendo Switch Atmosphère CFW Fatal Error log |
|
||||||
| AR | `application/x-archive` | [`patterns/ar.hexpat`](patterns/ar.hexpat) | Static library archive files |
|
| AR | `application/x-archive` | [`patterns/ar.hexpat`](patterns/ar.hexpat) | Static library archive files |
|
||||||
|
| ARIA2 | | [`patterns/aria2.hexpat`](patterns/aria2.hexpat) | ARIA2 Download Manager Control files |
|
||||||
| ARM VTOR | | [`patterns/arm_cm_vtor.hexpat`](patterns/arm_cm_vtor.hexpat) | ARM Cortex M Vector Table Layout |
|
| ARM VTOR | | [`patterns/arm_cm_vtor.hexpat`](patterns/arm_cm_vtor.hexpat) | ARM Cortex M Vector Table Layout |
|
||||||
| Bencode | `application/x-bittorrent` | [`patterns/bencode.hexpat`](patterns/bencode.hexpat) | Bencode encoding, used by Torrent files |
|
| Bencode | `application/x-bittorrent` | [`patterns/bencode.hexpat`](patterns/bencode.hexpat) | Bencode encoding, used by Torrent files |
|
||||||
| BMP | `image/bmp` | [`patterns/bmp.hexpat`](patterns/bmp.hexpat) | OS2/Windows Bitmap files |
|
| BMP | `image/bmp` | [`patterns/bmp.hexpat`](patterns/bmp.hexpat) | OS2/Windows Bitmap files |
|
||||||
|
|||||||
36
patterns/aria2.hexpat
Normal file
36
patterns/aria2.hexpat
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#pragma author itsmeow
|
||||||
|
#pragma description aria2 Control File
|
||||||
|
|
||||||
|
#pragma endian big
|
||||||
|
|
||||||
|
/*
|
||||||
|
Format sourced from:
|
||||||
|
https://aria2.github.io/manual/en/html/technical-notes.html#control-file-aria2-format
|
||||||
|
|
||||||
|
Version 0 files are not supported by default
|
||||||
|
However parsing one is as simple as changing to #pragma endian ittle
|
||||||
|
and resolving any errors resulting from that by adding be prefixes to struct fields.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct AriaInFlight {
|
||||||
|
u32 index;
|
||||||
|
u32 length;
|
||||||
|
u32 bitfield_piece_length;
|
||||||
|
u8 bitfield_p[bitfield_piece_length];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct AriaHeader {
|
||||||
|
u16 version;
|
||||||
|
u32 extension;
|
||||||
|
u32 infohash_length;
|
||||||
|
u8 infohash[infohash_length];
|
||||||
|
u32 piece_length;
|
||||||
|
u64 total_length;
|
||||||
|
u64 upload_length;
|
||||||
|
u32 bitfield_length;
|
||||||
|
u8 bitfield_d[bitfield_length];
|
||||||
|
u32 inflight_count;
|
||||||
|
AriaInFlight inflights[inflight_count];
|
||||||
|
};
|
||||||
|
|
||||||
|
AriaHeader aria_header @ 0x00;
|
||||||
BIN
tests/patterns/test_data/aria2.hexpat.aria2
Normal file
BIN
tests/patterns/test_data/aria2.hexpat.aria2
Normal file
Binary file not shown.
Reference in New Issue
Block a user