/home/fwph/code/wurde/rde/core/capabilities/PlaybackControl.cpp

Go to the documentation of this file.
00001 
00029 #include <PlaybackControl.H>
00030 #include <CommsManager.H>
00031 #include <Logger.H>
00032 
00033 // $Id: Type.cpp 68 2007-02-01 17:56:57Z fwph $
00034 
00035 using namespace WURDE;
00036 
00037 PlaybackControl::PlaybackControl(const std::string & streamname){
00038        init(streamname,STRAT_NORMAL,"Any");
00039 
00040        //global name will be set later
00041        m_haveGlobalname=false;
00042 }
00043 
00044 PlaybackControl::PlaybackControl(const ConnectionStrategy & strategy,const std::string & gblName){
00045        init("Any",strategy,gblName);
00046 
00047        if(strategy==STRAT_NORMAL){
00048               //then the global name really specifies the streamname,
00049               // and the global name should be assigned automagically once we have
00050               // confirmation that the stream has been started
00051               m_haveGlobalname=false;   
00052        }
00053 
00054        m_haveStream=false;
00055        
00056 }
00057 
00058 PlaybackControl::PlaybackControl(const std::string &streamname,const std::string &gblName){
00059        init(streamname,STRAT_NORMAL,gblName);
00060 }
00061 
00062 void PlaybackControl::init(const std::string &streamname,const ConnectionStrategy &strategy,const std::string &gblName){
00063   m_globalname=gblName;
00064   m_streamname=streamname;
00065 
00066   myCOMObject=NULL;
00067   
00068   //  data.source=streamname.c_str();
00069   requests=info;
00070 
00071   m_queue=false;
00072   m_supplier=false;
00073   m_doTimestamp=true;
00074   m_doTag=true;
00075 
00076   m_doPublishData=false;
00077   m_doPublishInfo=false;
00078 
00079   m_initialize=false;
00080   m_strategy=strategy;
00081 
00082   m_haveStream=true;
00083   m_haveGlobalname=true;
00084   m_doPublishData=false;
00085   m_doPublishInfo=false;
00086 
00087   m_doAutoPing=true;
00088 
00089   info.source=streamname;
00090   requests.source=m_globalname;
00091   info.target="Any";
00092   requests.target=streamname;
00093   info.timestamp.now();
00094   requests.timestamp.now();
00095 
00096   m_streamRequest=STAT_NULL;
00097   
00098   m_sourceModule="Unknown";
00099 }
00100 
00101 
00102 PlaybackControl::~PlaybackControl(){
00103   myManager=NULL;
00104   if(myCOMObject){
00105 
00106          //      delete myCOMObject;
00107   }
00108 }
00109 
00110 
00111 void PlaybackControl::activateSupplier(){
00112        if(m_haveStream){
00113               m_supplier=true;
00114               m_globalname=m_streamname;
00115               m_haveGlobalname=true;
00116               m_initialize=false;
00117               if(myCOMObject){
00118                       //                     myCOMObject=new CMUIPCRobotProtocol::CMUIPCPlaybackControl(m_globalname);
00119                      myCOMObject->setGlobalName(m_globalname);
00120                      myCOMObject->setStreamName(m_streamname);
00121                      myCOMObject->setInfo(&requests);
00122                      myCOMObject->setRequests(&info);
00123                      myCOMObject->setStaging(&data);
00124                      myCOMObject->activateSupplier();
00125                      myCOMObject->setAutoPing(m_doAutoPing);
00126                      myCOMObject->setInfoVector(&m_requestVector);
00127                      myCOMObject->setRequestVector(&m_infoVector);
00128                      myCOMObject->setDataVector(&m_dataVector);
00129 
00130                      data.source=m_streamname;
00131                      info.source=m_streamname;
00132 
00133                      if(m_queue){
00134                             myCOMObject->setQueueMode(true);
00135                      }
00136 
00137               }else{
00138                       g_fatal("Attempted to activateSupplier before setting a COMObject Please just use registerSupplier.");
00139                       exit(-1);
00140               }
00141         if(m_supplier){
00142                 info.playbackControl.setCMode(C_SUPPLIER);
00143         }else{
00144                 info.playbackControl.setCMode(C_CONSUMER);
00145         }
00146         if(m_supplier){
00147                 info.fakeTimeOffset.setCMode(C_SUPPLIER);
00148         }else{
00149                 info.fakeTimeOffset.setCMode(C_CONSUMER);
00150         }
00151         if(m_supplier){
00152                 info.duration.setCMode(C_SUPPLIER);
00153         }else{
00154                 info.duration.setCMode(C_CONSUMER);
00155         }
00156         if(m_supplier){
00157                 info.zeroTime.setCMode(C_SUPPLIER);
00158         }else{
00159                 info.zeroTime.setCMode(C_CONSUMER);
00160         }
00161         if(m_supplier){
00162                 info.loop.setCMode(C_SUPPLIER);
00163         }else{
00164                 info.loop.setCMode(C_CONSUMER);
00165         }
00166         if(m_supplier){
00167                 info.localFakeTime.setCMode(C_SUPPLIER);
00168         }else{
00169                 info.localFakeTime.setCMode(C_CONSUMER);
00170         }
00171         if(m_supplier){
00172                 info.multiplier.setCMode(C_SUPPLIER);
00173         }else{
00174                 info.multiplier.setCMode(C_CONSUMER);
00175         }
00176        }else{
00177               //this shouldn't happen, but there's no real problem with it.
00178               //it'd just be dumb.
00179               m_initialize=true;
00180               m_supplier=true;
00181        }
00182        
00183        requests=info;
00184 
00185 }
00186 
00187 void PlaybackControl::activateConsumer(){
00188        std::string localname;
00189        
00190        if(m_haveStream){
00191               m_initialize=false;
00192               m_supplier=false;
00193               if(myCOMObject&&myManager){
00194                       /* global name so we don't have conflicts with the naming service */
00195                       if(!m_haveGlobalname&&m_strategy==STRAT_NORMAL){
00196                               m_globalname=myManager->getName()+PLAYBACKCONTROL+m_streamname+"Consumer";
00197                               m_haveGlobalname=true;
00198                       }
00199 
00200                      myCOMObject->setGlobalName(m_globalname);
00201                      myCOMObject->setStreamName(m_streamname);
00202                      requests.source=m_globalname;
00203                      data.source=m_streamname;
00204                      info.source=m_streamname;
00205                      myCOMObject->setInfo(&info);
00206                      myCOMObject->setRequests(&requests);
00207                      myCOMObject->setStaging(&data);
00208                      myCOMObject->setAutoPing(m_doAutoPing);
00209                      myCOMObject->activateConsumer();
00210                      myCOMObject->setInfoVector(&m_infoVector);
00211                      myCOMObject->setRequestVector(&m_requestVector);
00212                      myCOMObject->setDataVector(&m_dataVector);
00213 
00214                      if(m_queue){
00215                             myCOMObject->setQueueMode(true);
00216                      }
00217               }else{
00218                       g_fatal("Attempted to activateConsumer before setting a COMObject and CommsManager. Please use registerConsumer instead.");
00219                      exit(-1);
00220               }
00221 
00222         if(m_supplier){
00223                 info.playbackControl.setCMode(C_SUPPLIER);
00224         }else{
00225                 info.playbackControl.setCMode(C_CONSUMER);
00226         }
00227         if(m_supplier){
00228                 info.fakeTimeOffset.setCMode(C_SUPPLIER);
00229         }else{
00230                 info.fakeTimeOffset.setCMode(C_CONSUMER);
00231         }
00232         if(m_supplier){
00233                 info.duration.setCMode(C_SUPPLIER);
00234         }else{
00235                 info.duration.setCMode(C_CONSUMER);
00236         }
00237         if(m_supplier){
00238                 info.zeroTime.setCMode(C_SUPPLIER);
00239         }else{
00240                 info.zeroTime.setCMode(C_CONSUMER);
00241         }
00242         if(m_supplier){
00243                 info.loop.setCMode(C_SUPPLIER);
00244         }else{
00245                 info.loop.setCMode(C_CONSUMER);
00246         }
00247         if(m_supplier){
00248                 info.localFakeTime.setCMode(C_SUPPLIER);
00249         }else{
00250                 info.localFakeTime.setCMode(C_CONSUMER);
00251         }
00252         if(m_supplier){
00253                 info.multiplier.setCMode(C_SUPPLIER);
00254         }else{
00255                 info.multiplier.setCMode(C_CONSUMER);
00256         }
00257        }else{
00258               //no stream, so we can't connect yet. tell the system 
00259               //to initialize as soon as we've got one
00260               m_initialize=true;
00261        }
00262 
00263 }
00264 
00265 void PlaybackControl::runUpdate(){
00266        if(myCOMObject){
00267 
00268               myCOMObject->runUpdate(m_doPublishData,m_doPublishInfo);
00269               
00270               m_doPublishData=false;
00271               m_doPublishInfo=false;
00272               
00273        }
00274 }
00275 
00276 void PlaybackControl::setManager(CommsManager *myManager_){
00277 
00278   if(!myCOMObject){
00279     myManager=myManager_;
00280   }
00281 
00282 }
00283 
00284 void PlaybackControl::setQueueMode(const bool & val){
00285 
00286        if(!myCOMObject){
00287               m_queue=val;
00288        }else if(!m_queue&&val){
00289               m_queue=val;
00290               myCOMObject->setDataVector(&m_dataVector);
00291               myCOMObject->setQueueMode(true);
00292 
00293        }else if(!val&&m_queue){
00294               m_queue=val;
00295               myCOMObject->setQueueMode(false);
00296               while(!m_dataVector.empty()){
00297                      m_dataVector.pop();
00298               }
00299               while(!m_infoVector.empty()){
00300                      m_infoVector.pop();
00301               }
00302               while(!m_requestVector.empty()){
00303                      m_requestVector.pop();
00304               }
00305        }
00306 }
00307 
00308 bool PlaybackControl::newData(){
00309        if(m_queue){
00310               return !m_dataVector.empty();
00311        }else{
00312               if(myCOMObject){
00313                      return myCOMObject->newData();
00314               }
00315        }
00316 
00317        return false;
00318 }
00319 
00320 bool PlaybackControl::newInfo(){
00321        if(m_queue){
00322               if(m_supplier){
00323                      return !m_requestVector.empty();
00324               }
00325 
00326               return !m_infoVector.empty();
00327        }else{
00328               if(myCOMObject){
00329                      return myCOMObject->newInfo();
00330               }
00331        }
00332 
00333 
00334        return false;
00335 }
00336 
00337 void PlaybackControl::publishData(){
00338        if(m_supplier){
00339               if(m_doTimestamp){
00340                      data.timestamp.now();
00341               }
00342               if(m_doTag){
00343                      data.source=m_globalname;
00344               }
00345               if(m_queue){
00346                      PlaybackControlDataStruct temp;
00347                      temp.source=data.source;
00348 temp.timestamp=data.timestamp;
00349  
00350                      m_dataVector.push(temp);
00351                               //                     m_dataVector.push(data);
00352               }
00353               m_doPublishData=true;
00354        }
00355 }
00356 
00357 void PlaybackControl::publishInfo(){
00358        if(m_supplier){
00359 
00360               info.mType=MESSAGE_INFO;
00361               if(m_doTimestamp){
00362                      info.timestamp.now();
00363               }
00364 
00365               if(m_doTag){
00366                      info.source=m_globalname;
00367                      info.target="Any";
00368               }
00369 
00370               if(m_queue){
00371                      PlaybackControlInfoStruct temp;
00372                      
00373                     
00374                      temp.source=info.source;
00375 temp.playbackControl=info.playbackControl;
00376 temp.fakeTimeOffset=info.fakeTimeOffset;
00377 temp.duration=info.duration;
00378 temp.zeroTime=info.zeroTime;
00379 temp.loop=info.loop;
00380 temp.mType=info.mType;
00381 temp.target=info.target;
00382 temp.timestamp=info.timestamp;
00383 temp.localFakeTime=info.localFakeTime;
00384 temp.multiplier=info.multiplier;
00385 
00386                      m_infoVector.push(temp);
00387                     
00388                      //              m_infoVector.push(info);
00389               }
00390 
00391               m_doPublishInfo=true;
00392        }else{
00393 
00394               requests.mType=MESSAGE_REQUEST;
00395               
00396               if(m_doTimestamp){
00397                      requests.timestamp.now();
00398               }
00399 
00400               if(m_doTag){
00401                      requests.source=m_globalname;
00402                      requests.target=m_streamname;
00403               }
00404 
00405               if(m_queue){
00406                      PlaybackControlInfoStruct temp;
00407         if(m_supplier){
00408                 temp.playbackControl.setCMode(C_SUPPLIER);
00409         }else{
00410                 temp.playbackControl.setCMode(C_CONSUMER);
00411         }
00412         if(m_supplier){
00413                 temp.fakeTimeOffset.setCMode(C_SUPPLIER);
00414         }else{
00415                 temp.fakeTimeOffset.setCMode(C_CONSUMER);
00416         }
00417         if(m_supplier){
00418                 temp.duration.setCMode(C_SUPPLIER);
00419         }else{
00420                 temp.duration.setCMode(C_CONSUMER);
00421         }
00422         if(m_supplier){
00423                 temp.zeroTime.setCMode(C_SUPPLIER);
00424         }else{
00425                 temp.zeroTime.setCMode(C_CONSUMER);
00426         }
00427         if(m_supplier){
00428                 temp.loop.setCMode(C_SUPPLIER);
00429         }else{
00430                 temp.loop.setCMode(C_CONSUMER);
00431         }
00432         if(m_supplier){
00433                 temp.localFakeTime.setCMode(C_SUPPLIER);
00434         }else{
00435                 temp.localFakeTime.setCMode(C_CONSUMER);
00436         }
00437         if(m_supplier){
00438                 temp.multiplier.setCMode(C_SUPPLIER);
00439         }else{
00440                 temp.multiplier.setCMode(C_CONSUMER);
00441         }
00442                      temp.source=requests.source;
00443 temp.playbackControl=requests.playbackControl;
00444 temp.fakeTimeOffset=requests.fakeTimeOffset;
00445 temp.duration=requests.duration;
00446 temp.zeroTime=requests.zeroTime;
00447 temp.loop=requests.loop;
00448 temp.mType=requests.mType;
00449 temp.target=requests.target;
00450 temp.timestamp=requests.timestamp;
00451 temp.localFakeTime=requests.localFakeTime;
00452 temp.multiplier=requests.multiplier;
00453 
00454                      m_requestVector.push(temp);
00455 
00456                      //              m_requestVector.push(requests);
00457               }
00458 
00459               m_doPublishInfo=true;
00460        }
00461 }
00462 
00463 PlaybackControlDataStruct PlaybackControl::getNextData(){
00464        if(m_queue){
00465               PlaybackControlDataStruct retval;
00466               retval.source="NULL";
00467               if(m_dataVector.empty()){
00468                      return data;
00469               }
00470              
00471               retval.source=m_dataVector.front().source;
00472 retval.timestamp=m_dataVector.front().timestamp;
00473 
00474                        //             retval=m_dataVector.front();
00475               m_dataVector.pop();
00476               data=retval;
00477        
00478               return retval;
00479        }else{
00480               myCOMObject->resetData();
00481               return data;
00482        }
00483 }
00484 
00485 PlaybackControlInfoStruct PlaybackControl::getNextInfo(){
00486        if(m_queue){
00487               PlaybackControlInfoStruct retval;
00488         if(m_supplier){
00489                 retval.playbackControl.setCMode(C_SUPPLIER);
00490         }else{
00491                 retval.playbackControl.setCMode(C_CONSUMER);
00492         }
00493         if(m_supplier){
00494                 retval.fakeTimeOffset.setCMode(C_SUPPLIER);
00495         }else{
00496                 retval.fakeTimeOffset.setCMode(C_CONSUMER);
00497         }
00498         if(m_supplier){
00499                 retval.duration.setCMode(C_SUPPLIER);
00500         }else{
00501                 retval.duration.setCMode(C_CONSUMER);
00502         }
00503         if(m_supplier){
00504                 retval.zeroTime.setCMode(C_SUPPLIER);
00505         }else{
00506                 retval.zeroTime.setCMode(C_CONSUMER);
00507         }
00508         if(m_supplier){
00509                 retval.loop.setCMode(C_SUPPLIER);
00510         }else{
00511                 retval.loop.setCMode(C_CONSUMER);
00512         }
00513         if(m_supplier){
00514                 retval.localFakeTime.setCMode(C_SUPPLIER);
00515         }else{
00516                 retval.localFakeTime.setCMode(C_CONSUMER);
00517         }
00518         if(m_supplier){
00519                 retval.multiplier.setCMode(C_SUPPLIER);
00520         }else{
00521                 retval.multiplier.setCMode(C_CONSUMER);
00522         }
00523               retval.source="NULL";
00524               if(m_supplier){
00525                      if(m_requestVector.empty()){
00526                             return requests;
00527                      }
00528                      retval.source=m_requestVector.front().source;
00529 retval.playbackControl=m_requestVector.front().playbackControl;
00530 retval.fakeTimeOffset=m_requestVector.front().fakeTimeOffset;
00531 retval.duration=m_requestVector.front().duration;
00532 retval.zeroTime=m_requestVector.front().zeroTime;
00533 retval.loop=m_requestVector.front().loop;
00534 retval.mType=m_requestVector.front().mType;
00535 retval.target=m_requestVector.front().target;
00536 retval.timestamp=m_requestVector.front().timestamp;
00537 retval.localFakeTime=m_requestVector.front().localFakeTime;
00538 retval.multiplier=m_requestVector.front().multiplier;
00539 
00540                               //                     retval=m_requestVector.front();
00541         if(m_supplier){
00542                 retval.playbackControl.setCMode(C_SUPPLIER);
00543         }else{
00544                 retval.playbackControl.setCMode(C_CONSUMER);
00545         }
00546         if(m_supplier){
00547                 retval.fakeTimeOffset.setCMode(C_SUPPLIER);
00548         }else{
00549                 retval.fakeTimeOffset.setCMode(C_CONSUMER);
00550         }
00551         if(m_supplier){
00552                 retval.duration.setCMode(C_SUPPLIER);
00553         }else{
00554                 retval.duration.setCMode(C_CONSUMER);
00555         }
00556         if(m_supplier){
00557                 retval.zeroTime.setCMode(C_SUPPLIER);
00558         }else{
00559                 retval.zeroTime.setCMode(C_CONSUMER);
00560         }
00561         if(m_supplier){
00562                 retval.loop.setCMode(C_SUPPLIER);
00563         }else{
00564                 retval.loop.setCMode(C_CONSUMER);
00565         }
00566         if(m_supplier){
00567                 retval.localFakeTime.setCMode(C_SUPPLIER);
00568         }else{
00569                 retval.localFakeTime.setCMode(C_CONSUMER);
00570         }
00571         if(m_supplier){
00572                 retval.multiplier.setCMode(C_SUPPLIER);
00573         }else{
00574                 retval.multiplier.setCMode(C_CONSUMER);
00575         }
00576                      m_requestVector.pop();
00577                      requests=retval;
00578                      return retval;
00579               }else{
00580                      if(m_infoVector.empty()){
00581                             return info;
00582                      }
00583                      retval.source=m_infoVector.front().source;
00584 retval.playbackControl=m_infoVector.front().playbackControl;
00585 retval.fakeTimeOffset=m_infoVector.front().fakeTimeOffset;
00586 retval.duration=m_infoVector.front().duration;
00587 retval.zeroTime=m_infoVector.front().zeroTime;
00588 retval.loop=m_infoVector.front().loop;
00589 retval.mType=m_infoVector.front().mType;
00590 retval.target=m_infoVector.front().target;
00591 retval.timestamp=m_infoVector.front().timestamp;
00592 retval.localFakeTime=m_infoVector.front().localFakeTime;
00593 retval.multiplier=m_infoVector.front().multiplier;
00594 
00595         if(m_supplier){
00596                 retval.playbackControl.setCMode(C_SUPPLIER);
00597         }else{
00598                 retval.playbackControl.setCMode(C_CONSUMER);
00599         }
00600         if(m_supplier){
00601                 retval.fakeTimeOffset.setCMode(C_SUPPLIER);
00602         }else{
00603                 retval.fakeTimeOffset.setCMode(C_CONSUMER);
00604         }
00605         if(m_supplier){
00606                 retval.duration.setCMode(C_SUPPLIER);
00607         }else{
00608                 retval.duration.setCMode(C_CONSUMER);
00609         }
00610         if(m_supplier){
00611                 retval.zeroTime.setCMode(C_SUPPLIER);
00612         }else{
00613                 retval.zeroTime.setCMode(C_CONSUMER);
00614         }
00615         if(m_supplier){
00616                 retval.loop.setCMode(C_SUPPLIER);
00617         }else{
00618                 retval.loop.setCMode(C_CONSUMER);
00619         }
00620         if(m_supplier){
00621                 retval.localFakeTime.setCMode(C_SUPPLIER);
00622         }else{
00623                 retval.localFakeTime.setCMode(C_CONSUMER);
00624         }
00625         if(m_supplier){
00626                 retval.multiplier.setCMode(C_SUPPLIER);
00627         }else{
00628                 retval.multiplier.setCMode(C_CONSUMER);
00629         }
00630                      m_infoVector.pop();
00631                      info=retval;
00632                      // the requests struct really should get the values in 
00633                      // info
00634                      requests=info;
00635                      
00636                      return retval;
00637               }
00638        }else{
00639               myCOMObject->resetInfo();
00640               if(m_supplier){
00641         if(m_supplier){
00642                 requests.playbackControl.setCMode(C_SUPPLIER);
00643         }else{
00644                 requests.playbackControl.setCMode(C_CONSUMER);
00645         }
00646         if(m_supplier){
00647                 requests.fakeTimeOffset.setCMode(C_SUPPLIER);
00648         }else{
00649                 requests.fakeTimeOffset.setCMode(C_CONSUMER);
00650         }
00651         if(m_supplier){
00652                 requests.duration.setCMode(C_SUPPLIER);
00653         }else{
00654                 requests.duration.setCMode(C_CONSUMER);
00655         }
00656         if(m_supplier){
00657                 requests.zeroTime.setCMode(C_SUPPLIER);
00658         }else{
00659                 requests.zeroTime.setCMode(C_CONSUMER);
00660         }
00661         if(m_supplier){
00662                 requests.loop.setCMode(C_SUPPLIER);
00663         }else{
00664                 requests.loop.setCMode(C_CONSUMER);
00665         }
00666         if(m_supplier){
00667                 requests.localFakeTime.setCMode(C_SUPPLIER);
00668         }else{
00669                 requests.localFakeTime.setCMode(C_CONSUMER);
00670         }
00671         if(m_supplier){
00672                 requests.multiplier.setCMode(C_SUPPLIER);
00673         }else{
00674                 requests.multiplier.setCMode(C_CONSUMER);
00675         }
00676                      return requests;
00677               }else{
00678         if(m_supplier){
00679                 info.playbackControl.setCMode(C_SUPPLIER);
00680         }else{
00681                 info.playbackControl.setCMode(C_CONSUMER);
00682         }
00683         if(m_supplier){
00684                 info.fakeTimeOffset.setCMode(C_SUPPLIER);
00685         }else{
00686                 info.fakeTimeOffset.setCMode(C_CONSUMER);
00687         }
00688         if(m_supplier){
00689                 info.duration.setCMode(C_SUPPLIER);
00690         }else{
00691                 info.duration.setCMode(C_CONSUMER);
00692         }
00693         if(m_supplier){
00694                 info.zeroTime.setCMode(C_SUPPLIER);
00695         }else{
00696                 info.zeroTime.setCMode(C_CONSUMER);
00697         }
00698         if(m_supplier){
00699                 info.loop.setCMode(C_SUPPLIER);
00700         }else{
00701                 info.loop.setCMode(C_CONSUMER);
00702         }
00703         if(m_supplier){
00704                 info.localFakeTime.setCMode(C_SUPPLIER);
00705         }else{
00706                 info.localFakeTime.setCMode(C_CONSUMER);
00707         }
00708         if(m_supplier){
00709                 info.multiplier.setCMode(C_SUPPLIER);
00710         }else{
00711                 info.multiplier.setCMode(C_CONSUMER);
00712         }
00713                      // the requests struct really should get the values in 
00714                      // info
00715                      requests=info;
00716                      return info;
00717               }
00718        }
00719 }
00720 
00721 void PlaybackControl::setStreamName(const std::string & name){
00722 
00723        if(m_supplier&&name=="Any"){
00724               return;
00725        }
00726 
00727        m_streamname=name;
00728        m_haveStream=true;
00729 
00730        if(m_supplier){
00731               m_globalname=name;
00732        }
00733        
00734        if(myCOMObject){
00735               myCOMObject->setStreamName(name);
00736        }
00737 
00738        if(m_initialize){
00739               if(m_supplier){
00740                      activateSupplier();
00741               }else{
00742                      activateConsumer();
00743               }
00744        }
00745 
00746        m_streamRequest=STAT_OKAY;
00747 }
00748 
00749 void PlaybackControl::setGlobalName(const std::string & name){
00750        
00751        if(name=="Any"){
00752               return;
00753        }
00754 
00755        m_globalname=name;
00756        m_haveGlobalname=true;
00757        if(m_supplier){
00758               m_streamname=name;
00759        }
00760 
00761        if(myCOMObject){
00762               myCOMObject->setGlobalName(name);
00763        }
00764 }
00765 
00766 void PlaybackControl::doPing(){
00767        if(myCOMObject){
00768               myCOMObject->doPing();
00769        }
00770 }
00771 
00772 void PlaybackControl::setAutoPing(const bool & val){
00773        m_doAutoPing=val; 
00774        if(myCOMObject){
00775               myCOMObject->setAutoPing(val);
00776        }
00777 }
00778 
00779 

Generated on Thu Feb 1 15:31:53 2007 for WURDE by  doxygen 1.5.1