Update of /cvsroot/playerstage/code/player/client_libs/libplayerc
In directory
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1460/client_libs/libplayerc
Modified Files:
playerc.h dev_map.c dev_vectormap.c .cvsignore
Log Message:
Added entries to .cvsignore for eclipse CVS setup
Modified playerxdrgen to generate clone and free methods
Renamed dpcpy methods to copy and made argument order match memcpy
simplified vectormap interface a little
fixed misc warnings
cleanup tests
Index: .cvsignore
===================================================================
RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc/.cvsignore,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** .cvsignore 21 Aug 2007 23:16:23 -0000 1.6
--- .cvsignore 17 Sep 2007 02:18:51 -0000 1.7
***************
*** 5,6 ****
--- 5,12 ----
libplayerc.pc.in
playercconfig.h
+ .deps
+ .libs
+ *.lo
+ *.a
+ *.la
+ stamp-h4
Index: dev_map.c
===================================================================
RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc/dev_map.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** dev_map.c 13 Oct 2005 18:54:54 -0000 1.9
--- dev_map.c 17 Sep 2007 02:18:51 -0000 1.10
***************
*** 183,187 ****
unzipped_data_len = PLAYER_MAP_MAX_TILE_SIZE;
if(uncompress((Bytef*)unzipped_data, &unzipped_data_len,
! data_req->data, data_req->data_count) != Z_OK)
{
PLAYERC_ERR("failed to decompress map data");
--- 183,187 ----
unzipped_data_len = PLAYER_MAP_MAX_TILE_SIZE;
if(uncompress((Bytef*)unzipped_data, &unzipped_data_len,
! (uint8_t*)data_req->data, data_req->data_count) != Z_OK)
{
PLAYERC_ERR("failed to decompress map data");
Index: playerc.h
===================================================================
RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc/playerc.h,v
retrieving revision 1.230
retrieving revision 1.231
diff -C2 -d -r1.230 -r1.231
*** playerc.h 11 Sep 2007 01:05:50 -0000 1.230
--- playerc.h 17 Sep 2007 02:18:51 -0000 1.231
***************
*** 2165,2169 ****
uint32_t layers_count;
/** Layer data. */
! player_vectormap_layer_data_t** layers;
} playerc_vectormap_t;
--- 2165,2172 ----
uint32_t layers_count;
/** Layer data. */
! player_vectormap_layer_data_t** layers_data;
! /** Layer info. */
! player_vectormap_layer_info_t** layers_info;
!
} playerc_vectormap_t;
***************
*** 2183,2190 ****
int playerc_vectormap_get_map_info(playerc_vectormap_t* device);
! /** @brief Get the layer info by index. Must only be used after a successfull
call to playerc_vectormap_get_map_info. */
! int playerc_vectormap_get_layer_info(playerc_vectormap_t *device, unsigned
layer_index);
!
! /** @brief Get the layer data by index. Must only be used after a successfull
call to playerc_vectormap_get_layer_info. */
int playerc_vectormap_get_layer_data(playerc_vectormap_t *device, unsigned
layer_index);
--- 2186,2190 ----
int playerc_vectormap_get_map_info(playerc_vectormap_t* device);
! /** @brief Get the layer data by index. Must only be used after a successfull
call to playerc_vectormap_get_map_info. */
int playerc_vectormap_get_layer_data(playerc_vectormap_t *device, unsigned
layer_index);
Index: dev_vectormap.c
===================================================================
RCS file:
/cvsroot/playerstage/code/player/client_libs/libplayerc/dev_vectormap.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** dev_vectormap.c 20 Aug 2007 19:42:47 -0000 1.1
--- dev_vectormap.c 17 Sep 2007 02:18:51 -0000 1.2
***************
*** 55,58 ****
--- 55,59 ----
#include <math.h>
#include <stdlib.h>
+ #include <stdarg.h>
#include <string.h>
#include <sys/types.h>
***************
*** 62,65 ****
--- 63,77 ----
#include <libplayerxdr/playerxdr.h>
+ /** Dummy function passed as a function pointer GEOS when it is initialised.
GEOS uses this for logging. */
+ inline void geosprint(const char* format, ...)
+ {
+ va_list ap;
+ va_start(ap,format);
+ fprintf(stderr,"GEOSError: ");
+ vfprintf(stderr,format, ap);
+ fflush(stderr);
+ va_end(ap);
+ };
+
// Create a new vectormap proxy
playerc_vectormap_t *playerc_vectormap_create(playerc_client_t *client, int
index)
***************
*** 75,79 ****
}
-
// Destroy a vectormap proxy
void playerc_vectormap_destroy(playerc_vectormap_t *device)
--- 87,90 ----
***************
*** 88,92 ****
{
#ifdef HAVE_GEOS
! initGEOS(printf,printf);
#endif
return playerc_device_subscribe(&device->info, access);
--- 99,103 ----
{
#ifdef HAVE_GEOS
! initGEOS(geosprint,geosprint);
#endif
return playerc_device_subscribe(&device->info, access);
***************
*** 127,133 ****
device->layers_count = info_req.layers_count;
! // allocate mem for array of layers and memset to 0
! device->layers = calloc(device->layers_count,
sizeof(player_vectormap_layer_data_t*));
! if (!device->layers)
{
PLAYERC_ERR("calloc failed. failed to get vectormap info");
--- 138,144 ----
device->layers_count = info_req.layers_count;
! device->layers_data = calloc(device->layers_count,
sizeof(player_vectormap_layer_data_t*));
! device->layers_info = calloc(device->layers_count,
sizeof(player_vectormap_layer_info_t*));
! if (!device->layers_data || !device->layers_info)
{
PLAYERC_ERR("calloc failed. failed to get vectormap info");
***************
*** 137,165 ****
for (ii=0; ii<device->layers_count; ++ii)
{
! device->layers[ii] = malloc(sizeof(player_vectormap_layer_data_t));
! device->layers[ii]->info = info_req.layers[ii].info;
! }
!
! return 0;
! }
!
! // get layer info
! int playerc_vectormap_get_layer_info(playerc_vectormap_t *device, unsigned
layer_index)
! {
! player_vectormap_layer_info_t info_req = device->layers[layer_index]->info;
!
! if (playerc_client_request(
! device->info.client,
! &device->info,
! PLAYER_VECTORMAP_REQ_GET_LAYER_INFO,
! &info_req,
! &info_req,
! sizeof(info_req)) < 0)
! {
! PLAYERC_ERR("failed to get layer info");
! return -1;
! }
!
! device->layers[layer_index]->info = info_req;
return 0;
}
--- 148,153 ----
for (ii=0; ii<device->layers_count; ++ii)
{
! device->layers_info[ii] =
player_vectormap_layer_info_t_clone(&info_req.layers[ii]);
! }
return 0;
}
***************
*** 170,176 ****
player_vectormap_layer_data_t data_req;
memset(&data_req, 0, sizeof(data_req));
- player_vectormap_layer_info_t layer_info =
device->layers[layer_index]->info;
! data_req.info = layer_info;
if (playerc_client_request(
--- 158,164 ----
player_vectormap_layer_data_t data_req;
memset(&data_req, 0, sizeof(data_req));
! data_req.name = strdup(device->layers_info[layer_index]->name);
! data_req.name_count = device->layers_info[layer_index]->name_count;
if (playerc_client_request(
***************
*** 183,192 ****
{
PLAYERC_ERR("failed to get layer data");
return -1;
}
!
! memset(device->layers[layer_index], 0,
sizeof(player_vectormap_layer_data_t));
! data_req.info = layer_info;
! memcpy(device->layers[layer_index], &data_req, sizeof(data_req));
return 0;
--- 171,179 ----
{
PLAYERC_ERR("failed to get layer data");
+ free(data_req.name);
return -1;
}
! player_vectormap_layer_data_t_free(device->layers_data[layer_index]);
! device->layers_data[layer_index] =
player_vectormap_layer_data_t_clone(&data_req);
return 0;
***************
*** 195,207 ****
GEOSGeom playerc_vectormap_get_feature_data(playerc_vectormap_t *device,
unsigned layer_index, unsigned feature_index)
{
- int i;
#ifdef HAVE_GEOS
! /*printf("%p %d\n",
device->layers[layer_index]->features[feature_index].wkb,
device->layers[layer_index]->features[feature_index].wkb_count);
for(i = 0; i <
device->layers[layer_index]->features[feature_index].wkb_count; i++)
printf("%02x",
device->layers[layer_index]->features[feature_index].wkb[i]);
printf("\n");*/
return GEOSGeomFromWKB_buf(
! device->layers[layer_index]->features[feature_index].wkb,
! device->layers[layer_index]->features[feature_index].wkb_count
);
#else
--- 182,194 ----
GEOSGeom playerc_vectormap_get_feature_data(playerc_vectormap_t *device,
unsigned layer_index, unsigned feature_index)
{
#ifdef HAVE_GEOS
! /*int i;
! printf("%p %d\n", device->layers[layer_index]->features[feature_index].wkb,
device->layers[layer_index]->features[feature_index].wkb_count);
for(i = 0; i <
device->layers[layer_index]->features[feature_index].wkb_count; i++)
printf("%02x",
device->layers[layer_index]->features[feature_index].wkb[i]);
printf("\n");*/
return GEOSGeomFromWKB_buf(
! device->layers_data[layer_index]->features[feature_index].wkb,
! device->layers_data[layer_index]->features[feature_index].wkb_count
);
#else
***************
*** 213,223 ****
{
unsigned ii;
! if (device->layers)
{
for (ii=0; ii<device->layers_count; ++ii)
{
! player_vectormap_layer_data_t_cleanup(device->layers[ii]);
}
! free(device->layers);
}
device->srid = -1;
--- 200,214 ----
{
unsigned ii;
! if (device->layers_data)
{
for (ii=0; ii<device->layers_count; ++ii)
{
! player_vectormap_layer_data_t_free(device->layers_data[ii]);
! player_vectormap_layer_info_t_free(device->layers_info[ii]);
}
! free(device->layers_data);
! device->layers_data = NULL;
! free(device->layers_info);
! device->layers_info = NULL;
}
device->srid = -1;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit