Hallo,
da das 3DControl-Plugin bei den Aufnahmen nur auf den Namen prüft, wollte ich das gern so umbauen das es aus der Info des aktuellen Recordings den Sendernamen ermittelt. Damit kann dann das gleiche Handling wie beim Umschalten verwendet werden.
Da ich jedoch von C keine Ahnung habe tue ich mir sehr schwer damit die aktuelle Aufnahme zu ermitteln.
Aktuell sieht der Code so aus:
Code
void cMyStatusMonitor::Replaying(const cControl *Control, const char *Name, const char *FileName, bool On)
{
if (On)
{
int NewMode = Disable; // default
if (stristr(FileName, "3D")) {
if (stristr(FileName, "OU")) {
//control->Set3DMode(TopBottom);
NewMode = TopBottom;
}
else {
if (stristr(FileName, "TB")).
NewMode = TopBottom;
else.
NewMode = SideBySide;
}
}
else{
// No 3D in recording name, check recording info for ChannelID
if (cReplayControl::NowReplaying()) {
const cRecording *Recording = cReplayControl::GetRecording();
const cRecordingInfo *Info = Recording->Info();
if (Info) {
cChannel *Channel = Channels.GetByChannelID(Info->ChannelID());
if (Channel && (Channel->Number() > 0)) {
switch (config.GetChannelMode(Channel)) {
case Disable3D: break;
case force3DSbS: NewMode = SideBySide; break;
case force3DTB: NewMode = TopBottom; break;
default:
if (stristr(Channel->Name(), "3D"))
NewMode = SideBySide;
break;
}
}
}
}
}
// Now apply new mode to 3dcontrol
control->Set3DMode(NewMode);
}
}
Alles anzeigen
Beim Compilieren kommt dann der Fehler:
Code
3dcontrol.c: In member function ‘virtual void cMyStatusMonitor::Replaying(const cControl*, const char*, const char*, bool)’:
3dcontrol.c:402:68: error: cannot call member function ‘virtual const cRecording* cReplayControl::GetRecording()’ without object
make[1]: *** [3dcontrol.o] Fehler 1
Damit kann ich nur gar nichts anfangen. Mit cReplayControl::NowReplaying hat er keine Probleme, aber cReplayControl::GetRecording klappt nicht.
Was mache ich da falsch (als Delphi-Programmierer kann ich mit der C-Syntax nur bedingt was anfangen).
Tschau, Uwe.