Datum FrameListStimulus::getCurrentAnnounceDrawData() { boost::mutex::scoped_lock locker(stim_lock); Datum announceData = BaseFrameListStimulus::getCurrentAnnounceDrawData(); announceData.addElement(STIM_TYPE, "frame_list"); announceData.addElement(STIMULUS_GROUP, stimulusGroup->getTag()); return announceData; }
// override of RectangleStimulus announce method -- allows trigger info to also be announced Datum FixationPoint::getCurrentAnnounceDrawData() { //if (VERBOSE_EYE_CALIBRATORS> 1) mprintf("getting announce DRAW data for fixation point stimulus %s",tag ); Datum announceData = RectangleStimulus::getCurrentAnnounceDrawData(); announceData.addElement(STIM_TYPE,STIM_TYPE_POINT); // stuff from the trigger that is not in rectangle stimulus ... announceData.addElement("center_x", (double)(*centerx)); announceData.addElement("center_y", (double)(*centery)); announceData.addElement("width", (double)(*width)); return (announceData); }
Datum DynamicRandomDots::getCurrentAnnounceDrawData() { boost::mutex::scoped_lock locker(stim_lock); Datum announceData = StandardDynamicStimulus::getCurrentAnnounceDrawData(); announceData.addElement(STIM_TYPE, "dynamic_random_dots"); announceData.addElement("field_radius", fieldRadius); announceData.addElement("field_center_x", fieldCenterX); announceData.addElement("field_center_y", fieldCenterY); announceData.addElement("num_dots", (long)numDots); announceData.addElement("dot_size", dotSize); announceData.addElement(STIM_COLOR_R, colorR); announceData.addElement(STIM_COLOR_G, colorG); announceData.addElement(STIM_COLOR_B, colorB); announceData.addElement("alpha_multiplier", alpha); announceData.addElement("direction", direction->getValue().getFloat()); announceData.addElement("speed", speed->getValue().getFloat()); return announceData; }
Datum BaseFrameListStimulus::getCurrentAnnounceDrawData() { Datum announceData = StandardDynamicStimulus::getCurrentAnnounceDrawData(); if (stimulusGroup) { announceData.addElement(STIMULUS_GROUP, stimulusGroup->getTag()); } announceData.addElement(LOOP, loop->getValue()); announceData.addElement("playing", Datum(isPlaying())); int frameNumber = getFrameNumber(); announceData.addElement("current_frame", Datum((long)frameNumber)); Datum currentStimulusAnnounceData(0L); if ((frameNumber >= 0) && (frameNumber < getNumFrames())) { currentStimulusAnnounceData = getStimulusForFrame(frameNumber)->getCurrentAnnounceDrawData(); } announceData.addElement("current_stimulus", currentStimulusAnnounceData); return announceData; }
Datum StimulusDisplay::getAnnounceData(bool updateIsExplicit) { Datum stimAnnounce; if (!shouldAnnounceStimuli(updateIsExplicit)) { // No stim announcements, so just report the number of stimuli drawn stimAnnounce = Datum(long(stimAnnouncements.size())); } else { stimAnnounce = Datum(M_LIST, int(stimAnnouncements.size())); for (size_t i = 0; i < stimAnnouncements.size(); i++) { stimAnnounce.addElement(stimAnnouncements[i]); } } return stimAnnounce; }
Datum MovingDots::getCurrentAnnounceDrawData() { boost::mutex::scoped_lock locker(stim_lock); Datum announceData = StandardDynamicStimulus::getCurrentAnnounceDrawData(); announceData.addElement(STIM_TYPE, "moving_dots"); announceData.addElement(FIELD_RADIUS, currentFieldRadius); announceData.addElement(FIELD_CENTER_X, fieldCenterX->getValue().getFloat()); announceData.addElement(FIELD_CENTER_Y, fieldCenterY->getValue().getFloat()); announceData.addElement(DOT_DENSITY, dotDensity->getValue().getFloat()); announceData.addElement(DOT_SIZE, dotSize->getValue().getFloat()); announceData.addElement(STIM_COLOR_R, red->getValue().getFloat()); announceData.addElement(STIM_COLOR_G, green->getValue().getFloat()); announceData.addElement(STIM_COLOR_B, blue->getValue().getFloat()); announceData.addElement(ALPHA_MULTIPLIER, alpha->getValue().getFloat()); announceData.addElement(DIRECTION, direction->getValue().getFloat()); announceData.addElement(SPEED, currentSpeed); announceData.addElement(COHERENCE, currentCoherence); announceData.addElement(LIFETIME, currentLifetime); announceData.addElement("num_dots", long(currentNumDots)); announceData.addElement(RAND_SEED, randSeed); if (announceDots->getValue().getBool()) { Datum dotsData(reinterpret_cast<char *>(&(dotPositions[0])), dotPositions.size() * sizeof(GLfloat)); announceData.addElement("dots", dotsData); } return announceData; }