From b963b558d86f3d4f65e5224cce6170f63bec3522 Mon Sep 17 00:00:00 2001 From: LarsAC Date: Sun, 1 Feb 2004 18:22:52 +0000 Subject: Initial revision git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@3 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mg_database.c (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c new file mode 100644 index 0000000..9a85cb8 --- /dev/null +++ b/mg_database.c @@ -0,0 +1,35 @@ +/*******************************************************************/ +/*! \file mg_database.c + * \brief A capsule around MySql database access + ******************************************************************** + * \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 $ + */ +/*******************************************************************/ + +#include "mg_database.h" + +using namespace std; + +mgDB::mgDB() +{ +} + +mgDB::mgDB(string user, string pass) +{ +} + +mgDB::~mgDB() +{ +} + +MYSQL mgDB::getDBHandle() +{ + MYSQL m; + + return m; +} + + -- cgit v1.2.3 From 616adfc77dc1d08f3bfcd79991a78c6350e4e2f6 Mon Sep 17 00:00:00 2001 From: lvw Date: Fri, 28 May 2004 15:29:19 +0000 Subject: Merged player branch back on HEAD branch. git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@98 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index 9a85cb8..eabff6d 100644 --- a/mg_database.c +++ b/mg_database.c @@ -2,10 +2,10 @@ /*! \file mg_database.c * \brief A capsule around MySql database access ******************************************************************** - * \version $Revision: 1.1 $ - * \date $Date: 2004/02/01 18:22:53 $ + * \version $Revision: 1.2 $ + * \date $Date: 2004/05/28 15:29:18 $ * \author Ralf Klueber, Lars von Wedel, Andreas Kellner - * \author file owner: $Author: LarsAC $ + * \author file owner: $Author: lvw $ */ /*******************************************************************/ @@ -17,7 +17,9 @@ mgDB::mgDB() { } -mgDB::mgDB(string user, string pass) +mgDB::mgDB(string host, string name, + string user, string pass, + int port) { } @@ -27,9 +29,8 @@ mgDB::~mgDB() MYSQL mgDB::getDBHandle() { - MYSQL m; - return m; + return m_dbase; } -- cgit v1.2.3 From 11f256059600e71a2e20f727d8d5e1600de35a1d Mon Sep 17 00:00:00 2001 From: lvw Date: Tue, 28 Sep 2004 13:06:36 +0000 Subject: Added function to escape query strings git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@188 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index eabff6d..b25ee23 100644 --- a/mg_database.c +++ b/mg_database.c @@ -3,9 +3,9 @@ * \brief A capsule around MySql database access ******************************************************************** * \version $Revision: 1.2 $ - * \date $Date: 2004/05/28 15:29:18 $ + * \date $Date$ * \author Ralf Klueber, Lars von Wedel, Andreas Kellner - * \author file owner: $Author: lvw $ + * \author file owner: $Author$ */ /*******************************************************************/ @@ -27,6 +27,18 @@ mgDB::~mgDB() { } +string mgDB::escape_string( MYSQL *db, string s ) +{ + char *escbuf = (char *) malloc( 2*s.length() + 1 ); + + int len = mysql_real_escape_string( db, escbuf, s.c_str(), s.length() ); + + string res( escbuf ); + free( resbuf ); + + return res; +} + MYSQL mgDB::getDBHandle() { -- cgit v1.2.3 From 9056b7936ce029d76c8d9e7dea912a6a88b41b01 Mon Sep 17 00:00:00 2001 From: lvw Date: Thu, 30 Sep 2004 21:41:15 +0000 Subject: Added function to escape query strings git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@192 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index b25ee23..3ad6fc9 100644 --- a/mg_database.c +++ b/mg_database.c @@ -1,13 +1,11 @@ -/*******************************************************************/ /*! \file mg_database.c * \brief A capsule around MySql database access - ******************************************************************** + * * \version $Revision: 1.2 $ * \date $Date$ * \author Ralf Klueber, Lars von Wedel, Andreas Kellner * \author file owner: $Author$ */ -/*******************************************************************/ #include "mg_database.h" @@ -27,22 +25,20 @@ mgDB::~mgDB() { } -string mgDB::escape_string( MYSQL *db, string s ) +MYSQL mgDB::getDBHandle() { - char *escbuf = (char *) malloc( 2*s.length() + 1 ); - - int len = mysql_real_escape_string( db, escbuf, s.c_str(), s.length() ); - string res( escbuf ); - free( resbuf ); - - return res; + return m_dbase; } -MYSQL mgDB::getDBHandle() +string mgDB::escape_string( MYSQL *db, string s ) { + char *escbuf = (char *) malloc( 2*s.size() + 1 ); - return m_dbase; -} + int len = mysql_real_escape_string( db, escbuf, s.c_str(), s.size() ); + string r = string( escbuf ); + free( escbuf ); + return r; +} -- cgit v1.2.3 From 44cd4c0319c75d4315fe0554d701effe77680776 Mon Sep 17 00:00:00 2001 From: lvw Date: Mon, 4 Oct 2004 20:47:58 +0000 Subject: Added a patch to correct minor errors. Further, remove using namespace directives in order to remain compatible with g++ 2.95.4 git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@200 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index 3ad6fc9..fa38e17 100644 --- a/mg_database.c +++ b/mg_database.c @@ -9,14 +9,13 @@ #include "mg_database.h" -using namespace std; mgDB::mgDB() { } -mgDB::mgDB(string host, string name, - string user, string pass, +mgDB::mgDB(std::string host, std::string name, + std::string user, std::string pass, int port) { } @@ -31,13 +30,13 @@ MYSQL mgDB::getDBHandle() return m_dbase; } -string mgDB::escape_string( MYSQL *db, string s ) +std::string mgDB::escape_string( MYSQL *db, std::string s ) { char *escbuf = (char *) malloc( 2*s.size() + 1 ); int len = mysql_real_escape_string( db, escbuf, s.c_str(), s.size() ); - string r = string( escbuf ); + std::string r = std::string( escbuf ); free( escbuf ); return r; -- cgit v1.2.3 From ebdf27d9e7c5d167101adf3c9df5efe3d7d52586 Mon Sep 17 00:00:00 2001 From: lvw Date: Wed, 6 Oct 2004 06:28:44 +0000 Subject: Added more stuff to mg_database and added status display for gLCD git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@203 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index fa38e17..9dfa395 100644 --- a/mg_database.c +++ b/mg_database.c @@ -16,7 +16,7 @@ mgDB::mgDB() mgDB::mgDB(std::string host, std::string name, std::string user, std::string pass, - int port) + int port) { } @@ -41,3 +41,34 @@ std::string mgDB::escape_string( MYSQL *db, std::string s ) return r; } + +MYSQL_RES* mgDB::read_query( const char *fmt, ...) +{ + va_list ap; + va_start( ap, fmt ); + vsnprintf( querybuf, MAX_QUERY_BUFLEN-1, fmt, ap ); + + if( mysql_query( &m_dbase, querybuf) ) + { + mgError( "SQL error in MUGGLE:\n%s\n", querybuf ); + } + + MYSQL_RES *result = mysql_store_result( &m_dbase ); + + va_end(ap); + return result; +} + +void mgDB::write_query( const char *fmt, ... ) +{ + va_list ap; + va_start( ap, fmt ); + vsnprintf( querybuf, MAX_QUERY_BUFLEN-1, fmt, ap ); + + if( mysql_query( &m_dbase, querybuf ) ) + { + mgError( "SQL error in MUGGLE:\n%s\n", querybuf ); + } + + va_end(ap); +} -- cgit v1.2.3 From bd285704d7cc8eb24725ee1af3a48c2ee18fa27b Mon Sep 17 00:00:00 2001 From: lvw Date: Wed, 6 Oct 2004 19:40:18 +0000 Subject: Removed compiler warnings and some errors git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@206 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index 9dfa395..1636262 100644 --- a/mg_database.c +++ b/mg_database.c @@ -8,7 +8,11 @@ */ #include "mg_database.h" +#include "mg_tools.h" +#include + +static const int MAX_QUERY_BUFLEN = 2048; mgDB::mgDB() { @@ -44,6 +48,7 @@ std::string mgDB::escape_string( MYSQL *db, std::string s ) MYSQL_RES* mgDB::read_query( const char *fmt, ...) { + char querybuf[MAX_QUERY_BUFLEN]; va_list ap; va_start( ap, fmt ); vsnprintf( querybuf, MAX_QUERY_BUFLEN-1, fmt, ap ); @@ -61,6 +66,7 @@ MYSQL_RES* mgDB::read_query( const char *fmt, ...) void mgDB::write_query( const char *fmt, ... ) { + char querybuf[MAX_QUERY_BUFLEN]; va_list ap; va_start( ap, fmt ); vsnprintf( querybuf, MAX_QUERY_BUFLEN-1, fmt, ap ); -- cgit v1.2.3 From d89ce8d5a49861d4b54380d0660f676bba07522a Mon Sep 17 00:00:00 2001 From: lvw Date: Thu, 28 Oct 2004 09:55:54 +0000 Subject: Make stuff compile with g++ 2.95.4 git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@258 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 1 + 1 file changed, 1 insertion(+) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index 1636262..02d2e0a 100644 --- a/mg_database.c +++ b/mg_database.c @@ -10,6 +10,7 @@ #include "mg_database.h" #include "mg_tools.h" +#include #include static const int MAX_QUERY_BUFLEN = 2048; -- cgit v1.2.3 From 0756ae40d68d403082c86adef042a4c0daba219f Mon Sep 17 00:00:00 2001 From: LarsAC Date: Fri, 7 Jan 2005 18:43:03 +0000 Subject: Merged branch osd_extensions back to main trunk git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@324 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 1 - 1 file changed, 1 deletion(-) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index 02d2e0a..1636262 100644 --- a/mg_database.c +++ b/mg_database.c @@ -10,7 +10,6 @@ #include "mg_database.h" #include "mg_tools.h" -#include #include static const int MAX_QUERY_BUFLEN = 2048; -- cgit v1.2.3 From 8c8f0db2c1b58536836d129d542e3646c717192b Mon Sep 17 00:00:00 2001 From: LarsAC Date: Thu, 10 Feb 2005 16:42:54 +0000 Subject: Added database intialization code for embedded mySQL git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@472 e10066b5-e1e2-0310-b819-94efdf66514b --- mg_database.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) (limited to 'mg_database.c') diff --git a/mg_database.c b/mg_database.c index 1636262..dff7b0f 100644 --- a/mg_database.c +++ b/mg_database.c @@ -14,6 +14,26 @@ static const int MAX_QUERY_BUFLEN = 2048; +static char *db_cmds[] = { + "use GiantDisc;" + "DROP DATABASE IF EXISTS GiantDisc; CREATE DATABASE GiantDisc;", + "grant all privileges on GiantDisc.* to vdr@localhost;", + "drop table if exists album; CREATE TABLE album ( artist varchar(255) default NULL, title varchar(255) default NULL, cddbid varchar(20) NOT NULL default '', coverimg varchar(255) default NULL, covertxt mediumtext, modified date default NULL, genre varchar(10) default NULL, PRIMARY KEY (cddbid), KEY artist (artist(10)), KEY title (title(10)), KEY genre (genre), KEY modified (modified)) TYPE=MyISAM;", + "drop table if exists genre; CREATE TABLE genre (id varchar(10) NOT NULL default '', id3genre smallint(6) default NULL, genre varchar(255) default NULL, freq int(11) default NULL, PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists language; CREATE TABLE language (id varchar(4) NOT NULL default '', language varchar(40) default NULL, freq int(11) default NULL, PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists musictype; CREATE TABLE musictype (musictype varchar(40) default NULL, id tinyint(3) unsigned NOT NULL auto_increment, PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists player;CREATE TABLE player ( ipaddr varchar(255) NOT NULL default '', uichannel varchar(255) NOT NULL default '', logtarget int(11) default NULL, cdripper varchar(255) default NULL, mp3encoder varchar(255) default NULL, cdromdev varchar(255) default NULL, cdrwdev varchar(255) default NULL, id int(11) NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists playerstate;CREATE TABLE playerstate ( playerid int(11) NOT NULL default '0', playertype int(11) NOT NULL default '0', snddevice varchar(255) default NULL, playerapp varchar(255) default NULL, playerparams varchar(255) default NULL, ptlogger varchar(255) default NULL, currtracknb int(11) default NULL, state varchar(4) default NULL, shufflepar varchar(255) default NULL, shufflestat varchar(255) default NULL, pauseframe int(11) default NULL, framesplayed int(11) default NULL, framestotal int(11) default NULL, anchortime bigint(20) default NULL, PRIMARY KEY (playerid,playertype)) TYPE=HEAP;", + "drop table if exists playlist;CREATE TABLE playlist ( title varchar(255) default NULL, author varchar(255) default NULL, note varchar(255) default NULL, created timestamp(8) NOT NULL, id int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists playlistitem;CREATE TABLE playlistitem ( playlist int(11) NOT NULL default '0', tracknumber mediumint(9) NOT NULL default '0', trackid int(11) default NULL, PRIMARY KEY (playlist,tracknumber)) TYPE=MyISAM;", + "drop table if exists playlog;CREATE TABLE playlog ( trackid int(11) default NULL, played date default NULL, id tinyint(3) unsigned NOT NULL auto_increment, PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists recordingitem;CREATE TABLE recordingitem ( trackid int(11) default NULL, recdate date default NULL, rectime time default NULL, reclength int(11) default NULL, enddate date default NULL, endtime time default NULL, repeat varchar(10) default NULL, initcmd varchar(255) default NULL, parameters varchar(255) default NULL, atqjob int(11) default NULL, id int(11) NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists source; CREATE TABLE source ( source varchar(40) default NULL, id tinyint(3) unsigned NOT NULL auto_increment, PRIMARY KEY (id)) TYPE=MyISAM;", + "drop table if exists tracklistitem;CREATE TABLE tracklistitem ( playerid int(11) NOT NULL default '0', listtype smallint(6) NOT NULL default '0', tracknb int(11) NOT NULL default '0', trackid int(11) NOT NULL default '0', PRIMARY KEY (playerid,listtype,tracknb)) TYPE=MyISAM;", + "drop table if exists tracks;CREATE TABLE tracks ( artist varchar(255) default NULL, title varchar(255) default NULL, genre1 varchar(10) default NULL, genre2 varchar(10) default NULL, year smallint(5) unsigned default NULL, lang varchar(4) default NULL, type tinyint(3) unsigned default NULL, rating tinyint(3) unsigned default NULL, length smallint(5) unsigned default NULL, source tinyint(3) unsigned default NULL, sourceid varchar(20) default NULL, tracknb tinyint(3) unsigned default NULL, mp3file varchar(255) default NULL, condition tinyint(3) unsigned default NULL, voladjust smallint(6) default '0', lengthfrm mediumint(9) default '0', startfrm mediumint(9) default '0', bpm smallint(6) default '0', lyrics mediumtext, bitrate varchar(10) default NULL, created date default NULL, modified date default NULL, backup tinyint(3) unsigned default NULL, samplerate int(7) unsigned default NULL, channels tinyint(3) unsigned default NULL, id int(11) NOT NULL auto_increment, PRIMARY KEY (id), KEY title (title(10)), KEY mp3file (mp3file(10)), KEY genre1 (genre1), KEY genre2 (genre2), KEY year (year), KEY lang (lang), KEY type (type), KEY rating (rating), KEY sourceid (sourceid), KEY artist (artist(10))) TYPE=MyISAM;" +}; + + mgDB::mgDB() { } @@ -28,6 +48,36 @@ mgDB::~mgDB() { } +MYSQL_RES * +mgDB::exec_sql(std::string query) +{ + if (query.empty()) + return 0; + mgDebug( 3, "exec_sql(%X,%s)", &m_dbase, query.c_str() ); + if (mysql_query (&m_dbase, (query + ';').c_str ())) + { + mgError("SQL Error in %s: %s",query.c_str(),mysql_error (&m_dbase)); + std::cout << "ERROR in " << query << ":" << mysql_error(&m_dbase) << std::endl; + return 0; + } + return mysql_store_result(&m_dbase); +} + +void mgDB::initialize() +{ + // create database + exec_sql( std::string(db_cmds[1]) ); + exec_sql( std::string(db_cmds[0]) ); + exec_sql( std::string(db_cmds[2]) ); + + // create tables + int len = sizeof( db_cmds ) / sizeof( char* ); + for( int i=3; i < len; i ++ ) + { + exec_sql( std::string( db_cmds[i] ) ); + } +} + MYSQL mgDB::getDBHandle() { @@ -38,7 +88,7 @@ std::string mgDB::escape_string( MYSQL *db, std::string s ) { char *escbuf = (char *) malloc( 2*s.size() + 1 ); - int len = mysql_real_escape_string( db, escbuf, s.c_str(), s.size() ); + mysql_real_escape_string( db, escbuf, s.c_str(), s.size() ); std::string r = std::string( escbuf ); free( escbuf ); -- cgit v1.2.3