Relicense under LGPLv2.1+
[www-quvi.git] / Link.cxx
blob9f34627a1218faca3d6cb24a71b4082c6e7f90ee
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 Link::Link () :length_bytes (-1) { }
26 Link::Link (quvi_video_t qv) :length_bytes (-1)
28 #define _wrap(id,dst,type) \
29 do { type t; quvi_getprop(qv,id,&t); dst=t; } while (0)
30 _wrap(QUVIPROP_VIDEOURL, url, char*);
31 _wrap(QUVIPROP_VIDEOFILECONTENTTYPE, content_type, char*);
32 _wrap(QUVIPROP_VIDEOFILESUFFIX, file_suffix, char*);
33 _wrap(QUVIPROP_VIDEOFILELENGTH, length_bytes, double);
34 #undef _wrap
37 Link::Link (const Link& l) :length_bytes (-1)
39 _swap (l);
42 Link& Link::operator=(const Link& l)
44 if (this != &l) _swap (l);
45 return *this;
48 Link::~Link () { }
50 void
51 Link::_swap (const Link& l)
53 content_type = l.content_type;
54 file_suffix = l.file_suffix;
55 url = l.url;
56 length_bytes = l.length_bytes;
59 // vim: set ts=2 sw=2 tw=72 expandtab: