⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pictures.c

📁 video disk recorder - linux
💻 C
字号:
/* * pictures.c: A plugin for the Video Disk Recorder * * See the README file for copyright information and how to reach the author. * * $Id: pictures.c 1.7 2008/03/14 12:57:19 kls Exp $ */#include <getopt.h>#include <vdr/plugin.h>#include "menu.h"#include "player.h"static const char *VERSION       = "0.0.7";static const char *DESCRIPTION   = trNOOP("A simple picture viewer");static const char *MAINMENUENTRY = trNOOP("Pictures");// --- cMenuSetupPictures ----------------------------------------------------class cMenuSetupPictures : public cMenuSetupPage {private:  char newPictureDirectory[PATH_MAX];  int newSlideShowDelay;protected:  virtual void Store(void);public:  cMenuSetupPictures(void);  };cMenuSetupPictures::cMenuSetupPictures(void){  strn0cpy(newPictureDirectory, PictureDirectory, sizeof(newPictureDirectory));  newSlideShowDelay = SlideShowDelay;  Add(new cMenuEditStrItem(tr("Picture directory"),    newPictureDirectory, sizeof(newPictureDirectory)));  Add(new cMenuEditIntItem(tr("Slide show delay (s)"), &newSlideShowDelay));}void cMenuSetupPictures::Store(void){  SetupStore("PictureDirectory", strn0cpy(PictureDirectory, newPictureDirectory, sizeof(PictureDirectory)));  SetupStore("SlideShowDelay",   SlideShowDelay = newSlideShowDelay);}// --- cPluginPictures -------------------------------------------------------class cPluginPictures : public cPlugin {private:  // Add any member variables or functions you may need here.public:  cPluginPictures(void);  virtual ~cPluginPictures();  virtual const char *Version(void) { return VERSION; }  virtual const char *Description(void) { return tr(DESCRIPTION); }  virtual const char *CommandLineHelp(void);  virtual bool ProcessArgs(int argc, char *argv[]);  virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }  virtual cOsdObject *MainMenuAction(void);  virtual cMenuSetupPage *SetupMenu(void);  virtual bool SetupParse(const char *Name, const char *Value);  };cPluginPictures::cPluginPictures(void){  // Initialize any member variables here.  // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL  // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!}cPluginPictures::~cPluginPictures(){  // Clean up after yourself!}const char *cPluginPictures::CommandLineHelp(void){  // Return a string that describes all known command line options.  return "  -d DIR,   --dir=DIR      set the picture directory to DIR\n";}bool cPluginPictures::ProcessArgs(int argc, char *argv[]){  // Implement command line argument processing here if applicable.  static struct option long_options[] = {       { "dir",      required_argument, NULL, 'd' },       { NULL }     };  int c;  while ((c = getopt_long(argc, argv, "d:s:", long_options, NULL)) != -1) {        switch (c) {          case 'd': strn0cpy(PictureDirectory, optarg, sizeof(PictureDirectory));                    break;          default:  return false;          }        }  return true;}cOsdObject *cPluginPictures::MainMenuAction(void){  // Perform the action when selected from the main VDR menu.  if (*PictureDirectory)     return cPictureMenu::CreatePictureMenu();  Skins.Message(mtWarning, tr("No picture directory has been defined!"));  return NULL;}cMenuSetupPage *cPluginPictures::SetupMenu(void){  // Return a setup menu in case the plugin supports one.  return new cMenuSetupPictures;}bool cPluginPictures::SetupParse(const char *Name, const char *Value){  // Parse your own setup parameters and store their values.  if      (!strcasecmp(Name, "PictureDirectory")) strn0cpy(PictureDirectory, Value, sizeof(PictureDirectory));  else if (!strcasecmp(Name, "SlideShowDelay"))   SlideShowDelay = atoi(Value);  else     return false;  return true;}VDRPLUGINCREATOR(cPluginPictures); // Don't touch this!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -