Revision: 8861
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8861&view=rev
Author:   jpgr87
Date:     2010-08-29 00:59:36 +0000 (Sun, 29 Aug 2010)

Log Message:
-----------
Applied patch #3055165: Player SVN: request forwarding for imgcmp and imgsave

Modified Paths:
--------------
    code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc
    code/player/trunk/server/drivers/camera/imgsave/imgsave.cc

Modified: code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc
===================================================================
--- code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc    2010-08-29 
00:55:55 UTC (rev 8860)
+++ code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc    2010-08-29 
00:59:36 UTC (rev 8861)
@@ -402,6 +402,8 @@
   player_dio_cmd_t dio_cmd;
   double t;
   int d;
+  Message * msg;
+  player_msghdr newhdr;
 
   assert(hdr);
   if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_DATA, -1, this->dio_id))
@@ -621,6 +623,20 @@
       }
     }
     return 0;
+  } else if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_REQ, -1, 
this->camera_provided_addr))
+  {
+    hdr->addr = this->camera_id;
+    msg = this->camera->Request(this->InQueue, hdr->type, hdr->subtype, data, 
0, NULL, true); // threaded = true
+    if (!msg)
+    {
+      PLAYER_WARN("failed to forward request");
+      return -1;
+    }
+    newhdr = *(msg->GetHeader());
+    newhdr.addr = this->camera_provided_addr;
+    this->Publish(resp_queue, &newhdr, msg->GetPayload(), true); // copy = 
true, do not dispose published data as we're disposing whole source message in 
the next line
+    delete msg;
+    return 0;
   }
   return -1;
 }

Modified: code/player/trunk/server/drivers/camera/imgsave/imgsave.cc
===================================================================
--- code/player/trunk/server/drivers/camera/imgsave/imgsave.cc  2010-08-29 
00:55:55 UTC (rev 8860)
+++ code/player/trunk/server/drivers/camera/imgsave/imgsave.cc  2010-08-29 
00:59:36 UTC (rev 8861)
@@ -312,6 +312,8 @@
   FILE * f;
   struct tm t;
   time_t tt = time(NULL);
+  Message * msg;
+  player_msghdr newhdr;
 
   assert(hdr);
   if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_DATA, 
PLAYER_CAMERA_DATA_STATE, this->camera_id))
@@ -529,6 +531,20 @@
       output = NULL;
     }
     return 0;
+  } else if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_REQ, -1, 
this->camera_provided_addr))
+  {
+    hdr->addr = this->camera_id;
+    msg = this->camera->Request(this->InQueue, hdr->type, hdr->subtype, data, 
0, NULL, true); // threaded = true
+    if (!msg)
+    {
+      PLAYER_WARN("failed to forward request");
+      return -1;
+    }
+    newhdr = *(msg->GetHeader());
+    newhdr.addr = this->camera_provided_addr;
+    this->Publish(resp_queue, &newhdr, msg->GetPayload(), true); // copy = 
true, do not dispose published data as we're disposing whole source message in 
the next line
+    delete msg;
+    return 0;
   }
   return -1;
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to