summaryrefslogtreecommitdiff
path: root/mg_media.c
diff options
context:
space:
mode:
Diffstat (limited to 'mg_media.c')
-rw-r--r--mg_media.c165
1 files changed, 118 insertions, 47 deletions
diff --git a/mg_media.c b/mg_media.c
index 26d8b8f..be86621 100644
--- a/mg_media.c
+++ b/mg_media.c
@@ -3,10 +3,10 @@
* \brief Top level access to media in vdr plugin muggle
* for the vdr muggle plugindatabase
********************************************************************
- * \version $Revision: 1.1 $
- * \date $Date: 2004/02/01 18:22:53 $
+ * \version $Revision: 1.2 $
+ * \date $Date: 2004/02/02 02:01:11 $
* \author Ralf Klueber, Lars von Wedel, Andreas Kellner
- * \author file owner: $Author: LarsAC $
+ * \author file owner: $Author: MountainMan $
*
*
*/
@@ -22,78 +22,133 @@
using namespace std;
-mgFilters::mgFilters()
+mgFilter::mgFilter(const char* name)
{
+ m_name = strdup(name);
}
-
-mgFilters::~mgFilters()
+mgFilter::~mgFilter()
{
+ free(m_name);
}
-int mgFilters::getNumFilters()
+const char* mgFilter::getName()
{
- return 0;
+ return m_name;
}
-string mgFilters::getName(int filter)
+mgFilterInt::mgFilterInt(const char *name, int value, int min, int max)
+ : mgFilter(name)
+{
+ m_type = INT;
+ m_intval = value;
+ m_min = min;
+ m_max = max;
+}
+mgFilterInt::~mgFilterInt()
{
- return 0;
}
-int mgFilters::getValue(int filter)
+int mgFilterInt::getVal()
{
- return 0;
+ return m_intval;
}
+string mgFilterInt::getStrVal()
+{
+ char buffer[20];
+ sprintf(buffer, "%d", m_intval);
-mgFilters::filterType mgFilters::getType(int filter)
+ return (string)buffer;
+}
+int mgFilterInt::getMin()
{
- return NUMBER;
+ return m_min;
+}
+int mgFilterInt::getMax()
+{
+ return m_max;
}
-// for NUMBER filters
+void mgFilterInt::setVal(int value)
+{
+ m_intval = value;
+}
-int mgFilters::getMin(int filter)
+mgFilterString::mgFilterString(const char *name, const char* value)
+ : mgFilter(name)
{
- return 0;
+ m_type = STRING;
+ m_strval = strdup(value);
+}
+mgFilterString::~mgFilterString()
+{
+ if(m_strval)
+ {
+ free(m_strval);
+ }
}
-int mgFilters::getMax(int filter)
+const char* mgFilterString::getVal()
{
- return 0;
+ return m_strval;
+}
+string mgFilterString::getStrVal()
+{
+
+ return (string) m_strval;
}
-// for CHOICE
+void mgFilterString::setVal(const char* value)
+{
+ if(m_strval)
+ {
+ free(m_strval);
+ }
+ m_strval = strdup(value);
+}
+mgFilterBool::mgFilterBool(const char *name, bool value)
+ : mgFilter(name)
+{
+ m_type = BOOL;
+ m_bval = value;
+}
+mgFilterBool::~mgFilterBool()
+{
+}
-vector<string> mgFilters::getChoices()
+bool mgFilterBool::getVal()
{
- return vector<string>();
+ return m_bval;
}
-int mgFilters::getCurrent(int filter)
+string mgFilterBool::getStrVal()
{
- return 0;
+ if(m_bval)
+ return "true";
+ else
+ return "false";
}
- // check, if a value is correct
-bool mgFilters::checkValue(int filter, string value)
+void mgFilterBool::setVal(bool value)
{
- return false;
+ m_bval = value;
}
-bool mgFilters::checkValue(int filter, int value)
+mgTrackFilters::mgTrackFilters()
{
- return false;
}
-
-// finally set the values
-bool mgFilters::setValue(int filter, string value)
+mgTrackFilters::~mgTrackFilters()
{
- return false;
+ for(vector<mgFilter*>::iterator iter = m_filters.begin();
+ iter != m_filters.end(); iter++)
+ {
+ delete (*iter);
+ }
+ m_filters.clear();
}
-bool mgFilters::setValue(int filter, int value)
+vector<mgFilter*> *mgTrackFilters::getFilters()
{
- return false;
+ return &m_filters;
}
/*!
@@ -105,9 +160,9 @@ bool mgFilters::setValue(int filter, int value)
mgMedia::mgMedia(contentType mediatype)
{
int errval = 0;
-
+ mgTrackFilters *m_trackfilter;
m_mediatype = mediatype;
- m_filter = "1";
+ m_sql_trackfilter = "1";
m_defaultView = 1;
// now initialize the database
@@ -130,6 +185,20 @@ mgMedia::mgMedia(contentType mediatype)
mgError("Error connecting to database\n");
}
+ mgDebug(3, "Initializing track filters");
+ switch(m_mediatype)
+ {
+ case DUMMY:
+ {
+ errval = DummyInitDatabase(&m_db);
+ break;
+ }
+ case GD_MP3:
+ {
+ errval = GdInitDatabase(&m_db);
+ mgDebug(3, "Successfully conntected to sql database 'GiantDisc'");
+ }
+ }
}
mgMedia::~mgMedia()
@@ -157,26 +226,28 @@ mgSelectionTreeNode* mgMedia::getSelectionRoot()
case DUMMY:
return new DummyTreeNode(m_db, m_defaultView);
case GD_MP3:
- return new GdTreeNode(m_db, m_defaultView, m_filter);
+ return new GdTreeNode(m_db, m_defaultView, m_sql_trackfilter);
}
mgError("implementation Error"); // we should never get here
return NULL;
}
-mgFilters mgMedia::getActiveFilters()
+vector<mgFilter*> *mgMedia::getTrackFilters()
{
switch(m_mediatype)
{
case DUMMY:
- return mgFilters();
+ //return mgFilters();
case GD_MP3:
- return mgFilters();
+ // return m_trackfilters;
+ default:
+ break;
}
mgError("implementation Error"); // we should never get here
- return mgFilters();
+ return NULL;
}
-void mgMedia::setFilters(mgFilters filters)
+void mgMedia::setTrackFilters(vector<mgFilter*> *filters)
{
}
@@ -204,7 +275,7 @@ mgPlaylist* mgMedia::loadPlaylist(string name)
return NULL;
}
-vector<string> mgMedia::getStoredPlaylists()
+vector<string> *mgMedia::getStoredPlaylists()
{
switch(m_mediatype)
{
@@ -214,7 +285,7 @@ vector<string> mgMedia::getStoredPlaylists()
return GdGetStoredPlaylists(m_db);
}
mgError("implementation Error"); // we should never get here
- return vector<string>();
+ return new vector<string>();
}
vector<int> mgMedia::getDefaultCols()
@@ -243,11 +314,11 @@ mgTracklist* mgMedia::getTracks()
{
case DUMMY:
- tracks = new DummyTracklist(m_db, m_filter);
+ tracks = new DummyTracklist(m_db, m_sql_trackfilter);
tracks->setDisplayColumns(getDefaultCols());
return tracks;
case GD_MP3:
- tracks = new GdTracklist(m_db, m_filter);
+ tracks = new GdTracklist(m_db, m_sql_trackfilter);
tracks->setDisplayColumns(getDefaultCols());
return tracks;
}