I didn't like the need to have "primary-layer=2" in /etc/directfbrc, and
I also think mgatv output should always go to TV regardless of the
primary layer. The included patch always defaults both OSD and video
layers to crtc2 when mgatv option is used.
-- Heikki Lindholm
--- video-dfb.c.old 2006-09-16 20:11:11.000000000 +0300
+++ video-dfb.c 2006-09-16 20:11:15.000000000 +0300
@@ -307,23 +307,19 @@
DFBWrapper=dfb;
fprintf(stderr,"[dfb] Enumerating display Layers\n");
- osdLayer=dfb->GetDisplayLayer(DLID_PRIMARY);
- if (!osdLayer) {
- fprintf(stderr,"[dfb] no OSD layer exiting\n");
- exit(EXIT_FAILURE);
- }
if (!setupStore->useMGAtv)
{
+ osdLayer=dfb->GetDisplayLayer(DLID_PRIMARY);
+ if (!osdLayer) {
+ fprintf(stderr,"[dfb] no OSD layer exiting\n");
+ exit(EXIT_FAILURE);
+ }
+
fprintf(stderr,"[dfb] Configuring CooperativeLevel for OSD\n");
osdLayer->SetCooperativeLevel(DLSCL_ADMINISTRATIVE);
}
- osdLayerDescription = osdLayer->GetDescription();
-
- osdLayer->GetConfiguration(&osdLayerConfiguration);
- osdLayerConfiguration.flags = DLCONF_ALL;
-
videoLayer = NULL;
layerInfo = &layerList [ANY_LAYER];
if (setupStore->useMGAtv) {
@@ -353,6 +349,21 @@
exit(EXIT_FAILURE);
}
+ if (setupStore->useMGAtv)
+ {
+ osdLayer=dfb->GetDisplayLayer(videoLayer->GetID());
+
+ if (!osdLayer) {
+ fprintf(stderr,"[dfb] no OSD layer exiting\n");
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ osdLayerDescription = osdLayer->GetDescription();
+
+ osdLayer->GetConfiguration(&osdLayerConfiguration);
+ osdLayerConfiguration.flags = DLCONF_ALL;
+
videoLayerDescription = videoLayer->GetDescription();
/*
--------------------------------------------------------------------------
_______________________________________________
Softdevice-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/softdevice-devel