vdr 2.6.8
pictures.c
Go to the documentation of this file.
1/*
2 * pictures.c: A plugin for the Video Disk Recorder
3 *
4 * See the README file for copyright information and how to reach the author.
5 *
6 * $Id: pictures.c 5.1 2022/12/05 15:26:23 kls Exp $
7 */
8
9#include <getopt.h>
10#include <vdr/plugin.h>
11#include "menu.h"
12#include "player.h"
13
14static const char *VERSION = "2.6.1";
15static const char *DESCRIPTION = trNOOP("A simple picture viewer");
16static const char *MAINMENUENTRY = trNOOP("Pictures");
17
18// --- cMenuSetupPictures ----------------------------------------------------
19
21private:
22 char newPictureDirectory[PATH_MAX];
24protected:
25 virtual void Store(void);
26public:
28 };
29
37
43
44// --- cPluginPictures -------------------------------------------------------
45
46class cPluginPictures : public cPlugin {
47private:
48 // Add any member variables or functions you may need here.
49public:
50 cPluginPictures(void);
51 virtual ~cPluginPictures();
52 virtual const char *Version(void) { return VERSION; }
53 virtual const char *Description(void) { return tr(DESCRIPTION); }
54 virtual const char *CommandLineHelp(void);
55 virtual bool ProcessArgs(int argc, char *argv[]);
56 virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }
57 virtual cOsdObject *MainMenuAction(void);
58 virtual cMenuSetupPage *SetupMenu(void);
59 virtual bool SetupParse(const char *Name, const char *Value);
60 };
61
63{
64 // Initialize any member variables here.
65 // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
66 // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
67}
68
70{
71 // Clean up after yourself!
72}
73
75{
76 // Return a string that describes all known command line options.
77 return " -d DIR, --dir=DIR set the picture directory to DIR\n";
78}
79
80bool cPluginPictures::ProcessArgs(int argc, char *argv[])
81{
82 // Implement command line argument processing here if applicable.
83 static struct option long_options[] = {
84 { "dir", required_argument, NULL, 'd' },
85 { NULL, no_argument, NULL, 0 }
86 };
87
88 int c;
89 while ((c = getopt_long(argc, argv, "d:", long_options, NULL)) != -1) {
90 switch (c) {
91 case 'd': strn0cpy(PictureDirectory, optarg, sizeof(PictureDirectory));
92 break;
93 default: return false;
94 }
95 }
96 return true;
97}
98
100{
101 // Perform the action when selected from the main VDR menu.
102 if (*PictureDirectory)
104 Skins.Message(mtWarning, tr("No picture directory has been defined!"));
105 return NULL;
106}
107
109{
110 // Return a setup menu in case the plugin supports one.
111 return new cMenuSetupPictures;
112}
113
114bool cPluginPictures::SetupParse(const char *Name, const char *Value)
115{
116 // Parse your own setup parameters and store their values.
117 if (!strcasecmp(Name, "PictureDirectory")) strn0cpy(PictureDirectory, Value, sizeof(PictureDirectory));
118 else if (!strcasecmp(Name, "SlideShowDelay")) SlideShowDelay = atoi(Value);
119 else
120 return false;
121 return true;
122}
123
124VDRPLUGINCREATOR(cPluginPictures); // Don't touch this!
char PictureDirectory[PATH_MAX]
void SetupStore(const char *Name, const char *Value=NULL)
Definition menuitems.c:1267
virtual void Store(void)
Definition pictures.c:38
cMenuSetupPictures(void)
Definition pictures.c:30
char newPictureDirectory[PATH_MAX]
Definition pictures.c:22
void Add(cOsdItem *Item, bool Current=false, cOsdItem *After=NULL)
Definition osdbase.c:213
static cPictureMenu * CreatePictureMenu(void)
virtual const char * Version(void)
Definition pictures.c:52
virtual const char * CommandLineHelp(void)
Definition pictures.c:74
virtual cOsdObject * MainMenuAction(void)
Definition pictures.c:99
virtual const char * Description(void)
Definition pictures.c:53
virtual cMenuSetupPage * SetupMenu(void)
Definition pictures.c:108
virtual const char * MainMenuEntry(void)
Definition pictures.c:56
virtual bool SetupParse(const char *Name, const char *Value)
Definition pictures.c:114
cPluginPictures(void)
Definition pictures.c:62
virtual ~cPluginPictures()
Definition pictures.c:69
virtual bool ProcessArgs(int argc, char *argv[])
Definition pictures.c:80
const char * Name(void)
Definition plugin.h:36
eKeys Message(eMessageType Type, const char *s, int Seconds=0)
Displays the given message, either through a currently visible display object that is capable of doin...
Definition skins.c:250
#define tr(s)
Definition i18n.h:85
#define trNOOP(s)
Definition i18n.h:88
static const char * VERSION
Definition pictures.c:14
static const char * DESCRIPTION
Definition pictures.c:15
static const char * MAINMENUENTRY
Definition pictures.c:16
#define VDRPLUGINCREATOR(PluginClass)
Definition plugin.h:18
cSkins Skins
Definition skins.c:219
@ mtWarning
Definition skins.h:37
char * strn0cpy(char *dest, const char *src, size_t n)
Definition tools.c:131