/src/vlc/include/vlc_probe.h
Line | Count | Source (jump to first uncovered line) |
1 | | /***************************************************************************** |
2 | | * vlc_probe.h: service probing interface |
3 | | ***************************************************************************** |
4 | | * Copyright (C) 2009 Rémi Denis-Courmont |
5 | | * |
6 | | * This program is free software; you can redistribute it and/or modify it |
7 | | * under the terms of the GNU Lesser General Public License as published by |
8 | | * the Free Software Foundation; either version 2.1 of the License, or |
9 | | * (at your option) any later version. |
10 | | * |
11 | | * This program is distributed in the hope that it will be useful, |
12 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | | * GNU Lesser General Public License for more details. |
15 | | * |
16 | | * You should have received a copy of the GNU Lesser General Public License |
17 | | * along with this program; if not, write to the Free Software Foundation, |
18 | | * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
19 | | *****************************************************************************/ |
20 | | |
21 | | #ifndef VLC_PROBE_H |
22 | | # define VLC_PROBE_H 1 |
23 | | |
24 | | # include <stdlib.h> |
25 | | |
26 | | /** |
27 | | * \file |
28 | | * This file defines functions and structures to run-time probe VLC extensions |
29 | | */ |
30 | | |
31 | | # ifdef __cplusplus |
32 | | extern "C" { |
33 | | # endif |
34 | | |
35 | | void *vlc_probe (vlc_object_t *, const char *, size_t *); |
36 | | #define vlc_probe(obj, cap, pcount) \ |
37 | 0 | vlc_probe(VLC_OBJECT(obj), cap, pcount) |
38 | | |
39 | | struct vlc_probe_t |
40 | | { |
41 | | struct vlc_object_t obj; |
42 | | |
43 | | void *list; |
44 | | size_t count; |
45 | | }; |
46 | | |
47 | | typedef struct vlc_probe_t vlc_probe_t; |
48 | | |
49 | | static inline int vlc_probe_add(vlc_probe_t *obj, const void *data, |
50 | | size_t len) |
51 | 0 | { |
52 | 0 | char *tab = (char *)realloc (obj->list, (obj->count + 1) * len); |
53 | |
|
54 | 0 | if (unlikely(tab == NULL)) |
55 | 0 | return VLC_ENOMEM; |
56 | 0 | memcpy(tab + (obj->count * len), data, len); |
57 | 0 | obj->list = tab; |
58 | 0 | obj->count++; |
59 | 0 | return VLC_SUCCESS; |
60 | 0 | } Unexecuted instantiation: sap.c:vlc_probe_add Unexecuted instantiation: libvlc.c:vlc_probe_add Unexecuted instantiation: media_source.c:vlc_probe_add Unexecuted instantiation: media_tree.c:vlc_probe_add Unexecuted instantiation: input.c:vlc_probe_add Unexecuted instantiation: player.c:vlc_probe_add Unexecuted instantiation: services_discovery.c:vlc_probe_add Unexecuted instantiation: probe.c:vlc_probe_add Unexecuted instantiation: renderer_discovery.c:vlc_probe_add |
61 | | |
62 | 0 | # define VLC_PROBE_CONTINUE VLC_EGENERIC |
63 | | # define VLC_PROBE_STOP VLC_SUCCESS |
64 | | |
65 | | # ifdef __cplusplus |
66 | | } |
67 | | # endif |
68 | | |
69 | | #endif |