From 0b5c617587ae642370aeb249e743c491e7960c44 Mon Sep 17 00:00:00 2001 From: Toni Gundogdu Date: Sun, 10 Feb 2013 12:55:35 +0200 Subject: [PATCH] quvi_supports: Handle QUVI_SUPPORTS_TYPE_SUBTITLE Signed-off-by: Toni Gundogdu --- src/api/supports.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/api/supports.c b/src/api/supports.c index 55e3954..f58e0c3 100644 --- a/src/api/supports.c +++ b/src/api/supports.c @@ -1,5 +1,5 @@ /* libquvi - * Copyright (C) 2012 Toni Gundogdu + * Copyright (C) 2012,2013 Toni Gundogdu * * This file is part of libquvi . * @@ -29,8 +29,10 @@ #include "_quvi_s.h" #include "_quvi_media_s.h" #include "_quvi_playlist_s.h" +#include "_quvi_subtitle_s.h" /* -- */ #include "misc/match_playlist_script.h" +#include "misc/match_subtitle_script.h" #include "misc/match_media_script.h" static QuviBoolean _supports_playlist(_quvi_t q, const gchar *url, @@ -50,6 +52,24 @@ static QuviBoolean _supports_playlist(_quvi_t q, const gchar *url, return (quvi_ok(q)); } +static QuviBoolean _supports_subtitle(_quvi_t q, const gchar *url, + const QuviSupportsMode mode) +{ + _quvi_subtitle_t qsub = NULL; + + q->status.rc = m_match_subtitle_script(q, &qsub, url, + (mode == QUVI_SUPPORTS_MODE_OFFLINE) + ? QM_MATCH_SUBS_SUPPORTED_OFFLINE + : QM_MATCH_SUBS_SUPPORTED_ONLINE); + + if (qsub != NULL) + { + quvi_subtitle_free((quvi_subtitle_t) qsub); + qsub = NULL; + } + return (quvi_ok(q)); +} + static QuviBoolean _supports_media(_quvi_t q, const gchar *url, const QuviSupportsMode mode) { @@ -104,6 +124,12 @@ QuviBoolean quvi_supports(quvi_t handle, const char *url, if (q->status.rc == QUVI_OK || q->status.rc == QUVI_ERROR_NO_SUPPORT) { + if (type & QUVI_SUPPORTS_TYPE_SUBTITLE) + found = _supports_subtitle(q, url, mode); + } + + if (q->status.rc == QUVI_OK || q->status.rc == QUVI_ERROR_NO_SUPPORT) + { if (type & QUVI_SUPPORTS_TYPE_MEDIA) found = _supports_media(q, url, mode); } -- 2.11.4.GIT