Update of /cvsroot/playerstage/code/player/client_libs/libplayerc
In directory
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2884/client_libs/libplayerc
Modified Files:
dev_blackboard.c playerc.h
Log Message:
changes to blackboard interface and client proxies
Index: playerc.h
===================================================================
RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc/playerc.h,v
retrieving revision 1.246
retrieving revision 1.247
diff -C2 -d -r1.246 -r1.247
*** playerc.h 17 Jan 2008 04:37:23 -0000 1.246
--- playerc.h 21 Jan 2008 02:58:45 -0000 1.247
***************
*** 1120,1123 ****
--- 1120,1132 ----
@{ */
+ #define PLAYERC_BLACKBOARD_DATA_TYPE_NONE 0
+ #define PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE 1
+ #define PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX 2
+
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_NONE 0
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING 1
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT 2
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE 3
+
/** @brief BlackBoard proxy. */
typedef struct
***************
*** 1151,1155 ****
int playerc_blackboard_set_entry(playerc_blackboard_t *device,
player_blackboard_entry_t* entry);
! //player_blackboard_entry_t
playerc_blackboard_subscribe_to_key2(playerc_blackboard_t *device, const char*
key);
/** @} */
--- 1160,1168 ----
int playerc_blackboard_set_entry(playerc_blackboard_t *device,
player_blackboard_entry_t* entry);
! int playerc_blackboard_set_string(playerc_blackboard_t *device, const char*
key, const char* value);
!
! int playerc_blackboard_set_int(playerc_blackboard_t *device, const char* key,
const int value);
!
! int playerc_blackboard_set_double(playerc_blackboard_t *device, const char*
key, const double value);
/** @} */
Index: dev_blackboard.c
===================================================================
RCS file:
/cvsroot/playerstage/code/player/client_libs/libplayerc/dev_blackboard.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** dev_blackboard.c 17 Jan 2008 04:37:23 -0000 1.6
--- dev_blackboard.c 21 Jan 2008 02:58:45 -0000 1.7
***************
*** 52,55 ****
--- 52,211 ----
#include "error.h"
#include <libplayerxdr/playerxdr.h>
+ #include <sys/time.h>
+
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_string(const char*
key, const char *str);
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_int(const char* key,
const int i);
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_double(const char*
key, const double d);
+
+ char *playerc_unpack_blackboard_entry_string(const player_blackboard_entry_t
*entry);
+ int playerc_unpack_blackboard_entry_int(const player_blackboard_entry_t
*entry);
+ double playerc_unpack_blackboard_entry_double(const player_blackboard_entry_t
*entry);
+
+ int playerc_check_blackboard_entry_is_string(const player_blackboard_entry_t
*entry);
+ int playerc_check_blackboard_entry_is_int(const player_blackboard_entry_t
*entry);
+ int playerc_check_blackboard_entry_is_double(const player_blackboard_entry_t
*entry);
+
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_string(const char*
key, const char *str)
+ {
+ struct timeval tv;
+ player_blackboard_entry_t *entry =
malloc(sizeof(player_blackboard_entry_t));
+ assert(entry);
+ memset(entry, 0, sizeof(entry));
+
+ entry->type = PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX;
+ entry->subtype = PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING;
+
+ entry->key_count = strlen(key) + 1;
+ entry->key = malloc(entry->key_count);
+ memcpy(entry->key, key, entry->key_count);
+
+ entry->data_count = strlen(str) + 1;
+ entry->data = malloc(sizeof(int)*entry->data_count);
+ memcpy(entry->data, str, entry->data_count);
+
+ gettimeofday(&tv, NULL);
+ entry->timestamp_sec = tv.tv_sec;
+ entry->timestamp_usec = tv.tv_usec;
+
+ return entry;
+ }
+
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_int(const char* key,
const int i)
+ {
+ struct timeval tv;
+ player_blackboard_entry_t *entry =
malloc(sizeof(player_blackboard_entry_t));
+ assert(entry);
+ memset(entry, 0, sizeof(entry));
+
+ entry->type = PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE;
+ entry->subtype = PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT;
+
+ entry->key_count = strlen(key) + 1;
+ entry->key = malloc(entry->key_count);
+ memcpy(entry->key, key, entry->key_count);
+
+ entry->data_count = sizeof(int);
+ entry->data = malloc(sizeof(int)*entry->data_count);
+ memcpy(entry->data, &i, entry->data_count);
+
+ gettimeofday(&tv, NULL);
+ entry->timestamp_sec = tv.tv_sec;
+ entry->timestamp_usec = tv.tv_usec;
+
+ return entry;
+ }
+
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_double(const char*
key, const double d)
+ {
+ struct timeval tv;
+ player_blackboard_entry_t *entry =
malloc(sizeof(player_blackboard_entry_t));
+ assert(entry);
+ memset(entry, 0, sizeof(entry));
+
+ entry->type = PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE;
+ entry->subtype = PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE;
+
+ entry->key_count = strlen(key) + 1;
+ entry->key = malloc(entry->key_count);
+ memcpy(entry->key, key, entry->key_count);
+
+ entry->data_count = sizeof(double);
+ entry->data = malloc(sizeof(int)*entry->data_count);
+ memcpy(entry->data, &d, entry->data_count);
+
+ gettimeofday(&tv, NULL);
+ entry->timestamp_sec = tv.tv_sec;
+ entry->timestamp_usec = tv.tv_usec;
+ return entry;
+ }
+
+ char *playerc_unpack_blackboard_entry_string(const player_blackboard_entry_t
*entry)
+ {
+ assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX);
+ assert(entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING);
+
+ char *result = malloc(entry->data_count);
+ assert(result);
+ memcpy(result, entry->data, entry->data_count);
+
+ return result;
+ }
+ int playerc_unpack_blackboard_entry_int(const player_blackboard_entry_t
*entry)
+ {
+ assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE);
+ assert(entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT);
+
+ int result = 0;
+ memcpy(&result, entry->data, entry->data_count);
+
+ return result;
+ }
+
+ double playerc_unpack_blackboard_entry_double(const player_blackboard_entry_t
*entry)
+ {
+ assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE);
+ assert(entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE);
+
+ double result = 0.0;
+ memcpy(&result, entry->data, entry->data_count);
+
+ return result;
+ }
+
+ int playerc_check_blackboard_entry_is_string(const player_blackboard_entry_t
*entry)
+ {
+ if (entry != NULL && entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX &&
entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING)
+ {
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
+ int playerc_check_blackboard_entry_is_int(const player_blackboard_entry_t
*entry)
+ {
+ if (entry != NULL && entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE &&
entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT)
+ {
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
+ int playerc_check_blackboard_entry_is_double(const player_blackboard_entry_t
*entry)
+ {
+ if (entry != NULL && entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE &&
entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE)
+ {
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
void playerc_blackboard_putmsg(playerc_blackboard_t *device, player_msghdr_t
*header, player_blackboard_entry_t *data, size_t len);
***************
*** 58,68 ****
playerc_blackboard_t *playerc_blackboard_create(playerc_client_t *client, int
index)
{
! playerc_blackboard_t *device= NULL;
! device = malloc(sizeof(playerc_blackboard_t));
! memset(device, 0, sizeof(playerc_blackboard_t));
! playerc_device_init(&device->info, client, PLAYER_BLACKBOARD_CODE,
index, (playerc_putmsg_fn_t)playerc_blackboard_putmsg);
! return device;
}
--- 214,224 ----
playerc_blackboard_t *playerc_blackboard_create(playerc_client_t *client, int
index)
{
! playerc_blackboard_t *device= NULL;
! device = malloc(sizeof(playerc_blackboard_t));
! memset(device, 0, sizeof(playerc_blackboard_t));
! playerc_device_init(&device->info, client, PLAYER_BLACKBOARD_CODE, index,
(playerc_putmsg_fn_t)playerc_blackboard_putmsg);
! return device;
}
***************
*** 70,76 ****
void playerc_blackboard_destroy(playerc_blackboard_t *device)
{
! playerc_device_term(&device->info);
! //playerc_blackboard_cleanup(device);
! free(device);
}
--- 226,232 ----
void playerc_blackboard_destroy(playerc_blackboard_t *device)
{
! playerc_device_term(&device->info);
! //playerc_blackboard_cleanup(device);
! free(device);
}
***************
*** 78,82 ****
int playerc_blackboard_subscribe(playerc_blackboard_t *device, int access)
{
! return playerc_device_subscribe(&device->info, access);
}
--- 234,238 ----
int playerc_blackboard_subscribe(playerc_blackboard_t *device, int access)
{
! return playerc_device_subscribe(&device->info, access);
}
***************
*** 84,88 ****
int playerc_blackboard_unsubscribe(playerc_blackboard_t *device)
{
! return playerc_device_unsubscribe(&device->info);
}
--- 240,244 ----
int playerc_blackboard_unsubscribe(playerc_blackboard_t *device)
{
! return playerc_device_unsubscribe(&device->info);
}
***************
*** 90,108 ****
int playerc_blackboard_subscribe_to_key(playerc_blackboard_t* device, const
char* key, player_blackboard_entry_t** entry_out)
{
! player_blackboard_entry_t req;
! memset(&req, 0, sizeof(req));
! req.key = strdup(key);
! req.key_count = strlen(key) + 1;
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_SUBSCRIBE_TO_KEY, &req, (void**)entry_out) < 0)
! {
! free(req.key);
! PLAYERC_ERR("failed to subscribe to blackboard key");
! return -1;
! }
! free(req.key);
! return 0;
}
--- 246,264 ----
int playerc_blackboard_subscribe_to_key(playerc_blackboard_t* device, const
char* key, player_blackboard_entry_t** entry_out)
{
! player_blackboard_entry_t req;
! memset(&req, 0, sizeof(req));
! req.key = strdup(key);
! req.key_count = strlen(key) + 1;
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_SUBSCRIBE_TO_KEY, &req, (void**)entry_out) < 0)
! {
! free(req.key);
! PLAYERC_ERR("failed to subscribe to blackboard key");
! return -1;
! }
! free(req.key);
! return 0;
}
***************
*** 110,128 ****
int playerc_blackboard_unsubscribe_from_key(playerc_blackboard_t* device,
const char* key)
{
! player_blackboard_entry_t req;
! memset(&req, 0, sizeof(req));
! req.key = strdup(key);
! req.key_count = strlen(key) + 1;
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_UNSUBSCRIBE_FROM_KEY, &req, NULL) < 0)
! {
! free(req.key);
! PLAYERC_ERR("failed to unsubscribe to blackboard key");
! return -1;
! }
! free(req.key);
! return 0;
}
--- 266,284 ----
int playerc_blackboard_unsubscribe_from_key(playerc_blackboard_t* device,
const char* key)
{
! player_blackboard_entry_t req;
! memset(&req, 0, sizeof(req));
! req.key = strdup(key);
! req.key_count = strlen(key) + 1;
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_UNSUBSCRIBE_FROM_KEY, &req, NULL) < 0)
! {
! free(req.key);
! PLAYERC_ERR("failed to unsubscribe to blackboard key");
! return -1;
! }
! free(req.key);
! return 0;
}
***************
*** 131,142 ****
int playerc_blackboard_set_entry(playerc_blackboard_t *device,
player_blackboard_entry_t* entry)
{
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_SET_ENTRY, entry, NULL) < 0)
! {
! PLAYERC_ERR("failed to set blackboard key");
! return -1;
! }
! return 0;
}
--- 287,322 ----
int playerc_blackboard_set_entry(playerc_blackboard_t *device,
player_blackboard_entry_t* entry)
{
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_SET_ENTRY, entry, NULL) < 0)
! {
! PLAYERC_ERR("failed to set blackboard key");
! return -1;
! }
! return 0;
! }
!
! int playerc_blackboard_set_string(playerc_blackboard_t *device, const char*
key, const char* value)
! {
! player_blackboard_entry_t *entry =
playerc_pack_blackboard_entry_string(key, value);
! int result = playerc_blackboard_set_entry(device, entry);
! free(entry);
! return result;
! }
!
! int playerc_blackboard_set_int(playerc_blackboard_t *device, const char* key,
const int value)
! {
! player_blackboard_entry_t *entry = playerc_pack_blackboard_entry_int(key,
value);
! int result = playerc_blackboard_set_entry(device, entry);
! free(entry);
! return result;
! }
!
! int playerc_blackboard_set_double(playerc_blackboard_t *device, const char*
key, const double value)
! {
! player_blackboard_entry_t *entry =
playerc_pack_blackboard_entry_double(key, value);
! int result = playerc_blackboard_set_entry(device, entry);
! free(entry);
! return result;
}
***************
*** 144,150 ****
void playerc_blackboard_putmsg(playerc_blackboard_t *device, player_msghdr_t
*header, player_blackboard_entry_t *data, size_t len)
{
! if (device->on_blackboard_event != NULL)
! {
! device->on_blackboard_event(*data);
! }
}
--- 324,330 ----
void playerc_blackboard_putmsg(playerc_blackboard_t *device, player_msghdr_t
*header, player_blackboard_entry_t *data, size_t len)
{
! if (device->on_blackboard_event != NULL)
! {
! device->on_blackboard_event(*data);
! }
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit