[UI] User can now force the audio encoding to be used

This commit is contained in:
emeric
2015-03-22 20:45:39 +01:00
parent 21c858562e
commit 0378c242b6
17 changed files with 223 additions and 58 deletions
+22 -3
View File
@@ -23,7 +23,7 @@ namespace Database {
// must be ordered
const std::vector<std::size_t>
User::audioBitrates =
User::audioBitrates =
{
64000,
96000,
@@ -38,7 +38,7 @@ const std::vector<std::size_t>
const std::vector<std::size_t>
User::videoBitrates =
User::videoBitrates =
{
256000,
512000,
@@ -47,12 +47,31 @@ const std::vector<std::size_t>
4096000,
8192000
};
const std::vector<AudioEncoding>
User::audioEncodings =
{
AudioEncoding::AUTO,
AudioEncoding::MP3,
AudioEncoding::OGA,
AudioEncoding::WEBMA,
AudioEncoding::FLA,
};
const std::vector<VideoEncoding>
User::videoEncodings =
{
VideoEncoding::AUTO,
};
User::User()
: _maxAudioBitrate(maxAudioBitrate),
_maxVideoBitrate(maxVideoBitrate),
_isAdmin(false),
_audioBitrate(defaultAudioBitrate),
_videoBitrate(defaultVideoBitrate)
_audioEncoding(AudioEncoding::AUTO),
_videoBitrate(defaultVideoBitrate),
_videoEncoding(VideoEncoding::AUTO)
{
}
+30 -2
View File
@@ -32,14 +32,34 @@ typedef Wt::Auth::Dbo::AuthInfo<User> AuthInfo;
class Playlist;
class User {
// User selectable audio formats
enum class AudioEncoding
{
AUTO,
MP3,
OGA,
WEBMA,
FLA,
};
enum class VideoEncoding
{
AUTO,
};
class User
{
public:
static const std::size_t MaxNameLength = 15;
// list of commonly used bitrates
// list of audio/video parameters
static const std::vector<std::size_t> audioBitrates;
static const std::vector<AudioEncoding> audioEncodings;
static const std::vector<std::size_t> videoBitrates;
static const std::vector<VideoEncoding> videoEncodings;
User();
@@ -53,14 +73,18 @@ class User {
// write
void setAdmin(bool admin) { _isAdmin = admin; }
void setAudioBitrate(std::size_t bitrate);
void setAudioEncoding(AudioEncoding encoding) { _audioEncoding = encoding; }
void setVideoBitrate(std::size_t bitrate);
void setVideoEncoding(VideoEncoding encoding) { _videoEncoding = encoding; }
void setMaxAudioBitrate(std::size_t bitrate);
void setMaxVideoBitrate(std::size_t bitrate);
// read
bool isAdmin() const {return _isAdmin;}
std::size_t getAudioBitrate() const;
AudioEncoding getAudioEncoding() const { return _audioEncoding;}
std::size_t getVideoBitrate() const;
VideoEncoding getVideoEncoding() const { return _videoEncoding;}
std::size_t getMaxAudioBitrate() const;
std::size_t getMaxVideoBitrate() const;
@@ -71,7 +95,9 @@ class User {
Wt::Dbo::field(a, _maxVideoBitrate, "max_video_bitrate");
Wt::Dbo::field(a, _isAdmin, "admin");
Wt::Dbo::field(a, _audioBitrate, "audio_bitrate");
Wt::Dbo::field(a, _audioEncoding, "audio_encoding");
Wt::Dbo::field(a, _videoBitrate, "video_bitrate");
Wt::Dbo::field(a, _videoEncoding, "video_encoding");
Wt::Dbo::hasMany(a, _playlists, Wt::Dbo::ManyToOne, "user");
}
@@ -90,7 +116,9 @@ class User {
// User defined settings
int _audioBitrate;
AudioEncoding _audioEncoding;
int _videoBitrate;
VideoEncoding _videoEncoding;
Wt::Dbo::collection< Wt::Dbo::ptr<Playlist> > _playlists;