Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: idea concerning new OSD interface



Matthias Raus wrote:
> 
> Hi,
> 
> something came to my mind regarding the new OSD plugin interface. As Klaus said, the interface
> would be as general as possible. Does this only affect WHAT is shown on the OSD, or can the plugin
> also control HOW this will be shown? Example: The Windows software "watchtvpro" has the ability that
> an OSD window can be faded in and out gradually; in an older version of that software the OSD
> windows even used to slide in and out of the TV screen. I hope you get what I mean.
> I don't know if you, Klaus, have already thought about this. If this plugin interface should become as
> general as possible, it should also permit such things. Take it just as an idea that you could keep in
> mind...

Basically the OSD interface will look like this (some parts left out for clarity):

class cOsdBase {
public:
  cOsdBase(int Left, int Top);
  virtual ~cOsdBase();
  virtual void DrawPixel(int x, int y, tColor Color);
  virtual void DrawBitmap(int x, int y, const cBitmap &Bitmap, tColor ColorFg = 0, tColor ColorBg = 0);
 virtual void DrawText(int x, int y, const char *s, tColor ColorFg, tColor ColorBg, const cFont *Font, int Width = 0, int Height = 0, int Alignment = taDefault);
  virtual void DrawRectangle(int x1, int y1, int x2, int y2, tColor Color);
  virtual void DrawEllipse(int x1, int y1, int x2, int y2, tColor Color, int Quadrants = 0);
  virtual void Flush(void);
  };

A derived class can take full control over all these things.
If it decides to "fade in/out", it can do so in the Flush() function
or the destructor, repectively.

Klaus


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index