virtual void MouseMoved(BPoint where, uint32 transit, const BMessage* dragMessage) { if (dragMessage != NULL) return; if ((transit != B_INSIDE_VIEW && transit != B_ENTERED_VIEW) || where.x > MinSize().width) { SetRating(fPermanentRating); return; } float hoverRating = _RatingForMousePos(where); SetRating(hoverRating); }
RatingsButton::RatingsButton(int star_size, int star_gap, NUX_FILE_LINE_DECL) : nux::ToggleButton(NUX_FILE_LINE_PARAM) , scale(1.0) , star_size_(star_size) , star_gap_(star_gap) , editable_(true) , rating_(0.0) , focused_star_(-1) { SetAcceptKeyNavFocusOnMouseDown(false); SetAcceptKeyNavFocusOnMouseEnter(true); mouse_up.connect(sigc::mem_fun(this, &RatingsButton::RecvMouseUp)); mouse_move.connect(sigc::mem_fun(this, &RatingsButton::RecvMouseMove)); mouse_drag.connect(sigc::mem_fun(this, &RatingsButton::RecvMouseDrag)); key_nav_focus_change.connect([this](nux::Area* area, bool has_focus, nux::KeyNavDirection direction) { if (has_focus && direction != nux::KEY_NAV_NONE) focused_star_ = 0; else if (!has_focus) focused_star_ = -1; QueueDraw(); }); key_nav_focus_activate.connect([this](nux::Area*) { SetRating(static_cast<float>(focused_star_+1)/NUM_STARS); }); key_down.connect(sigc::mem_fun(this, &RatingsButton::OnKeyDown)); scale.changed.connect(sigc::hide(sigc::mem_fun(this, &RatingsButton::QueueDraw))); }
SetRatingView() : RatingView("rate package view"), fPermanentRating(0.0f) { SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET)); SetRating(fPermanentRating); }
void RatingsButton::UpdateRatingToMouse(int x) { int width = NUM_STARS*star_size_.CP(scale) + (NUM_STARS-1)*star_gap_.CP(scale); float new_rating = (static_cast<float>(x) / width); // FIXME: change to * 2 once we decide to support also half-stars new_rating = ceil((NUM_STARS * 1) * new_rating) / (NUM_STARS * 1); new_rating = (new_rating > 1) ? 1 : ((new_rating < 0) ? 0 : new_rating); SetRating(new_rating); }
/* * asetbug * * Usage: asetbug handle rating won lost drew RD * * This command allows admins to set a user's statistics for Bughouse * games. The parameters are self-explanatory: rating, # of wins, * # of losses, # of draws, and ratings deviation. */ int com_asetbug(int p, param_list param) { int p1, connected; if (!FindPlayer(p, param[0].val.word, &p1, &connected)) return COM_OK; if (CheckPFlag(p1, PFLAG_REG)) { SetRating(p1, param, &player_globals.parray[p1].bug_stats); player_save(p1); pprintf(p, "Bughouse rating for %s modified.\n", player_globals.parray[p1].name); } else pprintf(p, "%s is unregistered. Can't modify rating.\n", player_globals.parray[p1].name); if (!connected) player_remove(p1); return COM_OK; }
/* * asetblitz * * Usage: asetblitz handle rating won lost drew RD * * This command allows admins to set a user's statistics for Blitz games. * The parameters are self-explanatory: rating, # of wins, # of losses, * # of draws, and ratings deviation. */ int com_asetzh(int p, param_list param) { int p1, connected; if (!FindPlayer(p, param[0].val.word, &p1, &connected)) return COM_OK; if (CheckPFlag(p1, PFLAG_REG)) { SetRating(p1, param, &player_globals.parray[p1].z_stats); player_save(p1); UpdateRank(TYPE_CRAZYHOUSE, player_globals.parray[p1].name, &player_globals.parray[p1].z_stats, player_globals.parray[p1].name); } else pprintf(p, "%s is unregistered. Can't modify rating.\n", player_globals.parray[p1].name); if (!connected) player_remove(p1); return COM_OK; }
ECode RatingBar::Init( /* [in] */ IContext* context, /* [in] */ IAttributeSet* attrs, /* [in] */ Int32 defStyle) { FAIL_RETURN(AbsSeekBar::Init(context, attrs, defStyle)); AutoPtr<ArrayOf<Int32> > attrIds = ArrayOf<Int32>::Alloc( const_cast<Int32 *>(R::styleable::RatingBar), ARRAY_SIZE(R::styleable::RatingBar)); AutoPtr<ITypedArray> a; FAIL_RETURN(context->ObtainStyledAttributes(attrs, attrIds, defStyle, 0, (ITypedArray**)&a)); Int32 numStars = 0; a->GetInt32(R::styleable::RatingBar_numStars, mNumStars, &numStars); Boolean res = FALSE; a->GetBoolean(R::styleable::RatingBar_isIndicator, !mIsUserSeekable, &res); SetIsIndicator(res); Float rating = 0, stepSize = 0; a->GetFloat(R::styleable::RatingBar_rating, -1, &rating); a->GetFloat(R::styleable::RatingBar_stepSize, -1, &stepSize); a->Recycle(); if(numStars > 0 && numStars != mNumStars) { SetNumStars(numStars); } if(stepSize > 0) { SetStepSize(stepSize); } else { SetStepSize(0.5f); } if(rating > 0) { SetRating(rating); } // A touch inside a star fill up to that fractional area (slightly more // than 1 so boundaries round up). mTouchProgressOffset = 1.1f; return NOERROR; }
void CVideoInfoTag::ParseNative(const TiXmlElement* movie, bool prioritise) { std::string value; float fValue; if (XMLUtils::GetString(movie, "title", value)) SetTitle(value); if (XMLUtils::GetString(movie, "originaltitle", value)) SetOriginalTitle(value); if (XMLUtils::GetString(movie, "showtitle", value)) SetShowTitle(value); if (XMLUtils::GetString(movie, "sorttitle", value)) SetSortTitle(value); const TiXmlElement* node = movie->FirstChildElement("ratings"); if (node) { for (const TiXmlElement* child = node->FirstChildElement("rating"); child != nullptr; child = child->NextSiblingElement("rating")) { CRating r; std::string name; if (child->QueryStringAttribute("name", &name) != TIXML_SUCCESS) name = "default"; XMLUtils::GetFloat(child, "value", r.rating); XMLUtils::GetInt(child, "votes", r.votes); int max_value = 10; if ((child->QueryIntAttribute("max", &max_value) == TIXML_SUCCESS) && max_value >= 1) r.rating = r.rating / max_value * 10; // Normalise the Movie Rating to between 1 and 10 SetRating(r, name); bool isDefault = false; if ((child->QueryBoolAttribute("default", &isDefault) == TIXML_SUCCESS) && isDefault) m_strDefaultRating = name; } } else if (XMLUtils::GetFloat(movie, "rating", fValue)) { CRating r(fValue, 0); if (XMLUtils::GetString(movie, "votes", value)) r.votes = StringUtils::ReturnDigits(value); int max_value = 10; const TiXmlElement* rElement = movie->FirstChildElement("rating"); if (rElement && (rElement->QueryIntAttribute("max", &max_value) == TIXML_SUCCESS) && max_value >= 1) r.rating = r.rating / max_value * 10; // Normalise the Movie Rating to between 1 and 10 SetRating(r, "default"); m_strDefaultRating = "default"; } XMLUtils::GetInt(movie, "userrating", m_iUserRating); const TiXmlElement *epbookmark = movie->FirstChildElement("episodebookmark"); if (epbookmark) { XMLUtils::GetDouble(epbookmark, "position", m_EpBookmark.timeInSeconds); const TiXmlElement *playerstate = epbookmark->FirstChildElement("playerstate"); if (playerstate) { const TiXmlElement *value = playerstate->FirstChildElement(); if (value) m_EpBookmark.playerState << *value; } } else XMLUtils::GetDouble(movie, "epbookmark", m_EpBookmark.timeInSeconds); int max_value = 10; const TiXmlElement* urElement = movie->FirstChildElement("userrating"); if (urElement && (urElement->QueryIntAttribute("max", &max_value) == TIXML_SUCCESS) && max_value >= 1) m_iUserRating = m_iUserRating / max_value * 10; // Normalise the user Movie Rating to between 1 and 10 XMLUtils::GetInt(movie, "top250", m_iTop250); XMLUtils::GetInt(movie, "season", m_iSeason); XMLUtils::GetInt(movie, "episode", m_iEpisode); XMLUtils::GetInt(movie, "track", m_iTrack); XMLUtils::GetInt(movie, "displayseason", m_iSpecialSortSeason); XMLUtils::GetInt(movie, "displayepisode", m_iSpecialSortEpisode); int after=0; XMLUtils::GetInt(movie, "displayafterseason",after); if (after > 0) { m_iSpecialSortSeason = after; m_iSpecialSortEpisode = 0x1000; // should be more than any realistic episode number } if (XMLUtils::GetString(movie, "outline", value)) SetPlotOutline(value); if (XMLUtils::GetString(movie, "plot", value)) SetPlot(value); if (XMLUtils::GetString(movie, "tagline", value)) SetTagLine(value); if (XMLUtils::GetString(movie, "runtime", value) && !value.empty()) m_duration = GetDurationFromMinuteString(StringUtils::Trim(value)); if (XMLUtils::GetString(movie, "mpaa", value)) SetMPAARating(value); XMLUtils::GetInt(movie, "playcount", m_playCount); XMLUtils::GetDate(movie, "lastplayed", m_lastPlayed); if (XMLUtils::GetString(movie, "file", value)) SetFile(value); if (XMLUtils::GetString(movie, "path", value)) SetPath(value); const TiXmlElement* uniqueid = movie->FirstChildElement("uniqueid"); if (uniqueid == nullptr) { if (XMLUtils::GetString(movie, "id", value)) SetUniqueID(value); } else { for (; uniqueid != nullptr; uniqueid = uniqueid->NextSiblingElement("uniqueid")) { if (uniqueid->FirstChild()) { if (uniqueid->QueryStringAttribute("type", &value) == TIXML_SUCCESS) SetUniqueID(uniqueid->FirstChild()->ValueStr(), value); else SetUniqueID(uniqueid->FirstChild()->ValueStr()); bool isDefault; if ((uniqueid->QueryBoolAttribute("default", &isDefault) == TIXML_SUCCESS) && isDefault) m_strDefaultUniqueID = value; } } } if (XMLUtils::GetString(movie, "filenameandpath", value)) SetFileNameAndPath(value); if (XMLUtils::GetDate(movie, "premiered", m_premiered)) { m_bHasPremiered = true; } else { int year; if (XMLUtils::GetInt(movie, "year", year)) SetYear(year); } if (XMLUtils::GetString(movie, "status", value)) SetStatus(value); if (XMLUtils::GetString(movie, "code", value)) SetProductionCode(value); XMLUtils::GetDate(movie, "aired", m_firstAired); if (XMLUtils::GetString(movie, "album", value)) SetAlbum(value); if (XMLUtils::GetString(movie, "trailer", value)) SetTrailer(value); if (XMLUtils::GetString(movie, "basepath", value)) SetBasePath(value); size_t iThumbCount = m_strPictureURL.m_url.size(); std::string xmlAdd = m_strPictureURL.m_xml; const TiXmlElement* thumb = movie->FirstChildElement("thumb"); while (thumb) { m_strPictureURL.ParseElement(thumb); if (prioritise) { std::string temp; temp << *thumb; xmlAdd = temp+xmlAdd; } thumb = thumb->NextSiblingElement("thumb"); } // prioritise thumbs from nfos if (prioritise && iThumbCount && iThumbCount != m_strPictureURL.m_url.size()) { rotate(m_strPictureURL.m_url.begin(), m_strPictureURL.m_url.begin()+iThumbCount, m_strPictureURL.m_url.end()); m_strPictureURL.m_xml = xmlAdd; } std::vector<std::string> genres(m_genre); if (XMLUtils::GetStringArray(movie, "genre", genres, prioritise, g_advancedSettings.m_videoItemSeparator)) SetGenre(genres); std::vector<std::string> country(m_country); if (XMLUtils::GetStringArray(movie, "country", country, prioritise, g_advancedSettings.m_videoItemSeparator)) SetCountry(country); std::vector<std::string> credits(m_writingCredits); if (XMLUtils::GetStringArray(movie, "credits", credits, prioritise, g_advancedSettings.m_videoItemSeparator)) SetWritingCredits(credits); std::vector<std::string> director(m_director); if (XMLUtils::GetStringArray(movie, "director", director, prioritise, g_advancedSettings.m_videoItemSeparator)) SetDirector(director); std::vector<std::string> showLink(m_showLink); if (XMLUtils::GetStringArray(movie, "showlink", showLink, prioritise, g_advancedSettings.m_videoItemSeparator)) SetShowLink(showLink); const TiXmlElement* namedSeason = movie->FirstChildElement("namedseason"); while (namedSeason != nullptr) { if (namedSeason->FirstChild() != nullptr) { int seasonNumber; std::string seasonName = namedSeason->FirstChild()->ValueStr(); if (!seasonName.empty() && namedSeason->Attribute("number", &seasonNumber) != nullptr) m_namedSeasons.insert(std::make_pair(seasonNumber, seasonName)); } namedSeason = namedSeason->NextSiblingElement("namedseason"); } // cast node = movie->FirstChildElement("actor"); if (node && node->FirstChild() && prioritise) m_cast.clear(); while (node) { const TiXmlNode *actor = node->FirstChild("name"); if (actor && actor->FirstChild()) { SActorInfo info; info.strName = actor->FirstChild()->Value(); if (XMLUtils::GetString(node, "role", value)) info.strRole = StringUtils::Trim(value); XMLUtils::GetInt(node, "order", info.order); const TiXmlElement* thumb = node->FirstChildElement("thumb"); while (thumb) { info.thumbUrl.ParseElement(thumb); thumb = thumb->NextSiblingElement("thumb"); } const char* clear=node->Attribute("clear"); if (clear && stricmp(clear,"true")) m_cast.clear(); m_cast.push_back(info); } node = node->NextSiblingElement("actor"); } // Pre-Jarvis NFO file: // <set>A set</set> if (XMLUtils::GetString(movie, "set", value)) SetSet(value); // Jarvis+: // <set><name>A set</name><overview>A set with a number of movies...</overview></set> node = movie->FirstChildElement("set"); if (node) { // No name, no set if (XMLUtils::GetString(node, "name", value)) { SetSet(value); if (XMLUtils::GetString(node, "overview", value)) SetSetOverview(value); } } std::vector<std::string> tags(m_tags); if (XMLUtils::GetStringArray(movie, "tag", tags, prioritise, g_advancedSettings.m_videoItemSeparator)) SetTags(tags); std::vector<std::string> studio(m_studio); if (XMLUtils::GetStringArray(movie, "studio", studio, prioritise, g_advancedSettings.m_videoItemSeparator)) SetStudio(studio); // artists std::vector<std::string> artist(m_artist); node = movie->FirstChildElement("artist"); if (node && node->FirstChild() && prioritise) artist.clear(); while (node) { const TiXmlNode* pNode = node->FirstChild("name"); const char* pValue=NULL; if (pNode && pNode->FirstChild()) pValue = pNode->FirstChild()->Value(); else if (node->FirstChild()) pValue = node->FirstChild()->Value(); if (pValue) { const char* clear=node->Attribute("clear"); if (clear && stricmp(clear,"true")==0) artist.clear(); std::vector<std::string> newArtists = StringUtils::Split(pValue, g_advancedSettings.m_videoItemSeparator); artist.insert(artist.end(), newArtists.begin(), newArtists.end()); } node = node->NextSiblingElement("artist"); } SetArtist(artist); node = movie->FirstChildElement("fileinfo"); if (node) { // Try to pull from fileinfo/streamdetails/[video|audio|subtitle] const TiXmlNode *nodeStreamDetails = node->FirstChild("streamdetails"); if (nodeStreamDetails) { const TiXmlNode *nodeDetail = NULL; while ((nodeDetail = nodeStreamDetails->IterateChildren("audio", nodeDetail))) { CStreamDetailAudio *p = new CStreamDetailAudio(); if (XMLUtils::GetString(nodeDetail, "codec", value)) p->m_strCodec = StringUtils::Trim(value); if (XMLUtils::GetString(nodeDetail, "language", value)) p->m_strLanguage = StringUtils::Trim(value); XMLUtils::GetInt(nodeDetail, "channels", p->m_iChannels); StringUtils::ToLower(p->m_strCodec); StringUtils::ToLower(p->m_strLanguage); m_streamDetails.AddStream(p); } nodeDetail = NULL; while ((nodeDetail = nodeStreamDetails->IterateChildren("video", nodeDetail))) { CStreamDetailVideo *p = new CStreamDetailVideo(); if (XMLUtils::GetString(nodeDetail, "codec", value)) p->m_strCodec = StringUtils::Trim(value); XMLUtils::GetFloat(nodeDetail, "aspect", p->m_fAspect); XMLUtils::GetInt(nodeDetail, "width", p->m_iWidth); XMLUtils::GetInt(nodeDetail, "height", p->m_iHeight); XMLUtils::GetInt(nodeDetail, "durationinseconds", p->m_iDuration); if (XMLUtils::GetString(nodeDetail, "stereomode", value)) p->m_strStereoMode = StringUtils::Trim(value); if (XMLUtils::GetString(nodeDetail, "language", value)) p->m_strLanguage = StringUtils::Trim(value); StringUtils::ToLower(p->m_strCodec); StringUtils::ToLower(p->m_strStereoMode); StringUtils::ToLower(p->m_strLanguage); m_streamDetails.AddStream(p); } nodeDetail = NULL; while ((nodeDetail = nodeStreamDetails->IterateChildren("subtitle", nodeDetail))) { CStreamDetailSubtitle *p = new CStreamDetailSubtitle(); if (XMLUtils::GetString(nodeDetail, "language", value)) p->m_strLanguage = StringUtils::Trim(value); StringUtils::ToLower(p->m_strLanguage); m_streamDetails.AddStream(p); } } m_streamDetails.DetermineBestStreams(); } /* if fileinfo */ const TiXmlElement *epguide = movie->FirstChildElement("episodeguide"); if (epguide) { // DEPRECIATE ME - support for old XML-encoded <episodeguide> blocks. if (epguide->FirstChild() && strnicmp("<episodeguide", epguide->FirstChild()->Value(), 13) == 0) m_strEpisodeGuide = epguide->FirstChild()->Value(); else { std::stringstream stream; stream << *epguide; m_strEpisodeGuide = stream.str(); } } // fanart const TiXmlElement *fanart = movie->FirstChildElement("fanart"); if (fanart) { // we prioritise mixed-mode nfo's with fanart set if (prioritise) { std::string temp; temp << *fanart; m_fanart.m_xml = temp+m_fanart.m_xml; } else m_fanart.m_xml << *fanart; m_fanart.Unpack(); } // resumePoint const TiXmlNode *resume = movie->FirstChild("resume"); if (resume) { XMLUtils::GetDouble(resume, "position", m_resumePoint.timeInSeconds); XMLUtils::GetDouble(resume, "total", m_resumePoint.totalTimeInSeconds); } XMLUtils::GetDateTime(movie, "dateadded", m_dateAdded); }
void CVideoInfoTag::Archive(CArchive& ar) { if (ar.IsStoring()) { ar << m_director; ar << m_writingCredits; ar << m_genre; ar << m_country; ar << m_strTagLine; ar << m_strPlotOutline; ar << m_strPlot; ar << m_strPictureURL.m_spoof; ar << m_strPictureURL.m_xml; ar << m_fanart.m_xml; ar << m_strTitle; ar << m_strSortTitle; ar << m_studio; ar << m_strTrailer; ar << (int)m_cast.size(); for (unsigned int i=0;i<m_cast.size();++i) { ar << m_cast[i].strName; ar << m_cast[i].strRole; ar << m_cast[i].order; ar << m_cast[i].thumb; ar << m_cast[i].thumbUrl.m_xml; } ar << m_strSet; ar << m_iSetId; ar << m_strSetOverview; ar << m_tags; ar << m_duration; ar << m_strFile; ar << m_strPath; ar << m_strMPAARating; ar << m_strFileNameAndPath; ar << m_strOriginalTitle; ar << m_strEpisodeGuide; ar << m_premiered; ar << m_bHasPremiered; ar << m_strStatus; ar << m_strProductionCode; ar << m_firstAired; ar << m_strShowTitle; ar << m_strAlbum; ar << m_artist; ar << m_playCount; ar << m_lastPlayed; ar << m_iTop250; ar << m_iSeason; ar << m_iEpisode; ar << (int)m_uniqueIDs.size(); for (const auto& i : m_uniqueIDs) { ar << i.first; ar << (i.first == m_strDefaultUniqueID); ar << i.second; } ar << (int)m_ratings.size(); for (const auto& i : m_ratings) { ar << i.first; ar << (i.first == m_strDefaultRating); ar << i.second.rating; ar << i.second.votes; } ar << m_iUserRating; ar << m_iDbId; ar << m_iFileId; ar << m_iSpecialSortSeason; ar << m_iSpecialSortEpisode; ar << m_iBookmarkId; ar << m_iTrack; ar << dynamic_cast<IArchivable&>(m_streamDetails); ar << m_showLink; ar << static_cast<int>(m_namedSeasons.size()); for (const auto& namedSeason : m_namedSeasons) { ar << namedSeason.first; ar << namedSeason.second; } ar << m_EpBookmark.playerState; ar << m_EpBookmark.timeInSeconds; ar << m_basePath; ar << m_parentPathID; ar << m_resumePoint.timeInSeconds; ar << m_resumePoint.totalTimeInSeconds; ar << m_iIdShow; ar << m_dateAdded.GetAsDBDateTime(); ar << m_type; ar << m_iIdSeason; } else { ar >> m_director; ar >> m_writingCredits; ar >> m_genre; ar >> m_country; ar >> m_strTagLine; ar >> m_strPlotOutline; ar >> m_strPlot; ar >> m_strPictureURL.m_spoof; ar >> m_strPictureURL.m_xml; ar >> m_fanart.m_xml; ar >> m_strTitle; ar >> m_strSortTitle; ar >> m_studio; ar >> m_strTrailer; int iCastSize; ar >> iCastSize; m_cast.reserve(iCastSize); for (int i=0;i<iCastSize;++i) { SActorInfo info; ar >> info.strName; ar >> info.strRole; ar >> info.order; ar >> info.thumb; std::string strXml; ar >> strXml; info.thumbUrl.ParseString(strXml); m_cast.push_back(info); } ar >> m_strSet; ar >> m_iSetId; ar >> m_strSetOverview; ar >> m_tags; ar >> m_duration; ar >> m_strFile; ar >> m_strPath; ar >> m_strMPAARating; ar >> m_strFileNameAndPath; ar >> m_strOriginalTitle; ar >> m_strEpisodeGuide; ar >> m_premiered; ar >> m_bHasPremiered; ar >> m_strStatus; ar >> m_strProductionCode; ar >> m_firstAired; ar >> m_strShowTitle; ar >> m_strAlbum; ar >> m_artist; ar >> m_playCount; ar >> m_lastPlayed; ar >> m_iTop250; ar >> m_iSeason; ar >> m_iEpisode; int iUniqueIDSize; ar >> iUniqueIDSize; for (int i = 0; i < iUniqueIDSize; ++i) { std::string value; std::string name; bool defaultUniqueID; ar >> name; ar >> defaultUniqueID; ar >> value; SetUniqueID(value, name); if (defaultUniqueID) m_strDefaultUniqueID = name; } int iRatingSize; ar >> iRatingSize; for (int i = 0; i < iRatingSize; ++i) { CRating rating; std::string name; bool defaultRating; ar >> name; ar >> defaultRating; ar >> rating.rating; ar >> rating.votes; SetRating(rating, name); if (defaultRating) m_strDefaultRating = name; } ar >> m_iUserRating; ar >> m_iDbId; ar >> m_iFileId; ar >> m_iSpecialSortSeason; ar >> m_iSpecialSortEpisode; ar >> m_iBookmarkId; ar >> m_iTrack; ar >> dynamic_cast<IArchivable&>(m_streamDetails); ar >> m_showLink; int namedSeasonSize; ar >> namedSeasonSize; for (int i = 0; i < namedSeasonSize; ++i) { int seasonNumber; ar >> seasonNumber; std::string seasonName; ar >> seasonName; m_namedSeasons.insert(std::make_pair(seasonNumber, seasonName)); } ar >> m_EpBookmark.playerState; ar >> m_EpBookmark.timeInSeconds; ar >> m_basePath; ar >> m_parentPathID; ar >> m_resumePoint.timeInSeconds; ar >> m_resumePoint.totalTimeInSeconds; ar >> m_iIdShow; std::string dateAdded; ar >> dateAdded; m_dateAdded.SetFromDBDateTime(dateAdded); ar >> m_type; ar >> m_iIdSeason; } }
void CVideoInfoTag::SetRating(float rating, int votes, const std::string& type /* = "" */, bool def /* = false */) { SetRating(CRating(rating, votes), type, def); }
bool EditMetadataDialog::Create() { if (!LoadWindowFromXML("video-ui.xml", "edit_metadata", this)) return false; bool err = false; UIUtilE::Assign(this, m_titleEdit, "title_edit", &err); UIUtilE::Assign(this, m_subtitleEdit, "subtitle_edit", &err); UIUtilE::Assign(this, m_playerEdit, "player_edit", &err); UIUtilE::Assign(this, m_seasonSpin, "season", &err); UIUtilE::Assign(this, m_episodeSpin, "episode", &err); UIUtilE::Assign(this, m_categoryList, "category_select", &err); UIUtilE::Assign(this, m_levelList, "level_select", &err); UIUtilE::Assign(this, m_childList, "child_select", &err); UIUtilE::Assign(this, m_browseCheck, "browse_check", &err); UIUtilE::Assign(this, m_watchedCheck, "watched_check", &err); UIUtilE::Assign(this, m_doneButton, "done_button", &err); if (err) { LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'edit_metadata'"); return false; } UIUtilW::Assign(this, m_coverartText, "coverart_text"); UIUtilW::Assign(this, m_screenshotText, "screenshot_text"); UIUtilW::Assign(this, m_bannerText, "banner_text"); UIUtilW::Assign(this, m_fanartText, "fanart_text"); UIUtilW::Assign(this, m_trailerText, "trailer_text"); UIUtilW::Assign(this, m_coverartButton, "coverart_button"); UIUtilW::Assign(this, m_bannerButton, "banner_button"); UIUtilW::Assign(this, m_fanartButton, "fanart_button"); UIUtilW::Assign(this, m_screenshotButton, "screenshot_button"); UIUtilW::Assign(this, m_trailerButton, "trailer_button"); UIUtilW::Assign(this, m_netBannerButton, "net_banner_button"); UIUtilW::Assign(this, m_netFanartButton, "net_fanart_button"); UIUtilW::Assign(this, m_netScreenshotButton, "net_screenshot_button"); UIUtilW::Assign(this, m_netCoverartButton, "net_coverart_button"); UIUtilW::Assign(this, m_taglineEdit, "tagline_edit"); UIUtilW::Assign(this, m_ratingEdit, "rating_edit"); UIUtilW::Assign(this, m_directorEdit, "director_edit"); UIUtilW::Assign(this, m_inetrefEdit, "inetref_edit"); UIUtilW::Assign(this, m_homepageEdit, "homepage_edit"); UIUtilW::Assign(this, m_plotEdit, "description_edit"); UIUtilW::Assign(this, m_yearSpin, "year_spin"); UIUtilW::Assign(this, m_userRatingSpin, "userrating_spin"); UIUtilW::Assign(this, m_lengthSpin, "length_spin"); UIUtilW::Assign(this, m_coverart, "coverart"); UIUtilW::Assign(this, m_screenshot, "screenshot"); UIUtilW::Assign(this, m_banner, "banner"); UIUtilW::Assign(this, m_fanart, "fanart"); fillWidgets(); BuildFocusList(); connect(m_titleEdit, SIGNAL(valueChanged()), SLOT(SetTitle())); m_titleEdit->SetMaxLength(128); connect(m_subtitleEdit, SIGNAL(valueChanged()), SLOT(SetSubtitle())); m_subtitleEdit->SetMaxLength(0); connect(m_playerEdit, SIGNAL(valueChanged()), SLOT(SetPlayer())); if (m_taglineEdit) { connect(m_taglineEdit, SIGNAL(valueChanged()), SLOT(SetTagline())); m_taglineEdit->SetMaxLength(255); } if (m_ratingEdit) { connect(m_ratingEdit, SIGNAL(valueChanged()), SLOT(SetRating())); m_ratingEdit->SetMaxLength(128); } if (m_directorEdit) { connect(m_directorEdit, SIGNAL(valueChanged()), SLOT(SetDirector())); m_directorEdit->SetMaxLength(128); } if (m_inetrefEdit) connect(m_inetrefEdit, SIGNAL(valueChanged()), SLOT(SetInetRef())); if (m_homepageEdit) { connect(m_homepageEdit, SIGNAL(valueChanged()), SLOT(SetHomepage())); m_homepageEdit->SetMaxLength(0); } if (m_plotEdit) { connect(m_plotEdit, SIGNAL(valueChanged()), SLOT(SetPlot())); m_plotEdit->SetMaxLength(0); } connect(m_seasonSpin, SIGNAL(LosingFocus()), SLOT(SetSeason())); connect(m_episodeSpin, SIGNAL(LosingFocus()), SLOT(SetEpisode())); if (m_yearSpin) connect(m_yearSpin, SIGNAL(LosingFocus()), SLOT(SetYear())); if (m_userRatingSpin) connect(m_userRatingSpin, SIGNAL(LosingFocus()), SLOT(SetUserRating())); if (m_lengthSpin) connect(m_lengthSpin, SIGNAL(LosingFocus()), SLOT(SetLength())); connect(m_doneButton, SIGNAL(Clicked()), SLOT(SaveAndExit())); // Find Artwork locally if (m_coverartButton) connect(m_coverartButton, SIGNAL(Clicked()), SLOT(FindCoverArt())); if (m_bannerButton) connect(m_bannerButton, SIGNAL(Clicked()), SLOT(FindBanner())); if (m_fanartButton) connect(m_fanartButton, SIGNAL(Clicked()), SLOT(FindFanart())); if (m_screenshotButton) connect(m_screenshotButton, SIGNAL(Clicked()), SLOT(FindScreenshot())); // Find Artwork on the Internet if (m_netCoverartButton) connect(m_netCoverartButton, SIGNAL(Clicked()), SLOT(FindNetCoverArt())); if (m_netBannerButton) connect(m_netBannerButton, SIGNAL(Clicked()), SLOT(FindNetBanner())); if (m_netFanartButton) connect(m_netFanartButton, SIGNAL(Clicked()), SLOT(FindNetFanart())); if (m_netScreenshotButton) connect(m_netScreenshotButton, SIGNAL(Clicked()), SLOT(FindNetScreenshot())); if (m_trailerButton) connect(m_trailerButton, SIGNAL(Clicked()), SLOT(FindTrailer())); connect(m_browseCheck, SIGNAL(valueChanged()), SLOT(ToggleBrowse())); connect(m_watchedCheck, SIGNAL(valueChanged()), SLOT(ToggleWatched())); connect(m_childList, SIGNAL(itemSelected(MythUIButtonListItem*)), SLOT(SetChild(MythUIButtonListItem*))); connect(m_levelList, SIGNAL(itemSelected(MythUIButtonListItem*)), SLOT(SetLevel(MythUIButtonListItem*))); connect(m_categoryList, SIGNAL(itemSelected(MythUIButtonListItem*)), SLOT(SetCategory(MythUIButtonListItem*))); connect(m_categoryList, SIGNAL(itemClicked(MythUIButtonListItem*)), SLOT(NewCategoryPopup())); return true; }
// Sets schedule usage for the passed period and slot numbers void SquadronClass::ScheduleAircraft (Flight fl, MissionRequest mis) { int i,j,sn,nv,nr,role,got=0; //TJL 10/30/03 int want_alert = 0; VehicleClassDataType *vc; role = MissionData[mis->mission].skill; if (MissionData[mis->mission].flags & AMIS_DONT_USE_AC) { // Just fill up our slots sequentially for (i=0; i<VEHICLES_PER_UNIT; i++) { if (mis->aircraft < 12) nv = 2; else nv = 3; if (nv + got > mis->aircraft) nv = mis->aircraft-got; fl->SetNumVehicles(i,nv); got += nv; } memset(fl->slots,255,PILOTS_PER_FLIGHT); // Fake got for pilot assignments if (got > 4) got = 4; } else { // schedule the aircraft for (sn=0; sn<PILOTS_PER_FLIGHT; sn++) { if (mis->slots[sn] < VEHICLES_PER_UNIT) { // KCK: Add turn-around time to final block to determine when // aircraft will be available next int finalBlock = mis->final_block + (AIRCRAFT_TURNAROUND_TIME_MINUTES / MIN_PLAN_AIR); if (finalBlock >= ATM_MAX_CYCLES) finalBlock = ATM_MAX_CYCLES; for (j=mis->start_block; j<=mis->final_block; j++) SetSchedule(mis->slots[sn], (1 << j)); } } fl->SetRoster(0); for (i=0; i<PILOTS_PER_FLIGHT; i++) { if (mis->slots[i] < VEHICLES_PER_UNIT) { nv = GetNumVehicles(mis->slots[i]); if (nv+got > mis->aircraft) nv = mis->aircraft-got; got += nv; fl->slots[i] = mis->slots[i]; // KCK NOTE: doing this is safe, since flight isn't inserted yet. fl->SetNumVehicles(fl->slots[i], nv); SetAssigned (GetAssigned() + nv); // Lower score for this role, to prevent repicks of same mission // KCK NOTE: this is local only - other machines will not get this data nr = FloatToInt32(0.75F * GetRating(role)) + 1; if (nr < 1) nr = 1; SetRating(role, nr); } } } // Set aircraft availablity bits for (i=0; i<PILOTS_PER_FLIGHT; i++) { if (i<got) fl->plane_stats[i] = AIRCRAFT_AVAILABLE; else fl->plane_stats[i] = AIRCRAFT_NOT_ASSIGNED; fl->MakeFlightDirty (DIRTY_PLANE_STATS, DDP[120].priority); // fl->MakeFlightDirty (DIRTY_PLANE_STATS, SEND_RELIABLE); fl->pilots[i] = NO_PILOT; } fl->last_player_slot = PILOTS_PER_FLIGHT; // Large flights (i.e.: transport 'copters) only use 4 pilots if (got > PILOTS_PER_FLIGHT) got = PILOTS_PER_FLIGHT; // Find and fill an empty takeoff slot at this airbase fl->SetUnitAirbase(GetUnitAirbaseID()); // Name this flight vc = GetVehicleClassData(fl->GetVehicleID(0)); fl->callsign_id = vc->CallsignIndex; GetCallsignID(&fl->callsign_id,&fl->callsign_num,vc->CallsignSlots); if (fl->callsign_num) SetCallsignID(fl->callsign_id,fl->callsign_num); }
RatingField::RatingField(float rating) : fRating(0.0f) { SetRating(rating); }
void SetPermanentRating(float rating) { fPermanentRating = rating; SetRating(rating); }