// SummItem void SummItem::updateUnit(SummUnit& unit) { this->unit = unit; vec3 col = icol!=0 ? *icol : colourHash(unit.str); this->colour = vec4(col, 1.0f); char buff[1024]; if(unit.truncated) { if(showcount) { snprintf(buff, 1024, "%03d %s (%d)", unit.refs, unit.str.c_str(), (int) unit.expanded.size()); } else { snprintf(buff, 1024, "%s (%d)", unit.str.c_str(), (int) unit.expanded.size()); } } else { if(showcount) { snprintf(buff, 1024, "%03d %s", unit.refs, unit.str.c_str()); } else { snprintf(buff, 1024, "%s", unit.str.c_str()); } } this->displaystr = std::string(buff); this->width = font.getWidth(displaystr); }
void Logstalgia::addBall(LogEntry* le, float start_offset) { gHighscore++; std::string hostname = le->hostname; std::string pageurl = le->path; //find appropriate summarizer for url int nogroups = summGroups.size(); Summarizer* pageSummarizer= 0; for(int i=0;i<nogroups;i++) { if(summGroups[i]->supportedString(pageurl)) { pageSummarizer = summGroups[i]; break; } } if(pageSummarizer==0) return; Paddle* entry_paddle = 0; if(gPaddleMode > PADDLE_SINGLE) { std::string paddle_token = (gPaddleMode == PADDLE_VHOST) ? le->vhost : le->pid; entry_paddle = paddles[paddle_token]; if(entry_paddle == 0) { vec2f paddle_pos = vec2f(display.width-(display.width/3), rand() % display.height); Paddle* paddle = new Paddle(paddle_pos, paddle_colour, paddle_token); entry_paddle = paddles[paddle_token] = paddle; } } else { entry_paddle = paddles[""]; } if(gHideURLPrefix) pageurl = filterURLHostname(pageurl); float dest_y = pageSummarizer->getMiddlePosY(pageurl); float pos_y = ipSummarizer->getMiddlePosY(hostname); float start_x = -(entry_paddle->getX()/ 5.0f); vec2f ball_start = vec2f(start_x, pos_y); vec2f ball_dest = vec2f(entry_paddle->getX(), dest_y); const std::string& match = ipSummarizer->getBestMatchStr(hostname); vec3f colour = pageSummarizer->isColoured() ? pageSummarizer->getColour() : colourHash(match); RequestBall* ball = new RequestBall(le, &fontMedium, balltex, colour, ball_start, ball_dest, simu_speed); ball->setElapsed( start_offset ); balls.push_back(ball); }
vec3f RCommit::fileColour(std::string filename) { size_t pos = filename.rfind('.'); if(pos != std::string::npos && pos+1<filename.size()) { std::string file_ext = filename.substr(pos+1); return colourHash(file_ext); } else { return vec3f(1.0, 1.0, 1.0); } }
vec3 RCommit::fileColour(const std::string& filename) { size_t slash = filename.rfind('/'); size_t dot = filename.rfind('.'); if(dot != std::string::npos && dot+1<filename.size() && (slash == std::string::npos || slash < dot)) { std::string file_ext = filename.substr(dot+1); return colourHash(file_ext); } else { return vec3(1.0, 1.0, 1.0); } }
void Logstalgia::addBall(LogEntry* le, float start_offset) { //find appropriate summarizer for url Summarizer* groupSummarizer = getGroupSummarizer(le); if(!groupSummarizer) return; Paddle* entry_paddle = 0; if(settings.paddle_mode > PADDLE_SINGLE) { std::string paddle_token = (settings.paddle_mode == PADDLE_VHOST) ? le->vhost : le->pid; entry_paddle = paddles[paddle_token]; if(entry_paddle == 0) { vec2 paddle_pos = vec2(paddle_x - 20, rand() % display.height); Paddle* paddle = new Paddle(paddle_pos, paddle_colour, paddle_token, fontSmall); entry_paddle = paddles[paddle_token] = paddle; } } else { entry_paddle = paddles[""]; } std::string hostname = le->hostname; std::string pageurl = le->path; if(settings.hide_url_prefix) pageurl = filterURLHostname(pageurl); float dest_y = groupSummarizer->getMiddlePosY(pageurl); float pos_y = ipSummarizer->getMiddlePosY(hostname); float start_x = -(entry_paddle->getX() * settings.pitch_speed * start_offset); //debugLog("start_offset %.2f : start_x = %.2f (paddle_x %.2f, pitch_speed %.2f)", start_offset, start_x, entry_paddle->getX(), settings.pitch_speed); vec2 ball_start = vec2(start_x, pos_y); vec2 ball_dest = vec2(entry_paddle->getX(), dest_y); const std::string& match = ipSummarizer->getBestMatchStr(hostname); vec3 colour = groupSummarizer->isColoured() ? groupSummarizer->getColour() : colourHash(match); RequestBall* ball = new RequestBall(le, &fontMedium, balltex, colour, ball_start, ball_dest); balls.push_back(ball); }
void RUser::assignIcon() { struct stat fileinfo; usercol = colourHash(name); bool image_assigned = false; if(gGourceSettings.user_image_dir.size() > 0) { //try thier username // TODO: replace with map of name -> image of all pngs and jpgs in directory //gGourceSettings.user_image_dir + name + std::string(".jpg"); std::map<std::string, std::string>::iterator findimage; findimage = gGourceSettings.user_image_map.find(name); //do we have this image if(findimage != gGourceSettings.user_image_map.end()) { std::string imagefile = findimage->second; if(!gGourceSettings.colour_user_images) usercol = vec3f(1.0, 1.0, 1.0); icon = texturemanager.grabFile(imagefile); setHighlighted(true); image_assigned = true; } } //nope if(!image_assigned) { if(gGourceSettings.default_user_image.size() > 0) { if(!gGourceSettings.colour_user_images) usercol = vec3f(1.0, 1.0, 1.0); icon = texturemanager.grabFile(gGourceSettings.default_user_image); } else { icon = texturemanager.grab("no_photo.png"); } } usercol = usercol * 0.6 + vec3f(1.0, 1.0, 1.0) * 0.4; usercol *= 0.9; }
Paddle::Paddle(vec2 pos, vec4 colour, std::string token, FXFont font) { this->token = token; // TODO: fix colouring // this->token_colour = token.size() > 0 ? colourHash2(token) : vec3(0.5,0.5,0.5); this->token_colour = token.size() > 0 ? colourHash(token) : vec3(0.5,0.5,0.5); this->pos = pos; this->lastcol = colour; this->default_colour = colour; this->colour = lastcol; this->width = 10; this->height = 50; this->target = 0; font.alignTop(true); font.alignRight(true); font.dropShadow(true); this->font = font; dest_y = -1; }
void RFile::colourize() { file_colour = ext.size() ? colourHash(ext) : vec3(1.0f, 1.0f, 1.0f); }
void FileKeyEntry::colourize() { colour = ext.empty() ? vec3(1.0f, 1.0f, 1.0f) : colourHash(ext); }