00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef MMSFBDEVOMAP_H_
00034 #define MMSFBDEVOMAP_H_
00035
00036 #ifdef __HAVE_FBDEV__
00037
00038 #include "mmsgui/fb/mmsfbdev.h"
00039
00040 class MMSFBDevOmap : public MMSFBDev {
00041 private:
00042 typedef struct {
00043 MMSFBDev *fbdev;
00044 char device[100];
00045 int width;
00046 int height;
00047 MMSFBSurfacePixelFormat pixelformat;
00048 int backbuffer;
00049 } MMSFBDevOmapLayer;
00050
00051 int console;
00052 MMSFBDevOmapLayer osd0;
00053 MMSFBDevOmapLayer vid;
00054 MMSFBDevOmapLayer osd1;
00055 MMSFBDevOmapLayer *primary;
00056
00057 bool openDevice(int id);
00058
00059 bool onGenFBPixelFormatDev(MMSFBSurfacePixelFormat pf, unsigned int *nonstd_format, MMSFBPixelDef *pixeldef);
00060 bool onDisableDev(int fd, string device_file);
00061 bool onActivateDev(int fd, string device_file, struct fb_var_screeninfo *var_screeninfo,
00062 int width, int height, MMSFBSurfacePixelFormat pixelformat, bool switch_mode);
00063
00064 public:
00065 MMSFBDevOmap();
00066 virtual ~MMSFBDevOmap();
00067
00068 bool openDevice(char *device_file = NULL, int console = MMSFBDEV_QUERY_CONSOLE);
00069 void closeDevice();
00070
00071 bool waitForVSync();
00072 bool panDisplay(int buffer_id, void *framebuffer_base);
00073
00074 bool testLayer(int layer_id);
00075 bool initLayer(int layer_id, int width, int height, MMSFBSurfacePixelFormat pixelformat, int backbuffer = 0);
00076
00077 bool releaseLayer(int layer_id);
00078 bool restoreLayer(int layer_id);
00079
00080 private:
00081
00082 bool vtGetFd(int *fd);
00083 };
00084
00085 #endif
00086
00087 #endif