VTB: release CVBuffer after it actually has been rendered
[xbmc.git] / xbmc / network / DllLibPlist.h
blobd93b3596f7882f8d9a6ae54301beb82cf6621c45
1 #pragma once
3 /*
4 * Copyright (C) 2011-2013 Team XBMC
5 * http://xbmc.org
7 * This Program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
10 * any later version.
12 * This Program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with XBMC; see the file COPYING. If not, see
19 * <http://www.gnu.org/licenses/>.
23 #include "DynamicDll.h"
25 #include <plist/plist.h>
27 class DllLibPlistInterface
29 public:
30 virtual ~DllLibPlistInterface() {}
32 virtual void plist_from_bin (const char *plist_bin, uint32_t length, plist_t * plist )=0;
33 virtual plist_t plist_new_dict (void )=0;
34 virtual uint32_t plist_dict_get_size (plist_t node )=0;
35 virtual void plist_get_string_val (plist_t node, char **val )=0;
36 virtual void plist_get_real_val (plist_t node, double *val )=0;
37 virtual plist_t plist_dict_get_item (plist_t node, const char* key )=0;
38 virtual void plist_free (plist_t plist )=0;
39 #ifdef TARGET_WINDOWS
40 virtual void plist_free_string_val (char *val )=0;
41 #endif
42 virtual void plist_to_xml (plist_t plist, char **plist_xml, uint32_t * length)=0;
43 virtual void plist_dict_new_iter (plist_t node, plist_dict_iter *iter )=0;
44 virtual void plist_dict_next_item (plist_t node, plist_dict_iter iter, char **key, plist_t *val) = 0;
48 class DllLibPlist : public DllDynamic, DllLibPlistInterface
50 DECLARE_DLL_WRAPPER(DllLibPlist, DLL_PATH_LIBPLIST)
51 DEFINE_METHOD0(plist_t, plist_new_dict)
52 DEFINE_METHOD1(uint32_t, plist_dict_get_size, (plist_t p1))
53 DEFINE_METHOD1(void, plist_free, (plist_t p1))
54 DEFINE_METHOD2(void, plist_get_string_val, (plist_t p1, char **p2))
55 DEFINE_METHOD2(void, plist_get_real_val, (plist_t p1, double *p2))
56 DEFINE_METHOD2(void, plist_dict_new_iter, (plist_t p1, plist_dict_iter* p2))
57 DEFINE_METHOD2(plist_t, plist_dict_get_item, (plist_t p1, const char* p2))
58 DEFINE_METHOD3(void, plist_from_bin, (const char *p1, uint32_t p2, plist_t *p3))
59 DEFINE_METHOD3(void, plist_to_xml, (plist_t p1, char **p2, uint32_t *p3));
60 DEFINE_METHOD4(void, plist_dict_next_item, (plist_t p1, plist_dict_iter p2, char **p3, plist_t *p4))
61 #ifdef TARGET_WINDOWS
62 DEFINE_METHOD1(void, plist_free_string_val, (char *p1))
63 #endif
66 BEGIN_METHOD_RESOLVE()
67 RESOLVE_METHOD_RENAME(plist_new_dict, plist_new_dict)
68 RESOLVE_METHOD_RENAME(plist_free, plist_free)
69 RESOLVE_METHOD_RENAME(plist_dict_get_size, plist_dict_get_size)
70 RESOLVE_METHOD_RENAME(plist_from_bin, plist_from_bin)
71 RESOLVE_METHOD_RENAME(plist_get_real_val, plist_get_real_val)
72 RESOLVE_METHOD_RENAME(plist_get_string_val, plist_get_string_val)
73 RESOLVE_METHOD_RENAME(plist_dict_get_item, plist_dict_get_item)
74 RESOLVE_METHOD_RENAME(plist_dict_new_iter, plist_dict_new_iter)
75 RESOLVE_METHOD_RENAME(plist_dict_next_item, plist_dict_next_item)
76 RESOLVE_METHOD_RENAME(plist_to_xml, plist_to_xml)
77 #ifdef TARGET_WINDOWS
78 RESOLVE_METHOD_RENAME(plist_free_string_val, plist_free_string_val)
79 #endif
81 END_METHOD_RESOLVE()