/* BlinkenLib
Copyright 2004-2014 Stefan Schuermans <stefan@schuermans.info>
Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
a blinkenarea.org project */
#include <string.h>
#ifdef WIN32
#include <winsock2.h>
#include <windows.h>
typedef WORD uint16_t;
typedef DWORD uint32_t;
#else
#include <stdint.h>
#include <netinet/in.h>
#endif
#include <BlinkenLib/BlinkenProto.h>
#include "BlinkenProtoIntern.h"
int BlinkenProtoMakePacket(etBlinkenProto proto, etBlinkenPacket packet,
char *pData, int maxLength)
// returns length or -1 on error
{
uint32_t magic;
char *body;
int len;
magic = 0;
len = -1;
// info packet processing: body identical for all protocols
switch (packet) {
case BlinkenPacketStreamEnd:
body = "END\0\0\0\0\0";
len = 8;
break;
case BlinkenPacketNone:
case BlinkenPacketFrame:
case BlinkenPacketRequest:
case BlinkenPacketEndRequest:
// keep compiler happy
break;
}
switch (proto) {
case BlinkenProtoNone:
break;
case BlinkenProtoBlp:
switch (packet) {
case BlinkenPacketFrame: