diff options
Diffstat (limited to 'muggle-plugin/mg_media.c')
-rw-r--r-- | muggle-plugin/mg_media.c | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/muggle-plugin/mg_media.c b/muggle-plugin/mg_media.c new file mode 100644 index 0000000..26d8b8f --- /dev/null +++ b/muggle-plugin/mg_media.c @@ -0,0 +1,272 @@ +/*******************************************************************/ +/*! \file mg_media.c + * \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 $ + * \author Ralf Klueber, Lars von Wedel, Andreas Kellner + * \author file owner: $Author: LarsAC $ + * + * + */ +/*******************************************************************/ + +/* makes sure we dont parse the same declarations twice */ +#include "mg_media.h" +#include "mg_tools.h" +#include "mg_content_interface.h" +#include "gd_content_interface.h" + +#include "sh_dummy_content.h" + +using namespace std; + +mgFilters::mgFilters() +{ +} + +mgFilters::~mgFilters() +{ +} + +int mgFilters::getNumFilters() +{ + return 0; +} + +string mgFilters::getName(int filter) +{ + return 0; +} + +int mgFilters::getValue(int filter) +{ + return 0; +} + +mgFilters::filterType mgFilters::getType(int filter) +{ + return NUMBER; +} + +// for NUMBER filters + +int mgFilters::getMin(int filter) +{ + return 0; +} + +int mgFilters::getMax(int filter) +{ + return 0; +} + +// for CHOICE + +vector<string> mgFilters::getChoices() +{ + return vector<string>(); +} + +int mgFilters::getCurrent(int filter) +{ + return 0; +} + + // check, if a value is correct +bool mgFilters::checkValue(int filter, string value) +{ + return false; +} + +bool mgFilters::checkValue(int filter, int value) +{ + return false; +} + +// finally set the values +bool mgFilters::setValue(int filter, string value) +{ + return false; +} + +bool mgFilters::setValue(int filter, int value) +{ + return false; +} + +/*! + ******************************************************************* + * \class mgMedia + * + * \brief mein class to access content in the vdr plugin muggle + ********************************************************************/ +mgMedia::mgMedia(contentType mediatype) +{ + int errval = 0; + + m_mediatype = mediatype; + m_filter = "1"; + m_defaultView = 1; + + // now initialize the database + mgDebug(1, "Media Type %sselected", getMediaTypeName().c_str()); + 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'"); + } + } + if(errval < 0) + { + mgError("Error connecting to database\n"); + } + +} + +mgMedia::~mgMedia() +{ +} + +string mgMedia::getMediaTypeName() +{ + switch(m_mediatype) + { + case DUMMY: + return "DUMMY"; + case GD_MP3: + return "GiantDisc-mp3"; + } + mgError("implementation Error"); // we should never get here + return ""; +} + + +mgSelectionTreeNode* mgMedia::getSelectionRoot() +{ + switch(m_mediatype) + { + case DUMMY: + return new DummyTreeNode(m_db, m_defaultView); + case GD_MP3: + return new GdTreeNode(m_db, m_defaultView, m_filter); + } + mgError("implementation Error"); // we should never get here + return NULL; +} + +mgFilters mgMedia::getActiveFilters() +{ + switch(m_mediatype) + { + case DUMMY: + return mgFilters(); + case GD_MP3: + return mgFilters(); + } + mgError("implementation Error"); // we should never get here + return mgFilters(); +} + +void mgMedia::setFilters(mgFilters filters) +{ +} + +mgPlaylist* mgMedia::createTemporaryPlaylist() +{ + string tmpname = "current"; + return loadPlaylist(tmpname); +} + +mgPlaylist* mgMedia::loadPlaylist(string name) +{ + mgPlaylist *list; + switch(m_mediatype) + { + case DUMMY: + list = new DummyPlaylist(name, m_db); + list->setDisplayColumns(getDefaultCols()); + return list; + case GD_MP3: + list = new GdPlaylist(name, m_db); + list->setDisplayColumns(getDefaultCols()); + return list; + } + mgError("implementation Error"); // we should never get here + return NULL; +} + +vector<string> mgMedia::getStoredPlaylists() +{ + switch(m_mediatype) + { + case DUMMY: + return DummyGetStoredPlaylists(m_db); + case GD_MP3: + return GdGetStoredPlaylists(m_db); + } + mgError("implementation Error"); // we should never get here + return vector<string>(); +} + +vector<int> mgMedia::getDefaultCols() +{ + vector<int> cols; + switch(m_mediatype) + { + case DUMMY: + cols.push_back(1); // artist + cols.push_back(0); // track + return cols; + case GD_MP3: + cols.push_back(1); // artist + cols.push_back(0); // track + return cols; + } + mgError("implementation Error"); // we should never get here + + return cols; +} + +mgTracklist* mgMedia::getTracks() +{ + mgTracklist *tracks; + switch(m_mediatype) + { + case DUMMY: + + tracks = new DummyTracklist(m_db, m_filter); + tracks->setDisplayColumns(getDefaultCols()); + return tracks; + case GD_MP3: + tracks = new GdTracklist(m_db, m_filter); + tracks->setDisplayColumns(getDefaultCols()); + return tracks; + } + mgError("implementation Error"); // we should never get here + + return NULL; +} + + + + + + + + + + + + + + + |