summaryrefslogtreecommitdiff
path: root/setedit/mp3/mpegsound/fileplayer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'setedit/mp3/mpegsound/fileplayer.cc')
-rw-r--r--setedit/mp3/mpegsound/fileplayer.cc252
1 files changed, 0 insertions, 252 deletions
diff --git a/setedit/mp3/mpegsound/fileplayer.cc b/setedit/mp3/mpegsound/fileplayer.cc
deleted file mode 100644
index a46f533..0000000
--- a/setedit/mp3/mpegsound/fileplayer.cc
+++ /dev/null
@@ -1,252 +0,0 @@
-/* MPEG/WAVE Sound library
-
- (C) 1997 by Jung woo-jae */
-
-// Fileplayer.cc
-// It's an example for how to use MPEG/WAVE Sound library
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-#include <unistd.h>
-
-#include "mpegsound.h"
-
-// File player superclass
-Fileplayer::Fileplayer()
-{
- __errorcode=SOUND_ERROR_OK;
- player=NULL;
-};
-
-Fileplayer::~Fileplayer()
-{
- delete player;
-};
-
-
-// Wave file player
-Wavefileplayer::Wavefileplayer()
-{
- loader=NULL;
- server=NULL;
-}
-
-Wavefileplayer::~Wavefileplayer()
-{
- if(loader)delete loader;
- if(server)delete server;
-}
-
-bool Wavefileplayer::openfile(char *filename,char *device)
-{
-// Player
- if(device==NULL)device=Rawplayer::defaultdevice;
-
- if(device[0]=='/')player=new Rawplayer;
- else
- {
- if(strstr(device,".WAV") || strstr(device,".wav"))
- player=new Rawtowav;
- else
- player=new Rawtofile;
- if(device[0]=='-')device=NULL;
- }
-
- if(player==NULL)
- return seterrorcode(SOUND_ERROR_MEMORYNOTENOUGH);
- if(!player->initialize(device))return seterrorcode(player->geterrorcode());
-
-// Loader
- {
- int err;
-
- if((loader=Soundinputstream::hopen(filename,&err))==NULL)
- return seterrorcode(err);
- }
-
-// Server
- if((server=new Wavetoraw(loader,player))==NULL)
- return seterrorcode(SOUND_ERROR_MEMORYNOTENOUGH);
- return server->initialize();
-}
-
-void Wavefileplayer::setforcetomono(bool flag)
-{
- server->setforcetomono(flag);
-};
-
-bool Wavefileplayer::playing(int verbose)
-{
- if(!server->run())return false; // Read first time
-
- if(verbose>0)
- {
- fprintf(stderr,
- "Verbose : %dbits, "
- "%dHz, "
- "%s\n",
- server->getsamplesize(),
- server->getfrequency(),
- server->isstereo()?"Stereo":"Mono");
- }
-
- while(server->run()); // Playing
-
- seterrorcode(server->geterrorcode());
- if(geterrorcode()==SOUND_ERROR_FINISH)return true;
- return false;
-}
-
-
-
-
-// Mpegfileplayer
-Mpegfileplayer::Mpegfileplayer()
-{
- loader=NULL;
- server=NULL;
-};
-
-Mpegfileplayer::~Mpegfileplayer()
-{
- if(loader)delete loader;
- if(server)delete server;
-}
-
-bool Mpegfileplayer::openfile(char *filename,char *device)
-{
-// Player
- if(device==NULL)device=Rawplayer::defaultdevice;
-
- if(device[0]=='/')player=new Rawplayer;
- else
- {
- if(strstr(device,".WAV") || strstr(device,".wav"))
- player=new Rawtowav;
- else
- player=new Rawtofile;
- if(device[0]=='-')device=NULL;
- }
-
- if(player==NULL)
- return seterrorcode(SOUND_ERROR_MEMORYNOTENOUGH);
- if(!player->initialize(device))
- return seterrorcode(player->geterrorcode());
-
-// Loader
- {
- int err;
- if((loader=Soundinputstream::hopen(filename,&err))==NULL)
- return seterrorcode(err);
- }
-
-// Server
- if((server=new Mpegwavtoraw(loader,player))==NULL)
- return seterrorcode(SOUND_ERROR_MEMORYNOTENOUGH);
-
-// Initialize server
- server->initialize(filename);
- return true;
-}
-
-void Mpegfileplayer::setforcetomono(bool flag)
-{
- server->setforcetomono(flag);
-};
-
-void Mpegfileplayer::setdownfrequency(int value)
-{
- server->setdownfrequency(value);
-};
-
-#ifdef __DJGPP__
-#include <dpmi.h>
-#define ReleaseCPU() __dpmi_yield()
-#else
-#define ReleaseCPU() usleep(10)
-#endif
-
-bool Mpegfileplayer::playing(int verbose)
-{
- if(!server->startplay())return false; // Initialize MPEG Layer 3
- if(verbose>0)showverbose(verbose);
- do
- {
- while(!server->callformore()) ReleaseCPU();
- }
- while(server->run(1)); // Playing
-
- seterrorcode(server->geterrorcode());
- if(seterrorcode(SOUND_ERROR_FINISH))return true;
- return false;
-}
-
-#ifdef PTHREADEDMPEG
-bool Mpegfileplayer::playingwiththread(int verbose,int framenumbers)
-{
- if(framenumbers<20)return playing(verbose);
-
- server->makethreadedplayer(framenumbers);
-
- if(!server->run(-1))return false; // Initialize MPEG Layer 3
- if(verbose>0)showverbose(verbose);
- while(server->run(100)); // Playing
- server->freethreadedplayer();
-
- seterrorcode(server->geterrorcode());
- if(seterrorcode(SOUND_ERROR_FINISH))return true;
- return false;
-}
-#endif
-
-void Mpegfileplayer::showverbose(int verbose)
-{
- static char *modestring[4]={"stereo","joint stereo","dual channel","mono"};
-
- fprintf(stderr,"Verbose: MPEG-%d Layer %d, %s,\n\t%dHz%s, %dkbit/s, ",
- server->getversion()+1,
- server->getlayer(),modestring[server->getmode()],
- server->getfrequency(),server->getdownfrequency()?"/2":"",
- server->getbitrate());
- fprintf(stderr,server->getcrccheck()
- ? "with crc check\n"
- : "without crc check\n");
- if(verbose>1)
- {
- fprintf(stderr,
- "Songname : %s\n"
- "Artist : %s\n"
- "Album : %s\n"
- "Year : %s\n"
- "Comment : %s\n"
- "Genre : %s\n",
- server->getname(),
- server->getartist(),
- server->getalbum(),
- server->getyear(),
- server->getcomment(),
- server->getgenre());
- }
-}
-
-bool Mpegfileplayer::startplay(void)
-{
- return server->startplay();
-}
-
-bool Mpegfileplayer::callformore(void)
-{
- return server->callformore();
-}
-
-bool Mpegfileplayer::playmore(void)
-{
- server->run(1);
- seterrorcode(server->geterrorcode());
- if(seterrorcode(SOUND_ERROR_FINISH))return false;
- return true;
-}
-