Bump version to 0.2.1
[www-quvi.git] / Media.cxx
blob2ccce13ddac53bdae8d86210b286ae01f9887b15
1 /* WWW::Quvi
2 * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 * 02110-1301 USA
20 #include <string>
22 #include "Quvi.h"
24 #define _init \
25 : content_length(-1), duration(-1)
27 Media::Media()
28 _init
32 Media::Media(quvi_media_t m)
33 _init
35 #define _wrap(id,dst,type) \
36 do { type t; quvi_getprop(m,id,&t); dst=t; } while (0)
37 _wrap(QUVIPROP_PAGETITLE, page_title, char*);
38 _wrap(QUVIPROP_STARTTIME, start_time, char*);
39 _wrap(QUVIPROP_PAGEURL, page_url, char*);
40 _wrap(QUVIPROP_HOSTID, host, char*);
41 _wrap(QUVIPROP_MEDIAID, id, char*);
42 _wrap(QUVIPROP_MEDIACONTENTLENGTH, content_length, double);
43 _wrap(QUVIPROP_MEDIACONTENTTYPE, content_type, char*);
44 _wrap(QUVIPROP_FILESUFFIX, file_suffix, char*);
45 _wrap(QUVIPROP_MEDIAURL, url, char*);
46 _wrap(QUVIPROP_MEDIATHUMBNAILURL, thumbnail_url, char*);
47 _wrap(QUVIPROP_MEDIADURATION, duration, double);
48 #undef _wrap
49 quvi_parse_close(&m);
52 Media::Media(const Media& v)
53 _init
55 _swap(v);
58 #undef _init
60 Media& Media::operator=(const Media& v)
62 if (this != &v) _swap(v);
63 return *this;
66 Media::~Media()
70 void Media::_swap(const Media& m)
72 page_title = m.page_title;
73 start_time = m.start_time;
74 page_url = m.page_url;
75 host = m.host;
76 id = m.id;
77 content_length = m.content_length;
78 content_type = m.content_type;
79 file_suffix = m.file_suffix;
80 url = m.url;
81 thumbnail_url = m.thumbnail_url;
82 duration = m.duration;
85 // vim: set ts=2 sw=2 tw=72 expandtab: