void Painter::text(ITool &font, ITool &pen, ITool &brush, ssi_point_t position, const ssi_char_t *text, TEXT_ALIGN_HORZ::List align_horz, TEXT_ALIGN_VERT::List align_vert) { ::SetTextColor((HDC)_device, pen.getColor()); ::SetBkMode((HDC)_device, OPAQUE); ::SetBkColor((HDC)_device, brush.getColor()); ::SelectObject((HDC)_device, font.getHandle()); unsigned int align = 0; switch (align_horz) { case TEXT_ALIGN_HORZ::LEFT: align |= TA_LEFT; break; case TEXT_ALIGN_HORZ::RIGHT: align |= TA_RIGHT; break; case TEXT_ALIGN_HORZ::CENTER: align |= TA_CENTER; break; } switch (align_vert) { case TEXT_ALIGN_VERT::BOTTOM: align |= TA_BOTTOM; break; case TEXT_ALIGN_VERT::TOP: align |= TA_TOP; break; case TEXT_ALIGN_VERT::CENTER: align |= TA_BASELINE; break; } ::SetTextAlign((HDC) _device, align); ::TextOut((HDC)_device, _area.left + position.x, _area.top + position.y, text, ssi_strlen (text)); }
ssi_size_t Evaluation::cutString(const ssi_char_t *str, ssi_size_t n_cut_max, ssi_char_t *cut) { if (n_cut_max == 0 || !cut) { return 0; } if (!str || str[0] == '\0') { cut[0] = '\0'; return 0; } ssi_size_t n_str = ssi_strlen(str); if (n_cut_max > n_str) { ssi_strcpy(cut, str); return n_str; } ssi_size_t n_front = (n_cut_max-1) / 2; ssi_size_t n_back = (n_cut_max - 1) - n_front; for (ssi_size_t i = 0; i < n_front; i++) { cut[i] = str[i]; } for (ssi_size_t i = 0; i < n_back; i++) { cut[n_cut_max-2-i] = str[n_str-1-i]; } cut[n_cut_max-1] = '\0'; return n_cut_max-1; }
void Window::setTitle(const ssi_char_t *title) { Thread::setName(title); ssi_strcpy(_title, title); if (_hWnd) { ::SendMessage((HWND)_hWnd, WM_SETTEXT, ssi_strlen(title) + 1, (LPARAM)title); } }
void SocketEventReader::message (const char *from, const ssi_char_t *id, osc_int32 time, osc_int32 dur, const ssi_char_t *msg) { if (_elistener) { _event_string.time = _frame->GetElapsedTimeMs (); _event_string.dur = dur; ssi_event_adjust (_event_string, ssi_strlen (msg) + 1); strcpy (_event_string.ptr, msg); _elistener->update (_event_string); } }
void SocketEventReader::run () { int result = 0; if (_options.osc) { result = _socket_osc->recv (this, _options.timeout); } else { result = _socket->recv (_buffer, _options.size, _options.timeout); if (result > 0) { // send event if (_elistener) { _event_string.time = _frame->GetElapsedTimeMs (); _event_string.dur = 0; ssi_event_adjust (_event_string, ssi_strlen (_buffer) + 1); strcpy (_event_string.ptr, _buffer); _elistener->update (_event_string); } } } SSI_DBG (SSI_LOG_LEVEL_DEBUG, "received %d bytes", result); };
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; }