XMMS2

src/lib/xmmsvisualization/udp.c

Go to the documentation of this file.
00001 #include <stdlib.h>
00002 
00003 #include "xmmsc/xmmsc_visualization.h"
00004 
00005 /* helper functions to send/receive upd packages */
00006 
00007 char*
00008 packet_init_data (xmmsc_vis_udp_data_t *p)
00009 {
00010     char* buffer = malloc (1 + sizeof (uint16_t) + sizeof (xmmsc_vischunk_t));
00011     if (buffer) {
00012         buffer[0] = 'V';
00013         p->__unaligned_type = &buffer[0];
00014         p->__unaligned_grace = (uint16_t*)&buffer[1];
00015         p->__unaligned_data = (xmmsc_vischunk_t*)&buffer[1 + sizeof (uint16_t)];
00016         p->size = 1 + sizeof (uint16_t) + sizeof (xmmsc_vischunk_t);
00017     }
00018     return buffer;
00019 }
00020 
00021 char*
00022 packet_init_timing (xmmsc_vis_udp_timing_t *p)
00023 {
00024     char* buffer = malloc (1 + 5*sizeof (int32_t));
00025     if (buffer) {
00026         buffer[0] = 'T';
00027         p->__unaligned_type = &buffer[0];
00028         p->__unaligned_id = (int32_t*)&buffer[1];
00029         p->__unaligned_clientstamp = (int32_t*)&buffer[1 + sizeof (int32_t)];
00030         p->__unaligned_serverstamp = (int32_t*)&buffer[1 + 3*sizeof (int32_t)];
00031         p->size = 1 + 5*sizeof (int32_t);
00032     }
00033     return buffer;
00034 }