Update of /cvsroot/playerstage/code/player/examples/plugins/exampleinterface
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25787/examples/plugins/exampleinterface

Modified Files:
      Tag: b_thjc_dynamic_arrays
        .cvsignore eginterf_client.c eginterf.c Makefile.am 
        eginterf_xdr.h eginterf_xdr.c 
Log Message:
Merged some changes from head a while back

Work on updating drivers, A-J done,  laser is next

Index: .cvsignore
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/examples/plugins/exampleinterface/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** .cvsignore  9 Jun 2007 04:15:08 -0000       1.1
--- .cvsignore  10 Oct 2007 09:26:06 -0000      1.1.2.1
***************
*** 1,2 ****
--- 1,7 ----
  Makefile
  Makefile.in
+ *.lo
+ *.la
+ .deps
+ .libs
+ example_client

Index: eginterf.c
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/examples/plugins/exampleinterface/eginterf.c,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** eginterf.c  22 May 2007 07:52:53 -0000      1.1
--- eginterf.c  10 Oct 2007 09:26:06 -0000      1.1.2.1
***************
*** 35,43 ****
  {
    {PLAYER_EGINTERF_CODE, PLAYER_MSGTYPE_DATA, EGINTERF_DATA,
!    (player_pack_fn_t)player_eginterf_data_pack, 
(player_dpcpy_fn_t)player_eginterf_data_dpcpy, 
(player_cleanup_fn_t)player_eginterf_data_cleanup},
    {PLAYER_EGINTERF_CODE, PLAYER_MSGTYPE_REQ, EGINTERF_REQ,
!    (player_pack_fn_t)player_eginterf_req_pack, NULL, NULL},
    {PLAYER_EGINTERF_CODE, PLAYER_MSGTYPE_CMD, EGINTERF_CMD,
!    (player_pack_fn_t)player_eginterf_cmd_pack, NULL, NULL},
  
    /* This NULL element signals the end of the list */
--- 35,43 ----
  {
    {PLAYER_EGINTERF_CODE, PLAYER_MSGTYPE_DATA, EGINTERF_DATA,
!    (player_pack_fn_t)player_eginterf_data_pack, 
(player_copy_fn_t)player_eginterf_data_copy, 
(player_cleanup_fn_t)player_eginterf_data_cleanup},
    {PLAYER_EGINTERF_CODE, PLAYER_MSGTYPE_REQ, EGINTERF_REQ,
!    (player_pack_fn_t)player_eginterf_req_pack, 
(player_copy_fn_t)player_eginterf_req_copy, 
(player_cleanup_fn_t)player_eginterf_req_cleanup},
    {PLAYER_EGINTERF_CODE, PLAYER_MSGTYPE_CMD, EGINTERF_CMD,
!    (player_pack_fn_t)player_eginterf_cmd_pack, 
(player_copy_fn_t)player_eginterf_cmd_copy, 
(player_cleanup_fn_t)player_eginterf_cmd_cleanup},
  
    /* This NULL element signals the end of the list */

Index: Makefile.am
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/examples/plugins/exampleinterface/Makefile.am,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** Makefile.am 5 Sep 2007 21:31:42 -0000       1.4
--- Makefile.am 10 Oct 2007 09:26:06 -0000      1.4.2.1
***************
*** 18,21 ****
--- 18,27 ----
  EXTRA_DIST = Makefile.example example.cfg eginterf_client.h eginterf.h 
eginterf_xdr.h
  
+ eginterf_xdr.c: eginterf.h ${top_builddir}/libplayerxdr/playerxdrgen.py
+       python ${top_builddir}/libplayerxdr/playerxdrgen.py eginterf.h 
eginterf_xdr.c eginterf_xdr.h
+ 
+ eginterf_xdr.h: eginterf.h ${top_builddir}/libplayerxdr/playerxdrgen.py
+       python ${top_builddir}/libplayerxdr/playerxdrgen.py eginterf.h 
eginterf_xdr.c eginterf_xdr.h
+ 
  example_LTLIBRARIES = libeginterfdriver.la libeginterf.la
  libeginterfdriver_la_SOURCES = eginterf_driver.cc

Index: eginterf_client.c
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/examples/plugins/exampleinterface/eginterf_client.c,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** eginterf_client.c   22 May 2007 07:52:54 -0000      1.1
--- eginterf_client.c   10 Oct 2007 09:26:06 -0000      1.1.2.1
***************
*** 18,21 ****
--- 18,22 ----
  
  #include "eginterf.h"
+ #include "eginterf_xdr.h"
  #include "eginterf_client.h"
  
***************
*** 83,93 ****
        int result = 0;
        player_eginterf_req req;
!       player_eginterf_req rep;
        memset (&rep, 0, sizeof (player_eginterf_req));
        req.value = blah;
!       if ((result = playerc_client_request (device->info.client, 
&device->info, EGINTERF_REQ, &req, &rep, sizeof (player_eginterf_req))) < 0)
                return result;
  
!       device->value = rep.value;
        return 0;
  }
--- 84,95 ----
        int result = 0;
        player_eginterf_req req;
!       player_eginterf_req *rep;
        memset (&rep, 0, sizeof (player_eginterf_req));
        req.value = blah;
!       if ((result = playerc_client_request (device->info.client, 
&device->info, EGINTERF_REQ, &req, (void**)&rep)) < 0)
                return result;
  
!       device->value = rep->value;
!       player_eginterf_req_free(rep);
        return 0;
  }

