#ifndef _amf0_h_ #define _amf0_h_ #include #include #ifdef __cplusplus extern "C" { #endif enum AMFDataType { AMF_NUMBER = 0x00, AMF_BOOLEAN, AMF_STRING, AMF_OBJECT, AMF_MOVIECLIP, AMF_NULL, AMF_UNDEFINED, AMF_REFERENCE, AMF_ECMA_ARRAY, AMF_OBJECT_END, AMF_STRICT_ARRAY, AMF_DATE, AMF_LONG_STRING, AMF_UNSUPPORTED, AMF_RECORDSET, AMF_XML_DOCUMENT, AMF_TYPED_OBJECT, AMF_AVMPLUS_OBJECT, }; uint8_t* AMFWriteNull(uint8_t* ptr, const uint8_t* end); uint8_t* AMFWriteUndefined(uint8_t* ptr, const uint8_t* end); uint8_t* AMFWriteObject(uint8_t* ptr, const uint8_t* end); uint8_t* AMFWriteObjectEnd(uint8_t* ptr, const uint8_t* end); uint8_t* AMFWriteTypedObject(uint8_t* ptr, const uint8_t* end); uint8_t* AMFWriteECMAArarry(uint8_t* ptr, const uint8_t* end); uint8_t* AMFWriteBoolean(uint8_t* ptr, const uint8_t* end, uint8_t value); uint8_t* AMFWriteDouble(uint8_t* ptr, const uint8_t* end, double value); uint8_t* AMFWriteString(uint8_t* ptr, const uint8_t* end, const char* string, size_t length); uint8_t* AMFWriteDate(uint8_t* ptr, const uint8_t* end, double milliseconds, int16_t timezone); uint8_t* AMFWriteNamedString(uint8_t* ptr, const uint8_t* end, const char* name, size_t length, const char* value, size_t length2); uint8_t* AMFWriteNamedDouble(uint8_t* ptr, const uint8_t* end, const char* name, size_t length, double value); uint8_t* AMFWriteNamedBoolean(uint8_t* ptr, const uint8_t* end, const char* name, size_t length, uint8_t value); const uint8_t* AMFReadNull(const uint8_t* ptr, const uint8_t* end); const uint8_t* AMFReadUndefined(const uint8_t* ptr, const uint8_t* end); const uint8_t* AMFReadBoolean(const uint8_t* ptr, const uint8_t* end, uint8_t* value); const uint8_t* AMFReadDouble(const uint8_t* ptr, const uint8_t* end, double* value); const uint8_t* AMFReadString(const uint8_t* ptr, const uint8_t* end, int isLongString, char* string, size_t length); const uint8_t* AMFReadDate(const uint8_t* ptr, const uint8_t* end, double *milliseconds, int16_t *timezone); struct amf_object_item_t { enum AMFDataType type; const char* name; void* value; size_t size; }; const uint8_t* amf_read_items(const uint8_t* data, const uint8_t* end, struct amf_object_item_t* items, size_t count); #ifdef __cplusplus } #endif #endif /* !_amf0_h_ */