diff options
Diffstat (limited to 'rbutil/rbutilqt/encoders.cpp')
-rw-r--r-- | rbutil/rbutilqt/encoders.cpp | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/rbutil/rbutilqt/encoders.cpp b/rbutil/rbutilqt/encoders.cpp index 1399ddff75..bb5474ce4d 100644 --- a/rbutil/rbutilqt/encoders.cpp +++ b/rbutil/rbutilqt/encoders.cpp | |||
@@ -26,56 +26,55 @@ | |||
26 | 26 | ||
27 | static QMap<QString,QString> encoderList; | 27 | static QMap<QString,QString> encoderList; |
28 | static QMap<QString,EncBase*> encoderCache; | 28 | static QMap<QString,EncBase*> encoderCache; |
29 | 29 | ||
30 | void initEncoderList() | 30 | |
31 | // initialize list of encoders | ||
32 | void initEncodernamesList() | ||
31 | { | 33 | { |
32 | encoderList["rbspeex"] = "Rockbox Speex Encoder"; | 34 | encoderList["rbspeex"] = "Rockbox Speex Encoder"; |
33 | encoderList["lame"] = "Lame Mp3 Encoder"; | 35 | encoderList["lame"] = "Lame Mp3 Encoder"; |
34 | } | 36 | } |
35 | 37 | ||
36 | // function to get a specific encoder | 38 | |
37 | EncBase* getEncoder(QString encname) | 39 | // get nice name for a specific encoder |
40 | QString getEncoderName(QString encoder) | ||
41 | { | ||
42 | if(encoderList.isEmpty()) | ||
43 | initEncodernamesList(); | ||
44 | return encoderList.value(encoder); | ||
45 | } | ||
46 | |||
47 | |||
48 | // get a specific encoder object | ||
49 | EncBase* getEncoder(QString encoder) | ||
38 | { | 50 | { |
39 | // init list if its empty | ||
40 | if(encoderList.count() == 0) initEncoderList(); | ||
41 | |||
42 | QString encoder = encoderList.key(encname); | ||
43 | |||
44 | // check cache | 51 | // check cache |
45 | if(encoderCache.contains(encoder)) | 52 | if(encoderCache.contains(encoder)) |
46 | return encoderCache.value(encoder); | 53 | return encoderCache.value(encoder); |
47 | 54 | ||
48 | EncBase* enc; | 55 | EncBase* enc; |
49 | if(encoder == "rbspeex") | 56 | if(encoder == "rbspeex") |
50 | { | 57 | { |
51 | enc = new EncRbSpeex(); | 58 | enc = new EncRbSpeex(); |
52 | encoderCache[encoder] = enc; | 59 | encoderCache[encoder] = enc; |
53 | return enc; | 60 | return enc; |
54 | } | 61 | } |
55 | else if(encoder == "lame") | 62 | else if(encoder == "lame") |
56 | { | 63 | { |
57 | enc = new EncExes(encoder); | 64 | enc = new EncExes(encoder); |
58 | encoderCache[encoder] = enc; | 65 | encoderCache[encoder] = enc; |
59 | return enc; | 66 | return enc; |
60 | } | 67 | } |
61 | else | 68 | else |
62 | return NULL; | 69 | return NULL; |
63 | } | 70 | } |
64 | 71 | ||
65 | // get the list of encoders, nice names | 72 | |
66 | QStringList getEncoderList() | 73 | QStringList getEncoderList() |
67 | { | 74 | { |
68 | // init list if its empty | 75 | if(encoderList.isEmpty()) |
69 | if(encoderList.count() == 0) initEncoderList(); | 76 | initEncodernamesList(); |
70 | 77 | return encoderList.keys(); | |
71 | QStringList encList; | ||
72 | QMapIterator<QString, QString> i(encoderList); | ||
73 | while (i.hasNext()) { | ||
74 | i.next(); | ||
75 | encList << i.value(); | ||
76 | } | ||
77 | |||
78 | return encList; | ||
79 | } | 78 | } |
80 | 79 | ||
81 | 80 | ||