Index: eginterf_xdr.h
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/examples/plugins/exampleinterface/eginterf_xdr.h,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** eginterf_xdr.h      21 Aug 2007 23:16:24 -0000      1.2
--- eginterf_xdr.h      10 Oct 2007 09:26:06 -0000      1.2.2.1
***************
*** 1,17 ****
! /*
!  * The functions that tell XDR how to pack, unpack, deep copy and clean up
!  * message structures are declared here. This file was generated automatically
!  * by playerxdrgen.py, then cleaned up.
!  */
  
- #include <stdlib.h>
  #include "eginterf.h"
  
! int xdr_player_eginterf_data(XDR* xdrs, player_eginterf_data* msg);
! int player_eginterf_data_pack(void* buf, size_t buflen, player_eginterf_data* 
msg, int op);
! unsigned int player_eginterf_data_dpcpy(const player_eginterf_data* src, 
player_eginterf_data* dest);
! void player_eginterf_data_cleanup(player_eginterf_data* msg);
! int xdr_player_eginterf_req(XDR* xdrs, player_eginterf_req* msg);
! int player_eginterf_req_pack(void* buf, size_t buflen, player_eginterf_req* 
msg, int op);
! int xdr_player_eginterf_cmd(XDR* xdrs, player_eginterf_cmd* msg);
! int player_eginterf_cmd_pack(void* buf, size_t buflen, player_eginterf_cmd* 
msg, int op);
--- 1,37 ----
! #ifndef _EGINTERF_
! 
! #include <libplayerxdr/playerxdr.h>
  
  #include "eginterf.h"
  
