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

Reply via email to