#include "box_hdlr.h" Box_hdlr::Box_hdlr( ) { Container = new Box( 0x68646C72 ); CurrentHandlerType = 0; SetReserved(); } Box_hdlr::~Box_hdlr() { delete Container; } Box * Box_hdlr::GetBox() { return Container; } void Box_hdlr::SetReserved( ) { Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),20); Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),16); Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),12); Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),4); Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0)); } void Box_hdlr::SetHandlerType( uint32_t HandlerType ) { if( HandlerType != 0 ) { CurrentHandlerType = HandlerType; } Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(CurrentHandlerType),8); } void Box_hdlr::SetName ( std::string Name ) { char * tmp = new char[Name.size()+1]; strcpy(tmp,Name.c_str()); Container->ResetPayload(); SetReserved(); SetHandlerType(0); Container->SetPayload((uint32_t)strlen(tmp)+1,(uint8_t*)tmp,24); } void Box_hdlr::SetDefaults( ) { SetName( ); SetHandlerType( ); }