summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2012-03-19 11:07:52 +0000
committerphintuka <phintuka>2012-03-19 11:07:52 +0000
commit37175a927ad81f12e07d8edd2f0f8ff74151b77f (patch)
tree1e3a542cd2d77fe652b6af47e287416cd5dea628
parent7640944b36387da28e75f696071a813b5af6608d (diff)
downloadxineliboutput-37175a927ad81f12e07d8edd2f0f8ff74151b77f.tar.gz
xineliboutput-37175a927ad81f12e07d8edd2f0f8ff74151b77f.tar.bz2
Bind media player to device instance
-rw-r--r--media_player.c103
-rw-r--r--media_player.h11
-rw-r--r--menu.c45
-rw-r--r--xineliboutput.c24
4 files changed, 96 insertions, 87 deletions
diff --git a/media_player.c b/media_player.c
index 03abb324..7ab5529c 100644
--- a/media_player.c
+++ b/media_player.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: media_player.c,v 1.91 2012-03-18 19:17:07 phintuka Exp $
+ * $Id: media_player.c,v 1.92 2012-03-19 11:07:52 phintuka Exp $
*
*/
@@ -318,6 +318,7 @@ class cPlaylistMenu : public cOsdMenu, cPlaylistChangeNotify
protected:
+ cXinelibDevice *m_Dev;
cPlaylist& m_Playlist;
bool m_NeedsUpdate;
bool& m_RandomPlay;
@@ -325,7 +326,7 @@ class cPlaylistMenu : public cOsdMenu, cPlaylistChangeNotify
public:
- cPlaylistMenu(cPlaylist &Playlist, bool& RandomPlay);
+ cPlaylistMenu(cXinelibDevice *Dev, cPlaylist &Playlist, bool& RandomPlay);
virtual ~cPlaylistMenu();
void Set(bool setCurrentPlaying = false);
@@ -339,12 +340,13 @@ class cPlaylistMenu : public cOsdMenu, cPlaylistChangeNotify
virtual void PlaylistChanged(const cPlaylistItem *item);
};
-cPlaylistMenu::cPlaylistMenu(cPlaylist &Playlist, bool& RandomPlay) :
+cPlaylistMenu::cPlaylistMenu(cXinelibDevice *Dev, cPlaylist &Playlist, bool& RandomPlay) :
cOsdMenu(tr("Playlist")),
m_Playlist(Playlist),
m_RandomPlay(RandomPlay),
m_IC("UTF-8", cCharSetConv::SystemCharacterTable())
{
+ m_Dev = Dev;
m_Marked = -1;
SetTitle(cString::sprintf("%s: %s", tr("Playlist"), m_IC.Convert(*Playlist.Name())));
Playlist.Listen(this);
@@ -396,7 +398,7 @@ eOSState cPlaylistMenu::ProcessKey(eKeys Key)
SetHelpButtons();
return osContinue;
case kGreen:
- return AddSubMenu(cMenuXinelib::CreateMenuBrowseFiles(&(cXinelibDevice::Instance()),ShowMusic));
+ return AddSubMenu(cMenuXinelib::CreateMenuBrowseFiles(m_Dev, ShowMusic));
case kYellow: if(m_Playlist.Count() > 1) {
eOSState result = osContinue;
cPlaylistItem *i = m_Playlist.Current();
@@ -485,11 +487,13 @@ class cXinelibPlayerControl : public cControl
private:
static cMutex m_Lock;
- static cXinelibPlayer *OpenPlayer(const char *File, bool Queue = false, const char *SubFile = NULL);
+ static cXinelibPlayer *OpenPlayer(cXinelibDevice *Dev, const char *File, bool Queue = false, const char *SubFile = NULL);
protected:
static cXinelibPlayer *m_Player;
+ cXinelibDevice *m_Dev;
+
cSkinDisplayReplay *m_DisplayReplay;
cPlaylistMenu *m_PlaylistMenu;
@@ -508,7 +512,7 @@ class cXinelibPlayerControl : public cControl
void MsgReplaying(const char *Title, const char *File);
public:
- cXinelibPlayerControl(eMainMenuMode Mode, const char *File, const char *SubFile = NULL);
+ cXinelibPlayerControl(cXinelibDevice *Dev, eMainMenuMode Mode, const char *File, const char *SubFile = NULL);
virtual ~cXinelibPlayerControl();
virtual void Show(void);
@@ -518,15 +522,16 @@ class cXinelibPlayerControl : public cControl
static void Close(void);
static bool IsOpen(void) { return m_Player != NULL; };
- static void Queue(const char *File);
+ static void Queue(cXinelibDevice *Dev, const char *File);
};
cXinelibPlayer *cXinelibPlayerControl::m_Player = NULL;
cMutex cXinelibPlayerControl::m_Lock;
-cXinelibPlayerControl::cXinelibPlayerControl(eMainMenuMode Mode, const char *File, const char *SubFile) :
- cControl(OpenPlayer(File, false, SubFile))
+cXinelibPlayerControl::cXinelibPlayerControl(cXinelibDevice *Dev, eMainMenuMode Mode, const char *File, const char *SubFile) :
+ cControl(OpenPlayer(Dev, File, false, SubFile))
{
+ m_Dev = Dev;
m_DisplayReplay = NULL;
m_PlaylistMenu = NULL;
m_ShowModeOnly = true;
@@ -570,7 +575,7 @@ void cXinelibPlayerControl::MsgReplaying(const char *Title, const char *File)
cStatus::MsgReplaying(this, Title, File, true);
}
-void cXinelibPlayerControl::Queue(const char *File)
+void cXinelibPlayerControl::Queue(cXinelibDevice *Dev, const char *File)
{
if(!File)
return;
@@ -580,8 +585,8 @@ void cXinelibPlayerControl::Queue(const char *File)
LOGMSG("cXinelibPlayerControl::Queue(%s)", File);
if(!m_Player) {
- OpenPlayer(File, true);
- cControl::Launch(new cXinelibPlayerControl(ShowMusic, NULL));
+ OpenPlayer(Dev, File, true);
+ cControl::Launch(new cXinelibPlayerControl(Dev, ShowMusic, NULL));
} else {
size_t len = strlen(File);
if(len && File[len-1] == '/')
@@ -599,11 +604,11 @@ void cXinelibPlayerControl::Queue(const char *File)
}
-cXinelibPlayer *cXinelibPlayerControl::OpenPlayer(const char *File, bool Queue, const char *SubFile)
+cXinelibPlayer *cXinelibPlayerControl::OpenPlayer(cXinelibDevice *Dev, const char *File, bool Queue, const char *SubFile)
{
m_Lock.Lock();
if(!m_Player)
- m_Player = new cXinelibPlayer(&(cXinelibDevice::Instance()), File, Queue, SubFile);
+ m_Player = new cXinelibPlayer(Dev, File, Queue, SubFile);
m_Lock.Unlock();
return m_Player;
}
@@ -731,7 +736,7 @@ eOSState cXinelibPlayerControl::ProcessKey(eKeys Key)
// replay menu
case kRed: if(m_Player->Playlist().Count() > 1) {
Hide();
- m_PlaylistMenu = new cPlaylistMenu(m_Player->Playlist(), m_RandomPlay);
+ m_PlaylistMenu = new cPlaylistMenu(m_Dev, m_Player->Playlist(), m_RandomPlay);
m_AutoShowStart = 0;
} else {
m_Player->Control("SEEK 0"); break;
@@ -772,7 +777,7 @@ eOSState cXinelibPlayerControl::ProcessKey(eKeys Key)
if ( m_Mode == ShowMusic ) {
switch(Key) {
case kRed: Hide();
- m_PlaylistMenu = new cPlaylistMenu(m_Player->Playlist(), m_RandomPlay);
+ m_PlaylistMenu = new cPlaylistMenu(m_Dev, m_Player->Playlist(), m_RandomPlay);
m_AutoShowStart = 0;
break;
case kNext:
@@ -970,8 +975,8 @@ class cXinelibDvdPlayerControl : public cXinelibPlayerControl
void CloseDvdMenu(void);
public:
- cXinelibDvdPlayerControl(const char *File) :
- cXinelibPlayerControl(ShowFiles, File), m_DvdMenu(NULL)
+ cXinelibDvdPlayerControl(cXinelibDevice *Dev, const char *File) :
+ cXinelibPlayerControl(Dev, ShowFiles, File), m_DvdMenu(NULL)
{}
virtual ~cXinelibDvdPlayerControl();
@@ -1231,7 +1236,7 @@ class cXinelibBdPlayerControl : public cXinelibPlayerControl
void CloseBdMenu(void);
public:
- cXinelibBdPlayerControl(const char *File);
+ cXinelibBdPlayerControl(cXinelibDevice *Dev, const char *File);
virtual ~cXinelibBdPlayerControl();
virtual void Show(void);
@@ -1239,8 +1244,8 @@ class cXinelibBdPlayerControl : public cXinelibPlayerControl
virtual eOSState ProcessKey(eKeys Key);
};
-cXinelibBdPlayerControl::cXinelibBdPlayerControl(const char *File) :
- cXinelibPlayerControl(ShowFiles, File), m_BdMenu(NULL)
+cXinelibBdPlayerControl::cXinelibBdPlayerControl(cXinelibDevice *Dev, const char *File) :
+ cXinelibPlayerControl(Dev, ShowFiles, File), m_BdMenu(NULL)
{
}
@@ -1521,14 +1526,14 @@ class cXinelibImagesControl : public cControl
int m_LastShowTime;
bool m_ShowModeOnly;
- static cXinelibImagePlayer *OpenPlayer(const char *File);
+ static cXinelibImagePlayer *OpenPlayer(cXinelibDevice *Dev, const char *File);
protected:
void Seek(int Rel);
void Delete(void);
public:
- cXinelibImagesControl(cPlaylist *Playlist);
+ cXinelibImagesControl(cXinelibDevice *Dev, cPlaylist *Playlist);
virtual ~cXinelibImagesControl();
virtual void Show(void);
@@ -1544,8 +1549,8 @@ class cXinelibImagesControl : public cControl
cXinelibImagePlayer *cXinelibImagesControl::m_Player = NULL;
cMutex cXinelibImagesControl::m_Lock;
-cXinelibImagesControl::cXinelibImagesControl(cPlaylist *Playlist) :
- cControl(OpenPlayer(Playlist->Current()->Filename))
+cXinelibImagesControl::cXinelibImagesControl(cXinelibDevice *Dev, cPlaylist *Playlist) :
+ cControl(OpenPlayer(Dev, Playlist->Current()->Filename))
{
m_DisplayReplay = NULL;
m_Playlist = Playlist;
@@ -1567,11 +1572,11 @@ cXinelibImagesControl::~cXinelibImagesControl()
delete m_Playlist;
}
-cXinelibImagePlayer *cXinelibImagesControl::OpenPlayer(const char *File)
+cXinelibImagePlayer *cXinelibImagesControl::OpenPlayer(cXinelibDevice *Dev, const char *File)
{
m_Lock.Lock();
if(!m_Player)
- m_Player = new cXinelibImagePlayer(&(cXinelibDevice::Instance()), File);
+ m_Player = new cXinelibImagePlayer(Dev, File);
m_Lock.Unlock();
return m_Player;
}
@@ -1736,7 +1741,7 @@ cControl *CreateControl(cXinelibDevice *Dev,
{
if (PlayMode == pmVideoOnly) {
- return new cXinelibImagesControl(Playlist);
+ return new cXinelibImagesControl(Dev, Playlist);
}
LOGMSG("cPlayerFactory::Create(cPlaylist*) not implemented for PlayMode %d !",
@@ -1754,25 +1759,25 @@ cControl *CreateControl(cXinelibDevice *Dev,
// Special mrls
if (!strncmp(Mrl, "dvd:/", 5))
- return new cXinelibDvdPlayerControl(Mrl);
+ return new cXinelibDvdPlayerControl(Dev, Mrl);
if (!strncmp(Mrl, "bluray:/", 8))
- return new cXinelibBdPlayerControl(Mrl);
+ return new cXinelibBdPlayerControl(Dev, Mrl);
if (!strncmp(Mrl, "bd:/", 4))
- return new cXinelibBdPlayerControl(Mrl);
+ return new cXinelibBdPlayerControl(Dev, Mrl);
if (!strncmp(Mrl, "cdda:/", 6))
- return new cXinelibPlayerControl(ShowMusic, Mrl);
+ return new cXinelibPlayerControl(Dev, ShowMusic, Mrl);
if (xc.IsDvdImage(Mrl))
- return new cXinelibDvdPlayerControl(Mrl);
+ return new cXinelibDvdPlayerControl(Dev, Mrl);
// Playmode
if (PlayMode == pmAudioOnly)
- return new cXinelibPlayerControl(ShowMusic, Mrl);
+ return new cXinelibPlayerControl(Dev, ShowMusic, Mrl);
if (PlayMode == pmAudioVideo)
- return new cXinelibPlayerControl(ShowFiles, Mrl, SubFile);
+ return new cXinelibPlayerControl(Dev, ShowFiles, Mrl, SubFile);
if (PlayMode == pmVideoOnly) {
- return new cXinelibImagesControl(CreatePlaylist(Mrl));
+ return new cXinelibImagesControl(Dev, CreatePlaylist(Mrl));
}
// guess from playlist content
@@ -1784,35 +1789,35 @@ cControl *CreateControl(cXinelibDevice *Dev,
return NULL;
if (xc.IsAudioFile(Playlist.First()->Filename))
- return new cXinelibPlayerControl(ShowMusic, Mrl);
+ return new cXinelibPlayerControl(Dev, ShowMusic, Mrl);
if (xc.IsImageFile(Playlist.First()->Filename)) {
- return new cXinelibImagesControl(CreatePlaylist(Mrl));
+ return new cXinelibImagesControl(Dev, CreatePlaylist(Mrl));
}
- return new cXinelibPlayerControl(ShowFiles, Mrl);
+ return new cXinelibPlayerControl(Dev, ShowFiles, Mrl);
}
// guess from file type
if (xc.IsAudioFile(Mrl))
- return new cXinelibPlayerControl(ShowMusic, Mrl);
+ return new cXinelibPlayerControl(Dev, ShowMusic, Mrl);
if (xc.IsVideoFile(Mrl))
- return new cXinelibPlayerControl(ShowFiles, Mrl, SubFile);
+ return new cXinelibPlayerControl(Dev, ShowFiles, Mrl, SubFile);
if (xc.IsImageFile(Mrl)) {
- return new cXinelibImagesControl(CreatePlaylist(Mrl));
+ return new cXinelibImagesControl(Dev, CreatePlaylist(Mrl));
}
// default
- return new cXinelibPlayerControl(ShowFiles, Mrl, SubFile);
+ return new cXinelibPlayerControl(Dev, ShowFiles, Mrl, SubFile);
}
-void cPlayerFactory::Queue(const char *Mrl)
+void cPlayerFactory::Queue(cXinelibDevice *Dev, const char *Mrl)
{
- cXinelibPlayerControl::Queue(Mrl);
+ cXinelibPlayerControl::Queue(Dev, Mrl);
}
bool cPlayerFactory::IsOpen(void)
@@ -1820,12 +1825,12 @@ bool cPlayerFactory::IsOpen(void)
return cXinelibPlayerControl::IsOpen();
}
-bool cPlayerFactory::Launch(ePlayMode PlayMode,
+bool cPlayerFactory::Launch(cXinelibDevice *Dev,
+ ePlayMode PlayMode,
const char *Mrl,
const char *SubFile,
bool BackToMenu)
{
- cXinelibDevice *Dev = &(cXinelibDevice::Instance());
cControl *Control = CreateControl(Dev, PlayMode, Mrl, SubFile, BackToMenu);
if (!Control) {
@@ -1839,11 +1844,11 @@ bool cPlayerFactory::Launch(ePlayMode PlayMode,
return true;
}
-bool cPlayerFactory::Launch(ePlayMode PlayMode,
+bool cPlayerFactory::Launch(cXinelibDevice *Dev,
+ ePlayMode PlayMode,
cPlaylist *Playlist,
bool BackToMenu)
{
- cXinelibDevice *Dev = &(cXinelibDevice::Instance());
cControl *Control = CreateControl(Dev, PlayMode, Playlist, BackToMenu);
if (!Control) {
diff --git a/media_player.h b/media_player.h
index 47ad20e0..c97823ba 100644
--- a/media_player.h
+++ b/media_player.h
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: media_player.h,v 1.23 2010-12-19 14:46:24 phintuka Exp $
+ * $Id: media_player.h,v 1.24 2012-03-19 11:07:52 phintuka Exp $
*
*/
@@ -12,6 +12,7 @@
#define __XINELIB_PLAYER_H
class cPlaylist;
+class cXinelibDevice;
class cPlayerFactory
{
@@ -20,14 +21,14 @@ class cPlayerFactory
// interact with current player
static bool IsOpen(void);
- static void Queue (const char *Mrl);
+ static void Queue (cXinelibDevice *Dev, const char *Mrl);
// launch new media player
- static bool Launch(const char *Mrl, const char *SubFile = NULL) { return Launch(pmNone, Mrl, SubFile); };
+ static bool Launch(cXinelibDevice *Dev, const char *Mrl, const char *SubFile = NULL) { return Launch(Dev, pmNone, Mrl, SubFile); };
- static bool Launch(ePlayMode PlayMode, const char *Mrl, const char *SubFile = NULL, bool BackToMenu = false);
- static bool Launch(ePlayMode PlayMode, cPlaylist *Playlist, bool BackToMenu = false);
+ static bool Launch(cXinelibDevice *Dev, ePlayMode PlayMode, const char *Mrl, const char *SubFile = NULL, bool BackToMenu = false);
+ static bool Launch(cXinelibDevice *Dev, ePlayMode PlayMode, cPlaylist *Playlist, bool BackToMenu = false);
};
#endif // __XINELIB_PLAYER_H
diff --git a/menu.c b/menu.c
index 92b84774..c4f86d73 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c,v 1.94 2012-03-18 19:17:07 phintuka Exp $
+ * $Id: menu.c,v 1.95 2012-03-19 11:07:52 phintuka Exp $
*
*/
@@ -78,18 +78,21 @@ static bool BlurayMenuSupported(const cString& Path)
class cMenuBluray : public cOsdMenu
{
private:
+ cXinelibDevice *m_Dev;
+
cString m_Path;
public:
- cMenuBluray(const char *Path);
+ cMenuBluray(cXinelibDevice *Dev, const char *Path);
virtual ~cMenuBluray() {};
virtual eOSState ProcessKey(eKeys Key);
};
-cMenuBluray::cMenuBluray(const char *Path) : cOsdMenu("BluRay")
+cMenuBluray::cMenuBluray(cXinelibDevice *Dev, const char *Path) : cOsdMenu("BluRay")
{
+ m_Dev = Dev;
m_Path = Path;
Add(new cOsdItem(tr("Play movie title"), osUser1));
Add(new cOsdItem(tr("Play disc"), osUser2));
@@ -101,12 +104,12 @@ eOSState cMenuBluray::ProcessKey(eKeys Key)
eOSState state = cOsdMenu::ProcessKey(Key);
switch (state) {
case osUser1:
- cPlayerFactory::Launch(pmAudioVideo,
+ cPlayerFactory::Launch(m_Dev, pmAudioVideo,
cPlaylist::BuildMrl("bluray", *m_Path),
NULL, true);
return osEnd;
case osUser2:
- cPlayerFactory::Launch(pmAudioVideo,
+ cPlayerFactory::Launch(m_Dev, pmAudioVideo,
cPlaylist::BuildMrl("bd", *m_Path),
NULL, true);
return osEnd;
@@ -341,7 +344,7 @@ eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue, bool Rewind)
if (!ForceOpen && GetCurrent()->IsDvd()) {
/* play dvd */
- cPlayerFactory::Launch(pmAudioVideo,
+ cPlayerFactory::Launch(m_Dev, pmAudioVideo,
cPlaylist::BuildMrl("dvd", *m_CurrentDir, "/", GetCurrent()->Name()),
NULL, true);
return osEnd;
@@ -349,11 +352,11 @@ eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue, bool Rewind)
if (!ForceOpen && GetCurrent()->IsBluRay()) {
cString bd_path = cString::sprintf("%s/%s/", *m_CurrentDir, GetCurrent()->Name());
if (BlurayMenuSupported(bd_path)) {
- AddSubMenu(new cMenuBluray(bd_path));
+ AddSubMenu(new cMenuBluray(m_Dev, bd_path));
return osContinue;
}
/* play BluRay disc/image */
- cPlayerFactory::Launch(pmAudioVideo,
+ cPlayerFactory::Launch(m_Dev, pmAudioVideo,
cPlaylist::BuildMrl("bluray", *m_CurrentDir, "/", GetCurrent()->Name(), "/"),
NULL, true);
return osEnd;
@@ -372,9 +375,9 @@ eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue, bool Rewind)
if (!Queue || !cPlayerFactory::IsOpen())
cControl::Shutdown();
if (Queue)
- cPlayerFactory::Queue(f);
+ cPlayerFactory::Queue(m_Dev, f);
else
- cPlayerFactory::Launch(m_Mode == ShowFiles ? pmAudioVideo : pmAudioOnly, f, NULL, true);
+ cPlayerFactory::Launch(m_Dev, m_Mode == ShowFiles ? pmAudioVideo : pmAudioOnly, f, NULL, true);
return Queue ? osContinue : osEnd;
} else {
@@ -407,19 +410,19 @@ eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue, bool Rewind)
if (!Queue || !cPlayerFactory::IsOpen())
cControl::Shutdown();
if (Queue)
- cPlayerFactory::Queue(f);
+ cPlayerFactory::Queue(m_Dev, f);
if (!cPlayerFactory::IsOpen()) {
if (Rewind)
unlink(cString::sprintf("%s.resume", *f));
if (GetCurrent()->IsBluRay()) {
- AddSubMenu(new cMenuBluray(f));
+ AddSubMenu(new cMenuBluray(m_Dev, f));
return osContinue;
}
if (GetCurrent()->IsDvd())
- cPlayerFactory::Launch(pmAudioVideo, cPlaylist::BuildMrl("dvd", f), NULL, true);
+ cPlayerFactory::Launch(m_Dev, pmAudioVideo, cPlaylist::BuildMrl("dvd", f), NULL, true);
else
- cPlayerFactory::Launch(m_Mode == ShowFiles ? pmAudioVideo : pmAudioOnly,
+ cPlayerFactory::Launch(m_Dev, m_Mode == ShowFiles ? pmAudioVideo : pmAudioOnly,
f, GetCurrent()->SubFile(), true);
}
if (Queue)
@@ -433,7 +436,7 @@ eOSState cMenuBrowseFiles::Open(bool ForceOpen, bool Queue, bool Rewind)
if (it == Get(Current()))
Playlist->SetCurrent(Playlist->Last());
}
- cPlayerFactory::Launch(pmVideoOnly, Playlist, true);
+ cPlayerFactory::Launch(m_Dev, pmVideoOnly, Playlist, true);
}
return osEnd;
}
@@ -686,13 +689,13 @@ eOSState cMenuXinelib::ProcessKey(eKeys Key)
AddSubMenu(new cMenuBrowseFiles(m_Dev, ShowImages));
return osContinue;
case osUser4:
- cPlayerFactory::Launch("dvd:/");
+ cPlayerFactory::Launch(m_Dev, "dvd:/");
return osEnd;
case osUser5:
- AddSubMenu(new cMenuBluray(NULL));
+ AddSubMenu(new cMenuBluray(m_Dev, NULL));
return osContinue;
case osUser6:
- cPlayerFactory::Launch("cdda:/");
+ cPlayerFactory::Launch(m_Dev, "cdda:/");
return osEnd;
case osUser7:
if (!xc.pending_menu_action) {
@@ -742,11 +745,11 @@ eOSState cMenuXinelib::ProcessHotkey(eKeys Key)
switch (Key) {
case HOTKEY_DVD:
- cPlayerFactory::Launch("dvd:/");
+ cPlayerFactory::Launch(m_Dev, "dvd:/");
break;
case HOTKEY_DVD_TRACK1:
- cPlayerFactory::Launch("dvd:/1");
+ cPlayerFactory::Launch(m_Dev, "dvd:/1");
break;
case HOTKEY_LOCAL_FE:
@@ -897,7 +900,7 @@ eOSState cMenuXinelib::ProcessHotkey(eKeys Key)
Message = tr("Default playlist not found");
} else {
LOGDBG("Replaying default playlist: %s", *file);
- cPlayerFactory::Launch(buffer);
+ cPlayerFactory::Launch(m_Dev, buffer);
}
} else {
Message = tr("Default playlist is not symlink");
diff --git a/xineliboutput.c b/xineliboutput.c
index b2983cfc..5d4eafce 100644
--- a/xineliboutput.c
+++ b/xineliboutput.c
@@ -21,7 +21,7 @@
*
* xineliboutput.c: VDR Plugin interface
*
- * $Id: xineliboutput.c,v 1.53 2012-03-19 09:53:14 phintuka Exp $
+ * $Id: xineliboutput.c,v 1.54 2012-03-19 11:07:52 phintuka Exp $
*
*/
@@ -247,7 +247,7 @@ bool cPluginXinelibOutput::Service(const char *Id, void *Data)
if(!strcmp(Id, "MediaPlayer-1.0")) {
if(CData && *CData) {
LOGMSG("Service(%s, %s)", Id, CData);
- cPlayerFactory::Launch(pmAudioVideo, CData);
+ cPlayerFactory::Launch(m_Dev, pmAudioVideo, CData);
return true;
}
LOGMSG("Service(%s) -> true", Id);
@@ -257,7 +257,7 @@ bool cPluginXinelibOutput::Service(const char *Id, void *Data)
else if(!strcmp(Id, "MusicPlayer-1.0")) {
if(CData && *CData) {
LOGMSG("Service(%s, %s)", Id, CData);
- cPlayerFactory::Launch(pmAudioOnly, CData);
+ cPlayerFactory::Launch(m_Dev, pmAudioOnly, CData);
return true;
}
LOGMSG("Service(%s) -> true", Id);
@@ -267,7 +267,7 @@ bool cPluginXinelibOutput::Service(const char *Id, void *Data)
else if(!strcmp(Id, "DvdPlayer-1.0")) {
if(Data && *CData) {
LOGMSG("Service(%s, %s)", Id, CData);
- cPlayerFactory::Launch(pmNone, CData);
+ cPlayerFactory::Launch(m_Dev, pmNone, CData);
return true;
}
LOGMSG("Service(%s) -> true", Id);
@@ -277,7 +277,7 @@ bool cPluginXinelibOutput::Service(const char *Id, void *Data)
else if(!strcmp(Id, "ImagePlayer-1.0")) {
if(CData && *CData) {
LOGMSG("Service(%s, %s)", Id, CData);
- cPlayerFactory::Launch(pmVideoOnly, CData);
+ cPlayerFactory::Launch(m_Dev, pmVideoOnly, CData);
return true;
}
LOGMSG("Service(%s) -> true", Id);
@@ -290,7 +290,7 @@ bool cPluginXinelibOutput::Service(const char *Id, void *Data)
int local_frontend = strstra(CData, xc.s_frontends, -1);
if (local_frontend >= 0 && local_frontend < FRONTEND_count && strcmp(CData, xc.local_frontend)) {
strn0cpy(xc.local_frontend, xc.s_frontends[local_frontend], sizeof(xc.local_frontend));
- cXinelibDevice::Instance().ConfigureWindow(
+ m_Dev->ConfigureWindow(
xc.fullscreen, xc.width, xc.height, xc.modeswitch, xc.modeline,
xc.display_aspect, xc.scale_video);
}
@@ -329,7 +329,7 @@ cString cPluginXinelibOutput::SVDRPCommand(const char *Command, const char *Opti
if(strcasecmp(Command, "PMDA") == 0) {
if(*Option) {
LOGMSG("SVDRP(%s, %s)", Command, Option);
- cPlayerFactory::Launch(pmAudioVideo, Option);
+ cPlayerFactory::Launch(m_Dev, pmAudioVideo, Option);
return cString("Playing video file");
} else {
ReplyCode = 550; // Requested action not taken
@@ -340,9 +340,9 @@ cString cPluginXinelibOutput::SVDRPCommand(const char *Command, const char *Opti
else if(strcasecmp(Command, "PDVD") == 0) {
if(*Option) {
LOGMSG("SVDRP(%s, %s)", Command, Option);
- cPlayerFactory::Launch(pmNone, Option);
+ cPlayerFactory::Launch(m_Dev, pmNone, Option);
} else {
- cPlayerFactory::Launch(pmNone, "dvd:/");
+ cPlayerFactory::Launch(m_Dev, pmNone, "dvd:/");
}
return cString("Playing DVD disc");
}
@@ -350,7 +350,7 @@ cString cPluginXinelibOutput::SVDRPCommand(const char *Command, const char *Opti
else if(strcasecmp(Command, "PMSC") == 0) {
if(*Option) {
LOGMSG("SVDRP(%s, %s)", Command, Option);
- cPlayerFactory::Launch(pmAudioOnly, Option);
+ cPlayerFactory::Launch(m_Dev, pmAudioOnly, Option);
return cString("Playing music file");
} else {
ReplyCode = 550; // Requested action not taken
@@ -361,7 +361,7 @@ cString cPluginXinelibOutput::SVDRPCommand(const char *Command, const char *Opti
else if(strcasecmp(Command, "PIMG") == 0) {
if(*Option) {
LOGMSG("SVDRP(%s, %s)", Command, Option);
- cPlayerFactory::Launch(pmVideoOnly, Option);
+ cPlayerFactory::Launch(m_Dev, pmVideoOnly, Option);
return cString("Showing image file");
} else {
ReplyCode = 550; // Requested action not taken
@@ -372,7 +372,7 @@ cString cPluginXinelibOutput::SVDRPCommand(const char *Command, const char *Opti
else if(strcasecmp(Command, "QMSC") == 0) {
if(*Option) {
LOGMSG("SVDRP(%s, %s)", Command, Option);
- cPlayerFactory::Queue(Option);
+ cPlayerFactory::Queue(m_Dev, Option);
return cString("Queueing music file");
} else {
ReplyCode = 550; // Requested action not taken