#include "serverframebufferinitmessage.h"
#include <QIODevice>

ServerFramebufferInitMessage::ServerFramebufferInitMessage() : ServerMessageBase()
{
}

bool ServerFramebufferInitMessage::loadMessage( QIODevice *device )
{
    quint16 width = readUint16(device);
    quint16 height = readUint16(device);
    m_size = QSize( width, height );

    m_pixelFormat = PixelFormat::readMessage<PixelFormat>( device );

    quint32 nameLen = readUint32(device);
    QByteArray desktopNameBuffer(nameLen,'\0');
    readBytes(device, desktopNameBuffer.data(),nameLen);
    m_desktopName = desktopNameBuffer;

    return true;
}

QSize ServerFramebufferInitMessage::size() const
{
    return m_size;
}


QString ServerFramebufferInitMessage::desktopName() const
{
    return m_desktopName;
}

PixelFormat ServerFramebufferInitMessage::pixelFormat() const
{
    return m_pixelFormat;
}

QDebug operator <<( QDebug in, ServerFramebufferInitMessage & message )
{
        in << QString("Server framebuffer init message. Desktop name: %1, Size: %2x%3")
                    .arg( message.desktopName() )
                    .arg( message.size().width() )
                    .arg( message.size().height() ) << message.pixelFormat();
        return in;
}

