summaryrefslogtreecommitdiffhomepage
path: root/Public/Developer/System.Containers/Headers/XIFF.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-27 17:38:23 +0100
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-27 17:38:23 +0100
commit1ce16b83dba0326b13dfa3399c1497ac6b1af14d (patch)
tree8a5e4063b5d4cf6ce4f42dd500073994e9ef8954 /Public/Developer/System.Containers/Headers/XIFF.h
parent6a18e607ffc4e83f2bd953c9de5c14f18e077df8 (diff)
Kernel && Developer:
Developer: - Rework System API to use C instead of C++ - Add new calls in Thread.h - Documented code. Kernel: - Rework handover stage, separated the Processor specific code from the cross platform code. Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Public/Developer/System.Containers/Headers/XIFF.h')
-rw-r--r--Public/Developer/System.Containers/Headers/XIFF.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/Public/Developer/System.Containers/Headers/XIFF.h b/Public/Developer/System.Containers/Headers/XIFF.h
new file mode 100644
index 00000000..dd4880cd
--- /dev/null
+++ b/Public/Developer/System.Containers/Headers/XIFF.h
@@ -0,0 +1,62 @@
+/** ===========================================
+ (C) Mahrouss Logic
+ ===========================================*/
+
+#ifndef __XIFF__
+#define __XIFF__
+
+/** ---------------------------------------------------
+
+ * The eXtended Information File Format.
+ * XIFF is used to make setup programs/audio/video files.
+
+------------------------------------------------------- */
+
+#include <System.Core/Headers/Defines.h>
+
+/// @brief four-character code for XIFF.
+#define kFourCCLength_XIFF 4
+#define kXIFFNameLength 255
+
+#define kXIFFContainerVideo "XVFF"
+#define kXIFFContainerAudio "XAFF"
+#define kXIFFContainerInstaller "XNFF"
+#define kXIFFContainerGeneric "XIFF"
+#define kXIFFContainerBinary "XBFF"
+
+/***
+ * @brief Generic XIFF header
+ * Used by XIFF based containers.
+ */
+
+struct PACKED XiffHeader {
+ ByteType f_Magic[kFourCCLength_XIFF]; // XIFF string (includes \0)
+ DWordType f_Size; // overall size of header (XiffHeader) in bytes
+ DWordType f_FormatType; // format type. generic
+ ByteType f_SpecificMag[kFourCCLength_XIFF]; // The sub header magic
+ DWordType f_SpecificSize; // length of the format data
+ DWordType f_SpecificFormatType; // format type. generic
+};
+
+typedef struct XiffHeader XiffHeader;
+
+/// @brief XIFF metadata header, either located in forks or in file directly.
+/// @author Amlal EL Mahrouss
+struct PACKED XiffMetadataHeader {
+ ByteType f_Name[kXIFFNameLength];
+ DWordType f_Flags;
+ DWordType f_Type;
+ QWordType f_Offset;
+ SizeType f_Size;
+};
+
+/// Pascal string
+#define kXIFFStringMetadata4CC "strp"
+
+/// TrueType font
+#define kXIFFFontMetadata4CC "font"
+
+/// UI resource
+#define kXIFFResourceMetadata4CC "resx"
+
+#endif // ifndef __XIFF__