1 #include "FPublisher.h"
3 FPublisher::FPublisher(QWidget *parent)
6 stepx=rand()%2+1;stepy=rand()%2+1;
8 while(incx==0) incx=(rand()%3-1)*stepx;
9 while(incy==0) incy=(rand()%3-1)*stepy;
10 rect.setRect(0,0,25,45);
16 bool FPublisher::initPublisher(int icolor,int istrength)
22 domain=ORTEDomainAppCreate(ORTE_DEFAULT_DOMAIN,NULL,NULL,ORTE_FALSE);
26 BoxType_type_register(domain);
31 boxType.shape=strength;
33 view->activateObject(0,color,strength);//color,shape
34 NtpTimeAssembFromMs(persistence, 5, 0);
36 case CL_BLUE:topic="Blue";break;
37 case CL_GREEN:topic="Green";break;
38 case CL_RED:topic="Red";break;
39 case CL_BLACK:topic="Black";break;
40 case CL_YELLOW:topic="Yellow";break;
42 publisher=ORTEPublicationCreate(
54 connect( timer, SIGNAL(timeout()), this, SLOT(Timer()));
60 void FPublisher::closeEvent( QCloseEvent *e )
67 void FPublisher::destroy()
71 ORTEDomainAppDestroy(domain);
77 void FPublisher::Timer()
79 if(rect.left()<=0) incx=stepx;
80 if(rect.top()<=0) incy=stepy;
81 if((rect.right())>=view->width()) incx=-stepx;
82 if((rect.bottom())>=view->height()) incy=-stepy;
83 if(view->mousePressed==1) {
84 int tmpW=rect.width();
85 int tmpH=rect.height();
86 rect.setRect(view->mouseX-tmpW/2,view->mouseY-tmpH/2,tmpW,tmpH);
88 rect.moveTo(rect.left()+incx,rect.top()+incy);
90 view->setPosition(0,rect);
91 //prepare published data
92 boxType.rectangle.top_left_x=rect.left();
93 boxType.rectangle.top_left_y=rect.top();
94 boxType.rectangle.bottom_right_x=rect.right();
95 boxType.rectangle.bottom_right_y=rect.bottom();
96 ORTEPublicationSend(publisher);
100 void FPublisher::strengthChanged()
104 if (!publisher) return;
105 ORTEPublicationPropertiesGet(publisher,&pp);
106 pp.strength=slider->value();
107 ORTEPublicationPropertiesSet(publisher,&pp);