[mythtv] [PATCH] MediaMonitor data and MythVideo support
Xavier Hervy
maxpower44 at tiscali.fr
Thu Jul 1 13:12:34 EDT 2004
Xavier Hervy wrote:
> Xavier Hervy wrote:
>
>> Xavier Hervy wrote:
>>
>>> J. Donavan Stanley wrote:
>>>
>>>> Xavier Hervy wrote:
>>>>
>>>>> J. Donavan Stanley wrote:
>>>>>
>>>>>>
>>>>>> As it turns out, the only disks I stick in my machines are either
>>>>>> DVDs or Music CDs so the current handlers work well enough for
>>>>>> me. I tried to plan ahead to make it fairly easy to extend this,
>>>>>> it's just not been on my radar.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Media handler is not enougth. for example (in my patch) when you
>>>>> try to play a movie on a cd, mythvideo ask for cd , but when i
>>>>> insert it, mythvideo is closed and open a new time.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> How about adding the notion of a "currentHandler" to the
>>>> Mediamonitor? That way the notification system could do something
>>>> like "If I found a handler and it's not the same handler as is
>>>> currently active then fire the event"..
>>>>
>>>> This would take care of quite a few "isms" I've seen..
>>>
>>>
>>>
>>>
>>> create a QMediaEvent send by mediamonitor
>>>
>>> MyDialog::contentsMediaChangeEvent( QMediaEvent *me )
>>> {
>>> //if the event interest my dialog then
>>> if (me->MediaType == MEDIATYPE_DATA)
>>> // do something
>>> else
>>> MythDialog::contentsMediaChangeEvent( me );
>>> }
>>>
>>> and MythDialog implement like this
>>> MythDialog::contentsMediaChangeEvent( QMediaEvent *me )
>>> {
>>> // nobody catch this event then run appropriate mediahandler
>>>
>>> }
>>>
>>> Xavier
>>>
>>>
>> Or simply create a virtual function in MythDialog like this :
>> bool MythDialog::onMediaEvent(MythMediaDevice * mediadevice)
>> {
>> return false;
>> }
>>
>> Then mediamonitor can made something like that :
>> bool iscatched = gContext->GetCurrentWindow()->onMediaEvent(mymedia);
>> if (!iscaatched){
>> //run mediahandler like before
>> }
>>
>> And a specific dialog can do that, example with VideoTree
>>
>> bool VideoTree::onMediaEvent(MythMediaDevice * mediaevent){
>> emit slotMediaEvent(mediadevice);
>> return true;
>> }
>>
>> with slot :
>> VideoTree::slotMediaEvent(MythMediaDevice * mediadevice){
>> //here do what i should do with mediadevice
>> }
>>
>> any comment about that ?
>>
>> Xavier
>>
>
> I try this :
> QWidget * activewindow = qApp->activeWindow();
>
> if (activewindow)
> if (MythDialog * mythActiveWindow
> = dynamic_cast<MythDialog*>(activewindow))
> cout << "Myth activewindow " <<mythActiveWindow->name() << endl;
> else if (QDialog * mythActiveWindow
> = dynamic_cast<QDialog*>(activewindow))
> cout << "QDialog activewindow " <<mythActiveWindow->name() << endl;
>
> to get the active window, but the result is always like this :
> QDialog activewindow unnamed
>
> What is strange is that activeWindow is a QDialog and the name always
> "unnamed". if someone know how to get the active MythDialog, can he tell
> me ?
>
> Xavier
>
>
Forget this, simply that MythDialog inherit from QFrame not from QDialog
Xavier
More information about the mythtv-dev
mailing list