예제 #1
0
bool QRSDetection::setEventListener (IEventListener *listener) {
	_listener = listener;	

	_send_etuple = _options.tuple;
	if(_send_etuple) {
		ssi_event_init (_r_event, SSI_ETYPE_MAP);
		ssi_event_adjust (_r_event, 1 * sizeof (ssi_event_map_t));
		ssi_event_map_t *ptr = ssi_pcast (ssi_event_map_t, _r_event.ptr);
		ptr[0].id = Factory::AddString ("delta");
	} else {
		ssi_event_init (_r_event, SSI_ETYPE_TUPLE);
		ssi_event_adjust (_r_event, 1 * sizeof (ssi_real_t));
	}

	_r_event.sender_id = Factory::AddString (_options.sname);
	if (_r_event.sender_id == SSI_FACTORY_STRINGS_INVALID_ID) {
		return false;
	}
	_r_event.event_id = Factory::AddString (_options.ename);
	if (_r_event.event_id == SSI_FACTORY_STRINGS_INVALID_ID) {
		return false;
	}
	
	_event_address.setSender (_options.sname);
	_event_address.setEvents (_options.ename);

	return true;
}
예제 #2
0
MapEventSender::MapEventSender (const ssi_char_t *file)
	: _file (0),
	_listener (0),
	ssi_log_level (SSI_LOG_LEVEL_DEFAULT) {

	if (file) {
		if (!OptionList::LoadXML(file, &_options)) {
			OptionList::SaveXML(file, &_options);
		}
		_file = ssi_strcpy (file);
	}

	ssi_event_init (_event, SSI_ETYPE_MAP);
}
예제 #3
0
bool ClockEventSender::setEventListener (IEventListener *listener) {

	if (_options.empty) {
		ssi_event_init(_event, SSI_ETYPE_EMPTY);
	}
	else {
		ssi_event_init(_event, SSI_ETYPE_STRING);
		ssi_event_adjust(_event, ssi_strlen(_options.string) + 1);
		ssi_strcpy(_event.ptr, _options.string);
	}

	_listener = listener;
	
	if (_options.address[0] != '\0') {

		SSI_OPTIONLIST_SET_ADDRESS(_options.address, _event_address, _event);

	}
	else {

		ssi_wrn("use of deprecated option 'sname' and 'ename', use 'address' instead")

		_event.sender_id = Factory::AddString(_options.sname);
		if (_event.sender_id == SSI_FACTORY_STRINGS_INVALID_ID) {
			return false;
		}
		_event.event_id = Factory::AddString(_options.ename);
		if (_event.event_id == SSI_FACTORY_STRINGS_INVALID_ID) {
			return false;
		}

		_event_address.setSender(_options.sname);
		_event_address.setEvents(_options.ename);
	}

	return true;
}
예제 #4
0
EventList::EventList (ssi_size_t n_events)
: _n_events (n_events),
	_events_count (0),
	_next_count (0),
	_head_pos (0),
	_next_pos (0),
	_next (0) {

	_events = new ssi_event_t[_n_events];
	for (ssi_size_t i = 0; i < _n_events; i++) {
		ssi_event_init (_events[i]);
	}	

	reset ();
}
예제 #5
0
SocketEventReader::SocketEventReader (const ssi_char_t *file)
	: _file (0),
	_elistener (0),
	_frame (0),
	_socket (0),
	_socket_osc (0),
	_buffer (0) {

	if (file) {
		if (!OptionList::LoadXML (file, _options)) {
			OptionList::SaveXML (file, _options);
		}
		_file = ssi_strcpy (file);
	}

	ssi_event_init (_event_string, SSI_ETYPE_STRING);
};
예제 #6
0
ClockEventSender::ClockEventSender (const ssi_char_t *file)
	: _file (0),
	_clocks(0),
	_n_clocks(0),
	_listener (0),
	ssi_log_level (SSI_LOG_LEVEL_DEFAULT) {

	if (file) {
		if (!OptionList::LoadXML(file, &_options)) {
			OptionList::SaveXML(file, &_options);
		}
		_file = ssi_strcpy (file);
	}

	ssi_event_init (_event, SSI_ETYPE_TUPLE);
	_frame = Factory::GetFramework();
}
예제 #7
0
// Class EventHandler
    Tensorflow::EventHandler::EventHandler(IEventListener *listener,
                                           ssi_size_t sid,
                                           ssi_size_t eid,
                                           bool winner_only,
                                           ssi_char_t *select)
            : _listener(listener),
              _winner_only(winner_only),
              _class_ids(0),
              _n_select(0),
              _select(0) {

        if (select && select[0] != '\0') {
            _select = ssi_parse_indices(select, _n_select);
        }

        ssi_event_init(_event, SSI_ETYPE_MAP, sid, eid);
    };
예제 #8
0
void SocketEventReader::event (const char *from,
	const ssi_char_t *id,
	osc_int32 time,
	osc_int32 dur,
	osc_int32 state,
	osc_int32 n_events,
	const ssi_char_t **events,
	const ssi_real_t *values) {		

	if (_elistener) {
		ssi_event_t e;
		ssi_event_init (e,  SSI_ETYPE_NTUPLE, _event_string.sender_id, _event_string.event_id, _frame->GetElapsedTimeMs (), dur, n_events * sizeof (ssi_event_tuple_t));
		ssi_event_tuple_t *t = ssi_pcast (ssi_event_tuple_t, e.ptr);
		for (osc_int32 i = 0; i < n_events; i++) {
			t[i].id = Factory::AddString (events[i]);
			t[i].value = values[i];
		}
		_elistener->update (e);
		ssi_event_destroy (e);
	}
};
예제 #9
0
EventConsumer::EventConsumer (const ssi_char_t *file)
	: _file (0),
	ssi_log_level (SSI_LOG_LEVEL_DEFAULT),
	_terminate (false),
	_consumer_count (0),
	_async (false) {

	if (file) {
		if (!OptionList::LoadXML(file, &_options)) {
			OptionList::SaveXML(file, &_options);
		}
		_file = ssi_strcpy (file);
	}
		
	_consumer = new ConsumerBase *[MAX_CONSUMER];
	for (ssi_size_t i = 0; i < SSI_TRIGGER_MAX_CONSUMER; i++) {
		_consumer[i] = 0;
	}

	_frame = ssi_pcast (TheFramework, Factory::GetFramework ());

	_update_info.event = new ssi_event_t;
	ssi_event_init(*_update_info.event);
}
예제 #10
0
MyEventSender::MyEventSender(const ssi_char_t *file) {

	ssi_event_init(_event, SSI_ETYPE_FLOATS);
}