summaryrefslogtreecommitdiff
path: root/mg_content.c
diff options
context:
space:
mode:
Diffstat (limited to 'mg_content.c')
-rw-r--r--mg_content.c91
1 files changed, 55 insertions, 36 deletions
diff --git a/mg_content.c b/mg_content.c
index 5e8ecf6..74b9fce 100644
--- a/mg_content.c
+++ b/mg_content.c
@@ -12,42 +12,47 @@
#include <stdio.h>
#include "i18n.h"
#include "mg_selection.h"
-#include "vdr_setup.h"
+#include "mg_setup.h"
#include "mg_tools.h"
-string
-mgContentItem::getKeyId(mgKeyTypes kt)
-{
- if (m_id<0)
- return "";
- switch (kt) {
- case keyGenres:
- case keyGenre1:
- case keyGenre2:
- case keyGenre3: return m_genre1_id;
- default: return getKeyValue(kt);
- }
-}
-
-string
-mgContentItem::getKeyValue(mgKeyTypes kt)
-{
- if (m_id<0)
- return "";
- switch (kt) {
- case keyGenres:
- case keyGenre1:
- case keyGenre2:
- case keyGenre3: return getGenre();
- case keyArtist: return getArtist();
- case keyAlbum: return getAlbum();
- case keyYear: return string(ltos(getYear()));
- case keyDecade: return string(ltos(int((getYear() % 100) / 10) * 10));
- case keyTitle: return getTitle();
- case keyTrack: return getTitle();
- default: return "";
+mgSelItem*
+mgContentItem::getKeyItem(mgKeyTypes kt)
+{
+ string val;
+ string id;
+ if (m_trackid>=0)
+ {
+ switch (kt) {
+ case keyGenres:
+ case keyGenre1:
+ case keyGenre2:
+ case keyGenre3: val = getGenre();id=m_genre1_id;break;
+ case keyArtist: val = id = getArtist();break;
+ case keyArtistABC: val = id = getArtist()[0];break;
+ case keyAlbum: val = id = getAlbum();break;
+ case keyYear: val = id = string(ltos(getYear()));break;
+ case keyDecade: val = id = string(ltos(int((getYear() % 100) / 10) * 10));break;
+ case keyTitle: val = id = getTitle();break;
+ case keyTitleABC: val = id = getTitle()[0];break;
+ case keyTrack: val = id = getTitle();break;
+ case keyLanguage: val = getLanguage();id=m_language_id ; break;
+ case keyRating: val = id = getRating();break;
+ case keyFolder1:
+ case keyFolder2:
+ case keyFolder3:
+ case keyFolder4:
+ {
+ char *folders[4];
+ char *fbuf=SeparateFolders(m_mp3file.c_str(),folders,4);
+ val = id = folders[int(kt)-int(keyFolder1)];
+ free(fbuf);
+ break;
+ }
+ default: return new mgSelItem;
+ }
}
+ return new mgSelItem(val,id);
}
@@ -66,6 +71,11 @@ string mgContentItem::getGenre () const
}
+string mgContentItem::getLanguage() const
+{
+ return m_language;
+}
+
string mgContentItem::getBitrate () const
{
return m_bitrate;
@@ -115,12 +125,12 @@ int mgContentItem::getChannels () const
mgContentItem::mgContentItem ()
{
- m_id = -1;
+ m_trackid = -1;
}
mgContentItem::mgContentItem (const mgContentItem* c)
{
- m_id = c->m_id;
+ m_trackid = c->m_trackid;
m_title = c->m_title;
m_mp3file = c->m_mp3file;
m_artist = c->m_artist;
@@ -129,6 +139,8 @@ mgContentItem::mgContentItem (const mgContentItem* c)
m_genre2_id = c->m_genre2_id;
m_genre1 = c->m_genre1;
m_genre2 = c->m_genre2;
+ m_language = c->m_language;
+ m_language_id = c->m_language_id;
m_bitrate = c->m_bitrate;
m_year = c->m_year;
m_rating = c->m_rating;
@@ -139,7 +151,7 @@ mgContentItem::mgContentItem (const mgContentItem* c)
static char *mg_readline(FILE *f)
{
- static char buffer[MAXPARSEBUFFER];
+ static char buffer[10000];
if (fgets(buffer, sizeof(buffer), f) > 0) {
int l = strlen(buffer) - 1;
if (l >= 0 && buffer[l] == '\n')
@@ -186,7 +198,7 @@ mgContentItem::getSourceFile(bool AbsolutePath) const
mgContentItem::mgContentItem (const mgSelection* sel,const MYSQL_ROW row)
{
- m_id = atol (row[0]);
+ m_trackid = atol (row[0]);
if (row[1])
m_title = row[1];
else
@@ -241,5 +253,12 @@ mgContentItem::mgContentItem (const mgSelection* sel,const MYSQL_ROW row)
m_channels = atol (row[12]);
else
m_channels = 0;
+ if (row[13])
+ {
+ m_language_id = row[13];
+ m_language = sel->value(keyLanguage,row[13]);
+ }
+ else
+ m_language_id = "NULL";
};