* Streamline some TiVo ifdefs.

This commit is contained in:
Justin Maggard 2012-06-30 00:26:55 +00:00
parent 61fbce18ba
commit 5f14c68597
5 changed files with 37 additions and 36 deletions

View File

@ -210,26 +210,6 @@ dlna_timestamp_is_present(const char *filename, int *raw_packet_size)
return 0; return 0;
} }
#ifdef TIVO_SUPPORT
int
is_tivo_file(const char *path)
{
unsigned char buf[5];
unsigned char hdr[5] = { 'T','i','V','o','\0' };
int fd;
/* read file header */
fd = open(path, O_RDONLY);
if( !fd )
return 0;
if( read(fd, buf, 5) < 0 )
buf[0] = 'X';
close(fd);
return !memcmp(buf, hdr, 5);
}
#endif
void void
check_for_captions(const char *path, int64_t detailID) check_for_captions(const char *path, int64_t detailID)
{ {

View File

@ -90,10 +90,8 @@
#include "scanner.h" #include "scanner.h"
#include "inotify.h" #include "inotify.h"
#include "log.h" #include "log.h"
#ifdef TIVO_SUPPORT
#include "tivo_beacon.h" #include "tivo_beacon.h"
#include "tivo_utils.h" #include "tivo_utils.h"
#endif
#if SQLITE_VERSION_NUMBER < 3005001 #if SQLITE_VERSION_NUMBER < 3005001
# warning "Your SQLite3 library appears to be too old! Please use 3.5.1 or newer." # warning "Your SQLite3 library appears to be too old! Please use 3.5.1 or newer."

View File

@ -140,4 +140,23 @@ TiVoRandomSeedFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
seedRandomness(sizeof(r), &r, seed); seedRandomness(sizeof(r), &r, seed);
sqlite3_result_int64(context, r); sqlite3_result_int64(context, r);
} }
int
is_tivo_file(const char *path)
{
unsigned char buf[5];
unsigned char hdr[5] = { 'T','i','V','o','\0' };
int fd;
/* read file header */
fd = open(path, O_RDONLY);
if( !fd )
return 0;
if( read(fd, buf, 5) < 0 )
buf[0] = 'X';
close(fd);
return !memcmp(buf, hdr, 5);
}
#endif #endif

View File

@ -22,6 +22,7 @@
* along with MiniDLNA. If not, see <http://www.gnu.org/licenses/>. * along with MiniDLNA. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "config.h" #include "config.h"
#ifdef TIVO_SUPPORT #ifdef TIVO_SUPPORT
#include <sqlite3.h> #include <sqlite3.h>
@ -37,4 +38,9 @@ decodeString(char *string, int inplace);
void void
TiVoRandomSeedFunc(sqlite3_context *context, int argc, sqlite3_value **argv); TiVoRandomSeedFunc(sqlite3_context *context, int argc, sqlite3_value **argv);
int
is_tivo_file(const char *path);
#else
#define decodeString(X, Y) ({})
#endif #endif

View File

@ -75,10 +75,8 @@
#include "log.h" #include "log.h"
#include "sql.h" #include "sql.h"
#include <libexif/exif-loader.h> #include <libexif/exif-loader.h>
#ifdef TIVO_SUPPORT
#include "tivo_utils.h" #include "tivo_utils.h"
#include "tivo_commands.h" #include "tivo_commands.h"
#endif
#include "sendfile.h" #include "sendfile.h"
@ -1624,14 +1622,14 @@ SendResp_resizedimg(struct upnphttp * h, char * object)
int width=640, height=480, dstw, dsth, size; int width=640, height=480, dstw, dsth, size;
int srcw, srch; int srcw, srch;
unsigned char * data = NULL; unsigned char * data = NULL;
char *path, *file_path; char *path, *file_path = NULL;
char *resolution; char *resolution = NULL;
char *key, *val; char *key, *val;
char *saveptr, *item=NULL; char *saveptr, *item = NULL;
int rotate; int rotate;
/* Not implemented yet * /* Not implemented yet *
char *pixelshape=NULL; */ char *pixelshape=NULL; */
int64_t id; long long id;
int rows=0, chunked, ret; int rows=0, chunked, ret;
image_s *imsrc = NULL, *imdst = NULL; image_s *imsrc = NULL, *imdst = NULL;
int scale = 1; int scale = 1;
@ -1639,16 +1637,18 @@ SendResp_resizedimg(struct upnphttp * h, char * object)
id = strtoll(object, &saveptr, 10); id = strtoll(object, &saveptr, 10);
snprintf(buf, sizeof(buf), "SELECT PATH, RESOLUTION, ROTATION from DETAILS where ID = '%lld'", (long long)id); snprintf(buf, sizeof(buf), "SELECT PATH, RESOLUTION, ROTATION from DETAILS where ID = '%lld'", (long long)id);
ret = sql_get_table(db, buf, &result, &rows, NULL); ret = sql_get_table(db, buf, &result, &rows, NULL);
if( (ret != SQLITE_OK) ) if( ret != SQLITE_OK )
{ {
DPRINTF(E_ERROR, L_HTTP, "Didn't find valid file for %lld!\n", id);
Send500(h); Send500(h);
return; return;
} }
file_path = result[3]; if( rows )
resolution = result[4]; {
rotate = result[5] ? atoi(result[5]) : 0; file_path = result[3];
if( !rows || !file_path || !resolution || (access(file_path, F_OK) != 0) ) resolution = result[4];
rotate = result[5] ? atoi(result[5]) : 0;
}
if( !file_path || !resolution || (access(file_path, F_OK) != 0) )
{ {
DPRINTF(E_WARN, L_HTTP, "%s not found, responding ERROR 404\n", object); DPRINTF(E_WARN, L_HTTP, "%s not found, responding ERROR 404\n", object);
sqlite3_free_table(result); sqlite3_free_table(result);
@ -1661,9 +1661,7 @@ SendResp_resizedimg(struct upnphttp * h, char * object)
path = saveptr ? saveptr + 1 : object; path = saveptr ? saveptr + 1 : object;
for( item = strtok_r(path, "&,", &saveptr); item != NULL; item = strtok_r(NULL, "&,", &saveptr) ) for( item = strtok_r(path, "&,", &saveptr); item != NULL; item = strtok_r(NULL, "&,", &saveptr) )
{ {
#ifdef TIVO_SUPPORT
decodeString(item, 1); decodeString(item, 1);
#endif
val = item; val = item;
key = strsep(&val, "="); key = strsep(&val, "=");
if( !val ) if( !val )