summaryrefslogtreecommitdiff
path: root/plugins/adplug/adplug/adplug.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/adplug/adplug/adplug.cpp')
-rw-r--r--plugins/adplug/adplug/adplug.cpp43
1 files changed, 22 insertions, 21 deletions
diff --git a/plugins/adplug/adplug/adplug.cpp b/plugins/adplug/adplug/adplug.cpp
index f4b8e729..ab5f7513 100644
--- a/plugins/adplug/adplug/adplug.cpp
+++ b/plugins/adplug/adplug/adplug.cpp
@@ -19,8 +19,7 @@
* adplug.cpp - CAdPlug utility class, by Simon Peter <dn.tlp@gmx.net>
*/
-#include <cstring>
-#include <string>
+#include <string.h>
#include <binfile.h>
#include "adplug.h"
@@ -72,7 +71,7 @@
/***** CAdPlug *****/
// List of all players that come with the standard AdPlug distribution
-const CPlayerDesc CAdPlug::allplayers[] = {
+CPlayerDesc CAdPlug::allplayers[] = {
CPlayerDesc(ChscPlayer::factory, "HSC-Tracker", ".hsc\0"),
CPlayerDesc(CsngPlayer::factory, "SNGPlay", ".sng\0"),
CPlayerDesc(CimfPlayer::factory, "Apogee IMF", ".imf\0.wlf\0.adlib\0"),
@@ -116,7 +115,7 @@ const CPlayerDesc CAdPlug::allplayers[] = {
CPlayerDesc()
};
-const CPlayers &CAdPlug::init_players(const CPlayerDesc pd[])
+const CPlayers &CAdPlug::init_players(CPlayerDesc pd[])
{
static CPlayers initplayers;
unsigned int i;
@@ -128,23 +127,23 @@ const CPlayers &CAdPlug::init_players(const CPlayerDesc pd[])
}
const CPlayers CAdPlug::players = CAdPlug::init_players(CAdPlug::allplayers);
-CAdPlugDatabase *CAdPlug::database = 0;
+//CAdPlugDatabase *CAdPlug::database = 0;
-CPlayer *CAdPlug::factory(const std::string &fn, Copl *opl, const CPlayers &pl,
+CPlayer *CAdPlug::factory(const char *fn, Copl *opl, const CPlayers &pl,
const CFileProvider &fp)
{
CPlayer *p;
- CPlayers::const_iterator i;
+ CPlayerDesc *i;
unsigned int j;
- AdPlug_LogWrite("*** CAdPlug::factory(\"%s\",opl,fp) ***\n", fn.c_str());
+ AdPlug_LogWrite("*** CAdPlug::factory(\"%s\",opl,fp) ***\n", fn);
// Try a direct hit by file extension
- for(i = pl.begin(); i != pl.end(); i++)
- for(j = 0; (*i)->get_extension(j); j++)
- if(fp.extension(fn, (*i)->get_extension(j))) {
- AdPlug_LogWrite("Trying direct hit: %s\n", (*i)->filetype.c_str());
- if((p = (*i)->factory(opl))) {
+ for(i = pl.head; i; i = i->next)
+ for(j = 0; i->get_extension(j); j++)
+ if(fp.extension(fn, i->get_extension(j))) {
+ AdPlug_LogWrite("Trying direct hit: %s\n", i->filetype);
+ if((p = i->factory(opl))) {
if(p->load(fn, fp)) {
AdPlug_LogWrite("got it!\n");
AdPlug_LogWrite("--- CAdPlug::factory ---\n");
@@ -155,9 +154,9 @@ CPlayer *CAdPlug::factory(const std::string &fn, Copl *opl, const CPlayers &pl,
}
// Try all players, one by one
- for(i = pl.begin(); i != pl.end(); i++) {
- AdPlug_LogWrite("Trying: %s\n", (*i)->filetype.c_str());
- if((p = (*i)->factory(opl))) {
+ for(i = pl.head; i; i = i->next) {
+ AdPlug_LogWrite("Trying: %s\n", i->filetype);
+ if((p = i->factory(opl))) {
if(p->load(fn, fp)) {
AdPlug_LogWrite("got it!\n");
AdPlug_LogWrite("--- CAdPlug::factory ---\n");
@@ -173,18 +172,20 @@ CPlayer *CAdPlug::factory(const std::string &fn, Copl *opl, const CPlayers &pl,
return 0;
}
+#if 0
void CAdPlug::set_database(CAdPlugDatabase *db)
{
database = db;
}
+#endif
-std::string CAdPlug::get_version()
+const char * CAdPlug::get_version()
{
- return std::string(VERSION);
+ return VERSION;
}
-void CAdPlug::debug_output(const std::string &filename)
+void CAdPlug::debug_output(const char *filename)
{
- AdPlug_LogFile(filename.c_str());
- AdPlug_LogWrite("CAdPlug::debug_output(\"%s\"): Redirected.\n",filename.c_str());
+ AdPlug_LogFile(filename);
+ AdPlug_LogWrite("CAdPlug::debug_output(\"%s\"): Redirected.\n",filename);
}