Hallo!
Ich habe in meinem Plugin meine eigene Klassen cMenuRecordings und cMenuRecordingItem.
Desweiteren eine von cReplayControl abgeleitete Klasse, da ich beim Stoppen des Replays
noch ein paar Aufräumarbeiten erledigen muss.
Beim Aufruf von Play() wird die Aufnahme zwar abgespielt, jedoch verschwindet die OSD
Anzeige nicht. Ich dachte, das würde doch das Zurückliefern von osEnd erledigt. Die Methode
Prepare() bereitet nur die Dateien zum Abspielen vor, also hier nicht relevant.
Code
eOSState cMyMenuRecordings::Play(void)
{
cMyMenuRecordingItem *ri = (cMyMenuRecordingItem *)Get(Current());
if (ri) {
if (ri->IsDirectory())
Open();
else if (Prepare(ri)) {
cMyReplayControl::SetRecording(ri->Recording()->FileName());
cControl::Launch(new cMyReplayControl(ri));
return osEnd;
}
}
return osContinue;
}
cMyReplayControl::cMyReplayControl(cMyMenuRecordingItem *Ri)
: ri(Ri)
{
}
cMyReplayControl::~cMyReplayControl()
{
cReplayControl::Stop();
cArchive::UnlinkArchive(ri->Recording());
cArchive::UnmountArchive();
}
Alles anzeigen