40 return (((
float)(rating)) / 2);
60 return (
count ? (
static_cast <float> (
total) /
static_cast <float> (
count * 2))
67 return (
count ? (
static_cast <double> (
total) /
static_cast <double> (
count))
68 :
static_cast <double> (default_value));
71 inline unsigned sum ()
const {
return total; };
93 bool tryGetPrecise (
const char *s,
float *rating)
const noexcept;
94 inline bool tryGetPrecise (
const std::string &s,
float *rating)
const noexcept {
Class to map between enumerations and their text values.
Definition: lookup.h:30
A class to average ratings.
Definition: ratings.h:44
float operator()(Rating default_value=Rating::UNRATED)
Return the average as a star-rating float.
Definition: ratings.h:59
unsigned count
Number of ratings being averaged.
Definition: ratings.h:45
unsigned total
Total of enumeration values being averaged.
Definition: ratings.h:46
unsigned sum() const
Retrieve the sum of the ratings in the average.
Definition: ratings.h:71
unsigned items() const
Retrieve the number of items included in the average.
Definition: ratings.h:73
void add(Rating rating)
Add mote data to the average.
Definition: ratings.h:50
double rating(Rating default_value=Rating::UNRATED)
Return the average as a rating-range double.
Definition: ratings.h:66
String to rating conversion.
Definition: ratings.h:89
LookupTable< Rating, RATING_LOOKUP > base_class
Definition: ratings.h:90
float getPrecise(const char *s) const
Get a precise rating, accepting either a rating string or number.
Definition: ratings.cpp:81
float getPrecise(const std::string &s) const
Definition: ratings.h:98
bool tryGetPrecise(const char *s, float *rating) const noexcept
Retrieve the enumerator corresponding to text name.
Definition: ratings.cpp:63
bool tryGetPrecise(const std::string &s, float *rating) const noexcept
Definition: ratings.h:94
virtual const RATING_LOOKUP * get(const char *s) const noexcept override
Retrieve the enumerator corresponding to text name.
Definition: ratings.cpp:45
constexpr float ratingAsFloat(Rating rating)
Convert from a ratings enumeration to a floating-point star-rating.
Definition: ratings.h:39
Rating
Discrete ratings values.
Definition: ratings.h:24
@ LACKLUSTER
2.5 star, 5 enum
@ REPUGNANT
0.5 star, 1 enum
@ EXCELLENT
4.5 star, 9 enum
@ UNRATED
Unrated/no rating found, 0 enum.
Rating floatToRating(float rating)
Convert a star-rating to a ratings enumeration.
Definition: ratings.cpp:92
const RatingLookup RATINGS
RatingScheme
Rules of who may rate an object.
Definition: ratings.h:17
@ INDIVIDUAL
Each user gets a private rating for this song.
@ NOBODY
Ratings are unsupported.
@ OWNER
One rating/song, so only ratable by owner.
struct rating_lookup_t RATING_LOOKUP
const char * name
Definition: ratings.h:82
Rating value
Definition: ratings.h:81