Esempio n. 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:
			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;
	}
}
wxUint32 component_buffer::component_iterator::operator *() const
{
    if (m_inc == sizeof(wxUint8)) {
        return (wxUint32)(*(wxUint8 *)m_ptr);
    } else if (m_inc == sizeof(wxUint16)) {
        if (m_endian == endian_little) {
            return (wxUint32)(*(wxUint16*)m_ptr);
        } else {
            return (wxUint32)(wxUINT16_SWAP_ALWAYS(*(wxUint16*)m_ptr));
        }
    }

    return 0;
}