mirror of
https://github.com/tuxbox-neutrino/libstb-hal.git
synced 2025-08-26 23:13:16 +02:00
[SPARK] cVideo::ShowPicture: add optional argument for destination m2v
This commit is contained in:
@@ -211,7 +211,7 @@ void cVideo::SetVideoMode(analog_mode_t)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void cVideo::ShowPicture(const char *fname)
|
void cVideo::ShowPicture(const char *fname, const char *)
|
||||||
{
|
{
|
||||||
lt_info("%s(%s)\n", __func__, fname);
|
lt_info("%s(%s)\n", __func__, fname);
|
||||||
if (access(fname, R_OK))
|
if (access(fname, R_OK))
|
||||||
|
@@ -180,7 +180,7 @@ class cVideo : public OpenThreads::Thread
|
|||||||
bool SetCECMode(VIDEO_HDMI_CEC_MODE) { return true; };
|
bool SetCECMode(VIDEO_HDMI_CEC_MODE) { return true; };
|
||||||
void SetCECAutoView(bool) { return; };
|
void SetCECAutoView(bool) { return; };
|
||||||
void SetCECAutoStandby(bool) { return; };
|
void SetCECAutoStandby(bool) { return; };
|
||||||
void ShowPicture(const char * fname);
|
void ShowPicture(const char * fname, const char *);
|
||||||
void StopPicture();
|
void StopPicture();
|
||||||
void Standby(unsigned int bOn);
|
void Standby(unsigned int bOn);
|
||||||
void Pig(int x, int y, int w, int h, int osd_w = 1064, int osd_h = 600, int startx = 0, int starty = 0, int endx = 1279, int endy = 719);
|
void Pig(int x, int y, int w, int h, int osd_w = 1064, int osd_h = 600, int startx = 0, int starty = 0, int endx = 1279, int endy = 719);
|
||||||
|
@@ -380,7 +380,7 @@ void cVideo::SetVideoMode(analog_mode_t mode)
|
|||||||
proc_put("/proc/stb/avs/0/colorformat", m, strlen(m));
|
proc_put("/proc/stb/avs/0/colorformat", m, strlen(m));
|
||||||
}
|
}
|
||||||
|
|
||||||
void cVideo::ShowPicture(const char * fname)
|
void cVideo::ShowPicture(const char * fname, const char *_destname)
|
||||||
{
|
{
|
||||||
lt_debug("%s(%s)\n", __func__, fname);
|
lt_debug("%s(%s)\n", __func__, fname);
|
||||||
char destname[512];
|
char destname[512];
|
||||||
@@ -398,22 +398,26 @@ void cVideo::ShowPicture(const char * fname)
|
|||||||
if (lastDot && !strcasecmp(lastDot + 1, "m2v"))
|
if (lastDot && !strcasecmp(lastDot + 1, "m2v"))
|
||||||
strncpy(destname, fname, sizeof(destname));
|
strncpy(destname, fname, sizeof(destname));
|
||||||
else {
|
else {
|
||||||
strcpy(destname, "/var/cache");
|
if (_destname)
|
||||||
if (stat(fname, &st2))
|
strncpy(destname, _destname, sizeof(destname));
|
||||||
{
|
else {
|
||||||
lt_info("%s: could not stat %s (%m)\n", __func__, fname);
|
strcpy(destname, "/var/cache");
|
||||||
return;
|
if (stat(fname, &st2))
|
||||||
|
{
|
||||||
|
lt_info("%s: could not stat %s (%m)\n", __func__, fname);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mkdir(destname, 0755);
|
||||||
|
/* the cache filename is (example for /share/tuxbox/neutrino/icons/radiomode.jpg):
|
||||||
|
/var/cache/share.tuxbox.neutrino.icons.radiomode.jpg.m2v
|
||||||
|
build that filename first...
|
||||||
|
TODO: this could cause name clashes, use a hashing function instead... */
|
||||||
|
strcat(destname, fname);
|
||||||
|
p = &destname[strlen("/var/cache/")];
|
||||||
|
while ((p = strchr(p, '/')) != NULL)
|
||||||
|
*p = '.';
|
||||||
|
strcat(destname, ".m2v");
|
||||||
}
|
}
|
||||||
mkdir(destname, 0755);
|
|
||||||
/* the cache filename is (example for /share/tuxbox/neutrino/icons/radiomode.jpg):
|
|
||||||
/var/cache/share.tuxbox.neutrino.icons.radiomode.jpg.m2v
|
|
||||||
build that filename first...
|
|
||||||
TODO: this could cause name clashes, use a hashing function instead... */
|
|
||||||
strcat(destname, fname);
|
|
||||||
p = &destname[strlen("/var/cache/")];
|
|
||||||
while ((p = strchr(p, '/')) != NULL)
|
|
||||||
*p = '.';
|
|
||||||
strcat(destname, ".m2v");
|
|
||||||
/* ...then check if it exists already... */
|
/* ...then check if it exists already... */
|
||||||
if (stat(destname, &st) || (st.st_mtime != st2.st_mtime) || (st.st_size == 0))
|
if (stat(destname, &st) || (st.st_mtime != st2.st_mtime) || (st.st_size == 0))
|
||||||
{
|
{
|
||||||
|
@@ -186,7 +186,7 @@ class cVideo
|
|||||||
bool SetCECMode(VIDEO_HDMI_CEC_MODE) { return true; };
|
bool SetCECMode(VIDEO_HDMI_CEC_MODE) { return true; };
|
||||||
void SetCECAutoView(bool) { return; };
|
void SetCECAutoView(bool) { return; };
|
||||||
void SetCECAutoStandby(bool) { return; };
|
void SetCECAutoStandby(bool) { return; };
|
||||||
void ShowPicture(const char * fname);
|
void ShowPicture(const char * fname, const char *_destname = NULL);
|
||||||
void StopPicture();
|
void StopPicture();
|
||||||
void Standby(unsigned int bOn);
|
void Standby(unsigned int bOn);
|
||||||
void Pig(int x, int y, int w, int h, int osd_w = 1064, int osd_h = 600, int startx = 0, int starty = 0, int endx = 1279, int endy = 719);
|
void Pig(int x, int y, int w, int h, int osd_w = 1064, int osd_h = 600, int startx = 0, int starty = 0, int endx = 1279, int endy = 719);
|
||||||
|
Reference in New Issue
Block a user