[mythtv] dvbrecorder.cpp

Tom Hughes tom at compton.nu
Wed Jan 26 04:09:45 EST 2005


In message <41F75697.80303 at exorpro.de>
        Kristian Kalweit <kalweit at exorpro.de> wrote:

> After looking in the code I think
>
> SetOption("tvformat", gContext->GetSetting("TVFormat"));
>
> have to be changed to
>
> DTVRecorder::SetOption("tvformat", gContext->GetSetting("TVFormat"));
>
> because DTVRecorder::SetOption accepts a String as
> value. DTVRecorder::SetOption is called by DVBRecorder::SetOption
> which only accepting int.

There are two different overloads of SetOption, one which takes
an int and one which takes a string.

The one which takes a string is implemented in RecorderBase and
inherited by DVBRecorder via DTVRecorder. Likewise for the int
one except that DTVRecorder and DVBRecorder both implement that
and then pass it on.

In fact the string one has a forwarder in DTVRecorder but not
in DVBRecorder.

Unfortunately my C++ is a bit too rusty to know what is supposed
to happen when a derived class provides one member of a set of
overloaded functions from it's parent and not another - does the
parent class routine get called for the other overloads or do they
become invisible?

If the latter then the solution is to add a forwarder to DVBRecorder
as in DTVRecorder.

That said, the TVFormat change has been working for me for some
time now. Presumably you get a compilation error because it can't
find a suitable overload?

Tom

-- 
Tom Hughes (tom at compton.nu)
http://www.compton.nu/


More information about the mythtv-dev mailing list