! #ifdef __cplusplus
! extern "C" {
! #endif
! 
! int xdr_player_eginterf_data (XDR* xdrs, player_eginterf_data * msg);
! int player_eginterf_data_pack(void* buf, size_t buflen, player_eginterf_data 
* msg, int op);
! unsigned int player_eginterf_data_copy(player_eginterf_data *dest, const 
player_eginterf_data *src);
! void player_eginterf_data_cleanup(const player_eginterf_data *msg);
! player_eginterf_data * player_eginterf_data_clone(const player_eginterf_data 
*msg);
! void player_eginterf_data_free(player_eginterf_data *msg);
! unsigned int player_eginterf_data_sizeof(player_eginterf_data *msg);
! int xdr_player_eginterf_req (XDR* xdrs, player_eginterf_req * msg);
! int player_eginterf_req_pack(void* buf, size_t buflen, player_eginterf_req * 
msg, int op);
! unsigned int player_eginterf_req_copy(player_eginterf_req *dest, const 
player_eginterf_req *src);
! void player_eginterf_req_cleanup(const player_eginterf_req *msg);
! player_eginterf_req * player_eginterf_req_clone(const player_eginterf_req 
*msg);
! void player_eginterf_req_free(player_eginterf_req *msg);
! unsigned int player_eginterf_req_sizeof(player_eginterf_req *msg);
! int xdr_player_eginterf_cmd (XDR* xdrs, player_eginterf_cmd * msg);
! int player_eginterf_cmd_pack(void* buf, size_t buflen, player_eginterf_cmd * 
msg, int op);
! unsigned int player_eginterf_cmd_copy(player_eginterf_cmd *dest, const 
player_eginterf_cmd *src);
! void player_eginterf_cmd_cleanup(const player_eginterf_cmd *msg);
! player_eginterf_cmd * player_eginterf_cmd_clone(const player_eginterf_cmd 
*msg);
! void player_eginterf_cmd_free(player_eginterf_cmd *msg);
! unsigned int player_eginterf_cmd_sizeof(player_eginterf_cmd *msg);
! 
! #ifdef __cplusplus
! }
! #endif
! 
! #endif

Index: eginterf_xdr.c
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/examples/plugins/exampleinterface/eginterf_xdr.c,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** eginterf_xdr.c      22 May 2007 07:52:54 -0000      1.1
--- eginterf_xdr.c      10 Oct 2007 09:26:06 -0000      1.1.2.1
***************
*** 1,17 ****
! /*
!  * The functions that tell XDR how to pack, unpack, deep copy and clean up
!  * message structures are defined here. This file was generated automatically
!  * by playerxdrgen.py.
!  */
  
! #include <libplayerxdr/playerxdr.h>
  #include <string.h>
  
- #include "eginterf_xdr.h"
  
