Update of /cvsroot/playerstage/code/player/client_libs/libplayerc++
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25517/client_libs/libplayerc++

Modified Files:
        blackboardproxy.cc playerclient.cc playerclient.h 
Log Message:
fix for peek behaviour in pull mode
updates for the blackboard interface


Index: blackboardproxy.cc
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/client_libs/libplayerc++/blackboardproxy.cc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** blackboardproxy.cc  31 Oct 2007 01:18:42 -0000      1.1
--- blackboardproxy.cc  26 Nov 2007 22:14:59 -0000      1.2
***************
*** 94,106 ****
  {
    scoped_lock_t lock(mPc->mMutex);
!   player_blackboard_entry_t **t;
!   *t = new player_blackboard_entry_t;
!   memset(*t, 0, sizeof(player_blackboard_entry_t));
!   if (0 != playerc_blackboard_subscribe_to_key(mDevice, key, t))
    {
-       delete *t;
        throw PlayerError("BlackBoardProxy::SubscribeToKey(const string& key)", 
"could not subscribe to key");
    }
!   return *t;
  }
  
--- 94,124 ----
  {
    scoped_lock_t lock(mPc->mMutex);
!   player_blackboard_entry_t *pointer;
!   if (0 != playerc_blackboard_subscribe_to_key(mDevice, key, &pointer))
    {
        throw PlayerError("BlackBoardProxy::SubscribeToKey(const string& key)", 
"could not subscribe to key");
    }
! 
!   // We don't want a mix of malloc and new, so make a copy using only new
!   player_blackboard_entry_t *result = new player_blackboard_entry_t;
!   memset(result, 0, sizeof(player_blackboard_entry_t));
!   result->interf = pointer->interf;
!   result->type = pointer->type;
!   result->subtype = pointer->subtype;
! 
!   result->key_count = pointer->key_count;
!   result->key = new char[result->key_count];
!   memcpy(result->key, pointer->key, result->key_count);
!   
!   result->data_count = pointer->data_count;
!   result->data = new uint8_t[result->data_count];
!   memcpy(result->data, pointer->data, result->data_count);
! 
!   // Get rid of the original
!   free(pointer->key);
!   free(pointer->data);
!   free(pointer);
!   
!   return result;
  }
  

Index: playerclient.cc
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/client_libs/libplayerc++/playerclient.cc,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** playerclient.cc     24 Oct 2007 22:32:03 -0000      1.27
--- playerclient.cc     26 Nov 2007 22:14:59 -0000      1.28
***************
*** 199,202 ****
--- 199,209 ----
  }
  
+ /*bool PlayerClient::Peek2(uint32_t aTimeout)
+ {
+   ClientProxy::scoped_lock_t lock(mMutex);
+   //EVAL(playerc_client_peek(mClient, aTimeout));
+   return playerc_client_peek2(mClient, aTimeout);
+ }*/
+ 
  bool PlayerClient::Peek(uint32_t aTimeout)
  {

Index: playerclient.h
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/client_libs/libplayerc++/playerclient.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** playerclient.h      24 Oct 2007 22:32:03 -0000      1.25
--- playerclient.h      26 Nov 2007 22:14:59 -0000      1.26
***************
*** 181,184 ****
--- 181,185 ----
      /// - true if there is data waiting
      bool Peek(uint32_t timeout=0);
+     //bool Peek2(uint32_t timeout=0);
  
      /// @brief Set connection retry limit, which is the number of times


-------------------------------------------------------------------------
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