示例#1
0
void CECTag::InitInt(uint64 data)
{
	if (data <= 0xFF) {
		m_dataType = EC_TAGTYPE_UINT8;
		m_dataLen = 1;
	} else if (data <= 0xFFFF) {
		m_dataType = EC_TAGTYPE_UINT16;
		m_dataLen = 2;
	} else if (data <= 0xFFFFFFFF) {
		m_dataType = EC_TAGTYPE_UINT32;
		m_dataLen = 4;
	} else {
		m_dataType = EC_TAGTYPE_UINT64;
		m_dataLen = 8;
	}

	NewData();

	switch (m_dataType) {
		case EC_TAGTYPE_UINT8:
			PokeUInt8( m_tagData, (uint8) data );
			break;
		case EC_TAGTYPE_UINT16:
			RawPokeUInt16( m_tagData, ENDIAN_HTONS((uint16) data ));
			break;
		case EC_TAGTYPE_UINT32:
			RawPokeUInt32( m_tagData, ENDIAN_HTONL((uint32) data ));
			break;
		case EC_TAGTYPE_UINT64:
			RawPokeUInt64( m_tagData, ENDIAN_HTONLL(data) );
			break;
	}
}
示例#2
0
文件: ECTag.cpp 项目: geekt/amule
void CECTag::InitInt(uint64 data)
{
	if (data <= 0xFF) {
		m_dataType = EC_TAGTYPE_UINT8;
		m_dataLen = 1;
	} else if (data <= 0xFFFF) {
		m_dataType = EC_TAGTYPE_UINT16;
		m_dataLen = 2;
	} else if (data <= 0xFFFFFFFF) {
		m_dataType = EC_TAGTYPE_UINT32;
		m_dataLen = 4;
	} else {
		m_dataType = EC_TAGTYPE_UINT64;
		m_dataLen = 8;
	}

	NewData();

	switch (m_dataType) {
		case EC_TAGTYPE_UINT8:
			PokeUInt8( m_tagData, (uint8) data );
			break;
		case EC_TAGTYPE_UINT16:
			PokeUInt16( m_tagData, wxUINT16_SWAP_ALWAYS((uint16) data ));
			break;
		case EC_TAGTYPE_UINT32:
			PokeUInt32( m_tagData, wxUINT32_SWAP_ALWAYS((uint32) data ));
			break;
		case EC_TAGTYPE_UINT64:
			PokeUInt64( m_tagData, wxUINT64_SWAP_ALWAYS(data) );
			break;
	}
}