! int
! xdr_player_eginterf_data(XDR* xdrs, player_eginterf_data* msg)
! {
!   if(xdr_u_int(xdrs,&msg->stuff_count) != 1)
      return(0);
    if(xdrs->x_op == XDR_DECODE)
--- 1,12 ----
! #include <rpc/types.h>
! #include <rpc/xdr.h>
  
! #include "eginterf_xdr.h"
  #include <string.h>
+ #include <stdlib.h>
  
  
! int xdr_player_eginterf_data (XDR* xdrs, player_eginterf_data * msg)
! {   if(xdr_u_int(xdrs,&msg->stuff_count) != 1)
      return(0);
    if(xdrs->x_op == XDR_DECODE)
***************
*** 27,51 ****
    return(1);
  }
! 
! int
! player_eginterf_data_pack(void* buf, size_t buflen, player_eginterf_data* 
msg, int op)
  {
    XDR xdrs;
    int len;
    if(!buflen)
!     return(0);
    xdrmem_create(&xdrs, buf, buflen, op);
!   if(xdr_u_int(&xdrs,&msg->stuff_count) != 1)
      return(-1);
-   if(op == PLAYERXDR_DECODE)
-   {
-     if((msg->stuff = malloc(msg->stuff_count*sizeof(double))) == NULL)
-       return(-1);
-   }
-   {
-     double* stuff_p = msg->stuff;
-     if(xdr_array(&xdrs, (char**)&stuff_p, &msg->stuff_count, 
msg->stuff_count, sizeof(double), (xdrproc_t)xdr_double) != 1)
-       return(-1);
-   }
    if(op == PLAYERXDR_ENCODE)
      len = xdr_getpos(&xdrs);
--- 22,35 ----
    return(1);
  }
! int 
! player_eginterf_data_pack(void* buf, size_t buflen, player_eginterf_data * 
msg, int op)
  {
    XDR xdrs;
    int len;
    if(!buflen)
!     return 0;
    xdrmem_create(&xdrs, buf, buflen, op);
!   if(xdr_player_eginterf_data(&xdrs,msg) != 1)
      return(-1);
    if(op == PLAYERXDR_ENCODE)
      len = xdr_getpos(&xdrs);
***************
*** 54,104 ****
    xdr_destroy(&xdrs);
    return(len);
! }
! 
! unsigned int
! player_eginterf_data_dpcpy(const player_eginterf_data* src, 
player_eginterf_data* dest)
! {
    if(src == NULL)
      return(0);
!   unsigned int size = 0;
    if(src->stuff != NULL && src->stuff_count > 0)
    {
!     if((dest->stuff = malloc(src->stuff_count*sizeof(double))) == NULL)
        return(0);
-     memcpy(dest->stuff, src->stuff, src->stuff_count*sizeof(double));
-     size += src->stuff_count*sizeof(double);
    }
    else
      dest->stuff = NULL;
    return(size);
  }
! 
! void
! player_eginterf_data_cleanup(player_eginterf_data* msg)
! {
    if(msg == NULL)
      return;
!   if(msg->stuff == NULL)
!     return;
!   free(msg->stuff);
  }
! 
! int
! xdr_player_eginterf_req(XDR* xdrs, player_eginterf_req* msg)
  {
!   if(xdr_int(xdrs,&msg->value) != 1)
      return(0);
!   return(1);
  }
  
! int
! player_eginterf_req_pack(void* buf, size_t buflen, player_eginterf_req* msg, 
int op)
  {
    XDR xdrs;
    int len;
    if(!buflen)
!     return(0);
    xdrmem_create(&xdrs, buf, buflen, op);
!   if(xdr_int(&xdrs,&msg->value) != 1)
      return(-1);
    if(op == PLAYERXDR_ENCODE)
--- 38,105 ----
    xdr_destroy(&xdrs);
    return(len);
! } 
! unsigned int player_eginterf_data_copy(player_eginterf_data *dest, const 
player_eginterf_data *src)
! {      
!   
!   unsigned int size = 0;
    if(src == NULL)
      return(0);
!   size += sizeof(uint32_t)*1;
!   memcpy(&dest->stuff_count,&src->stuff_count,sizeof(uint32_t)*1); 
    if(src->stuff != NULL && src->stuff_count > 0)
    {
!     if((dest->stuff = calloc(src->stuff_count,sizeof(double))) == NULL)
        return(0);
    }
    else
      dest->stuff = NULL;
+   size += sizeof(double)*src->stuff_count;
+   memcpy(dest->stuff,src->stuff,sizeof(double)*src->stuff_count); 
    return(size);
  }
! void player_eginterf_data_cleanup(const player_eginterf_data *msg)
! {      
!   
    if(msg == NULL)
      return;
!   free(msg->stuff); 
  }
! player_eginterf_data * player_eginterf_data_clone(const player_eginterf_data 
*msg)
! {      
!   player_eginterf_data * clone = malloc(sizeof(player_eginterf_data));
!   if (clone)
!     player_eginterf_data_copy(clone,msg);
!   return clone;
! }
! void player_eginterf_data_free(player_eginterf_data *msg)
! {      
!   player_eginterf_data_cleanup(msg);
!   free(msg);
! }
! unsigned int player_eginterf_data_sizeof(player_eginterf_data *msg)
  {
!   
!   unsigned int size = 0;
!   if(msg == NULL)
      return(0);
!   size += sizeof(uint32_t)*1; 
!   size += sizeof(double)*msg->stuff_count; 
!   return(size);
  }
  
! int xdr_player_eginterf_req (XDR* xdrs, player_eginterf_req * msg)
! {   if(xdr_int(xdrs,&msg->value) != 1)
!     return(0);
!   return(1);
! }
! int 
! player_eginterf_req_pack(void* buf, size_t buflen, player_eginterf_req * msg, 
int op)
  {
    XDR xdrs;
    int len;
    if(!buflen)
!     return 0;
    xdrmem_create(&xdrs, buf, buflen, op);
!   if(xdr_player_eginterf_req(&xdrs,msg) != 1)
      return(-1);
    if(op == PLAYERXDR_ENCODE)
***************
*** 108,130 ****
    xdr_destroy(&xdrs);
    return(len);
  }
! 
! int
! xdr_player_eginterf_cmd(XDR* xdrs, player_eginterf_cmd* msg)
  {
!   if(xdr_char(xdrs,&msg->doStuff) != 1)
      return(0);
    return(1);
  }
! 
! int
! player_eginterf_cmd_pack(void* buf, size_t buflen, player_eginterf_cmd* msg, 
int op)
  {
    XDR xdrs;
    int len;
    if(!buflen)
!     return(0);
    xdrmem_create(&xdrs, buf, buflen, op);
!   if(xdr_char(&xdrs,&msg->doStuff) != 1)
      return(-1);
    if(op == PLAYERXDR_ENCODE)
--- 109,154 ----
    xdr_destroy(&xdrs);
    return(len);
+ } 
+ unsigned int player_eginterf_req_copy(player_eginterf_req *dest, const 
player_eginterf_req *src)
+ {
+   if (dest == NULL || src == NULL)
+     return 0;
+   memcpy(dest,src,sizeof(player_eginterf_req));
+   return sizeof(player_eginterf_req);
+ } 
+ void player_eginterf_req_cleanup(const player_eginterf_req *msg)
+ {
+ } 
+ player_eginterf_req * player_eginterf_req_clone(const player_eginterf_req 
*msg)
+ {      
+   player_eginterf_req * clone = malloc(sizeof(player_eginterf_req));
+   if (clone)
+     player_eginterf_req_copy(clone,msg);
+   return clone;
  }
! void player_eginterf_req_free(player_eginterf_req *msg)
! {      
!   player_eginterf_req_cleanup(msg);
!   free(msg);
! }
! unsigned int player_eginterf_req_sizeof(player_eginterf_req *msg)
  {
!   return sizeof(player_eginterf_req);
! } 
! 
! int xdr_player_eginterf_cmd (XDR* xdrs, player_eginterf_cmd * msg)
! {   if(xdr_char(xdrs,&msg->doStuff) != 1)
      return(0);
    return(1);
  }
! int 
! player_eginterf_cmd_pack(void* buf, size_t buflen, player_eginterf_cmd * msg, 
int op)
  {
    XDR xdrs;
    int len;
    if(!buflen)
!     return 0;
    xdrmem_create(&xdrs, buf, buflen, op);
!   if(xdr_player_eginterf_cmd(&xdrs,msg) != 1)
      return(-1);
    if(op == PLAYERXDR_ENCODE)
***************
*** 134,137 ****
    xdr_destroy(&xdrs);
    return(len);
  }
! 
--- 158,186 ----
    xdr_destroy(&xdrs);
    return(len);
+ } 
+ unsigned int player_eginterf_cmd_copy(player_eginterf_cmd *dest, const 
player_eginterf_cmd *src)
+ {
+   if (dest == NULL || src == NULL)
+     return 0;
+   memcpy(dest,src,sizeof(player_eginterf_cmd));
+   return sizeof(player_eginterf_cmd);
+ } 
+ void player_eginterf_cmd_cleanup(const player_eginterf_cmd *msg)
+ {
+ } 
+ player_eginterf_cmd * player_eginterf_cmd_clone(const player_eginterf_cmd 
*msg)
+ {      
+   player_eginterf_cmd * clone = malloc(sizeof(player_eginterf_cmd));
+   if (clone)
+     player_eginterf_cmd_copy(clone,msg);
+   return clone;
  }
! void player_eginterf_cmd_free(player_eginterf_cmd *msg)
! {      
!   player_eginterf_cmd_cleanup(msg);
!   free(msg);
! }
! unsigned int player_eginterf_cmd_sizeof(player_eginterf_cmd *msg)
! {
!   return sizeof(player_eginterf_cmd);
! } 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to