From 7fe60435bce6595a9c58a9bfd8244d74b5320e96 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 15 Jan 2013 08:46:13 +0100 Subject: Import DirectFB141_2k11R3_beta5 --- Source/DirectFB/lib/voodoo/play.h | 146 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100755 Source/DirectFB/lib/voodoo/play.h (limited to 'Source/DirectFB/lib/voodoo/play.h') diff --git a/Source/DirectFB/lib/voodoo/play.h b/Source/DirectFB/lib/voodoo/play.h new file mode 100755 index 0000000..1dc50df --- /dev/null +++ b/Source/DirectFB/lib/voodoo/play.h @@ -0,0 +1,146 @@ +/* + (c) Copyright 2001-2007 The DirectFB Organization (directfb.org) + (c) Copyright 2000-2004 Convergence (integrated media) GmbH + + All rights reserved. + + Written by Denis Oliver Kropp , + Andreas Hundt , + Sven Neumann , + Ville Syrjälä and + Claudio Ciccani . + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#ifndef __VOODOO__PLAY_H__ +#define __VOODOO__PLAY_H__ + +#include + + +#define VOODOO_PLAY_VERSION_FIXED_SIZE 32 + +#define VOODOO_PLAYER_NAME_LENGTH 96 + +#define VOODOO_PLAYER_VENDOR_LENGTH 96 +#define VOODOO_PLAYER_MODEL_LENGTH 96 + + +#define VOODOO_LINK_PORT 8676 // 'V' 'L' + + +typedef enum { + VPVF_NONE = 0x00000000, + + VPVF_LITTLE_ENDIAN = 0x00000001, /* Always set, no big endian support for now */ + VPVF_32BIT_SERIALS = 0x00000002, /* Using 32bit message serials, always set */ + + VPVF_ALL = 0x00000007 +} VoodooPlayVersionFlags; + +typedef struct { + u8 v[4]; /* flags, major, minor, micro */ +} VoodooPlayVersion; + + +typedef enum { + VPIF_NONE = 0x00000000, + + VPIF_LEVEL2 = 0x00000001, + VPIF_LINK = 0x00000002, /* Supports new VoodooLink protocol */ + + VPIF_ALL = 0x00000003 +} VoodooPlayInfoFlags; + +typedef struct { + VoodooPlayInfoFlags flags; + + u8 uuid[16]; + + char name[VOODOO_PLAYER_NAME_LENGTH]; /* "My Philips TV" */ + + char vendor[VOODOO_PLAYER_VENDOR_LENGTH]; /* "Philips Consumer Lifestyle" */ + char model[VOODOO_PLAYER_MODEL_LENGTH]; /* "32PFL9604H/10" */ +} VoodooPlayInfo; + + +typedef enum { + VPMT_INVALID, + + VPMT_DISCOVER, + VPMT_SENDINFO, +} VoodooPlayMessageType; + + + +/* + + One play message on a new connection from both sides. + Both sides having received the other side's info know if the connection is to be closed or can succeed. + + Game about endianness conversion: both sides randomly send 0 or 1 as part of the info, + if both are equal, then server converts, otherwise client +*/ + +typedef struct { + /* Version information first in structure, fixed size (union!) */ + union { + char __fixed[VOODOO_PLAY_VERSION_FIXED_SIZE]; + + + VoodooPlayVersion version; /* (1.0, ...) */ + }; + + VoodooPlayMessageType type; + + union { + VoodooPlayInfo info; /* DISCOVER, SENDINFO */ + }; +} VoodooPlayMessage; + + +typedef DirectEnumerationResult (*VoodooPlayerCallback)( void *ctx, + const VoodooPlayInfo *info, + const VoodooPlayVersion *version, + const char *address, + unsigned int ms_since_last_seen ); + + +DirectResult voodoo_player_create ( const VoodooPlayInfo *info, + VoodooPlayer **ret_player ); + +DirectResult voodoo_player_destroy ( VoodooPlayer *player ); + +DirectResult voodoo_player_broadcast ( VoodooPlayer *player ); + +DirectResult voodoo_player_lookup ( VoodooPlayer *player, + const u8 uuid[16], + VoodooPlayInfo *ret_info, + char *ret_addr, + int max_addr ); + +DirectResult voodoo_player_lookup_by_address( VoodooPlayer *player, + const char *addr, + VoodooPlayInfo *ret_info ); + +DirectResult voodoo_player_enumerate ( VoodooPlayer *player, + VoodooPlayerCallback callback, + void *ctx ); + + +#endif + -- cgit