]> git.sesse.net Git - vlc/blob - src/input/vlm_event.c
Use var_Inherit* instead of var_CreateGet*.
[vlc] / src / input / vlm_event.c
1 /*****************************************************************************
2  * vlm_event.c: Events
3  *****************************************************************************
4  * Copyright (C) 2009 Laurent Aimar
5  * $Id$
6  *
7  * Authors: Laurent Aimar < fenrir _AT_ videolan _DOT_ org>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 /*****************************************************************************
25  * Preamble
26  *****************************************************************************/
27 #ifdef HAVE_CONFIG_H
28 # include "config.h"
29 #endif
30
31 #include <vlc_common.h>
32 #include <vlc_vlm.h>
33 #include "vlm_internal.h"
34 #include "vlm_event.h"
35 #include <assert.h>
36
37 /* */
38 static void Trigger( vlm_t *, int i_type, int64_t id, const char *psz_name );
39 static void TriggerInstanceState( vlm_t *, int i_type, int64_t id, const char *psz_name, const char *psz_instance_name, input_state_e input_state );
40
41 /*****************************************************************************
42  *
43  *****************************************************************************/
44 void vlm_SendEventMediaAdded( vlm_t *p_vlm, int64_t id, const char *psz_name )
45 {
46     Trigger( p_vlm, VLM_EVENT_MEDIA_ADDED, id, psz_name );
47 }
48 void vlm_SendEventMediaRemoved( vlm_t *p_vlm, int64_t id, const char *psz_name )
49 {
50     Trigger( p_vlm, VLM_EVENT_MEDIA_REMOVED, id, psz_name );
51 }
52 void vlm_SendEventMediaChanged( vlm_t *p_vlm, int64_t id, const char *psz_name )
53 {
54     Trigger( p_vlm, VLM_EVENT_MEDIA_CHANGED, id, psz_name );
55 }
56
57 void vlm_SendEventMediaInstanceStarted( vlm_t *p_vlm, int64_t id, const char *psz_name )
58 {
59     Trigger( p_vlm, VLM_EVENT_MEDIA_INSTANCE_STARTED, id, psz_name );
60 }
61 void vlm_SendEventMediaInstanceStopped( vlm_t *p_vlm, int64_t id, const char *psz_name )
62 {
63     Trigger( p_vlm, VLM_EVENT_MEDIA_INSTANCE_STOPPED, id, psz_name );
64 }
65
66 void vlm_SendEventMediaInstanceState( vlm_t *p_vlm, int64_t id, const char *psz_name, const char *psz_instance_name, input_state_e state )
67 {
68     TriggerInstanceState( p_vlm, VLM_EVENT_MEDIA_INSTANCE_STATE, id, psz_name, psz_instance_name, state );
69 }
70
71 /*****************************************************************************
72  *
73  *****************************************************************************/
74 static void Trigger( vlm_t *p_vlm, int i_type, int64_t id, const char *psz_name )
75 {
76     vlm_event_t event;
77
78     event.i_type = i_type;
79     event.id = id;
80     event.psz_name = psz_name;
81     event.input_state = 0;
82     event.psz_instance_name = NULL;
83     var_SetAddress( p_vlm, "intf-event", &event );
84 }
85
86 static void TriggerInstanceState( vlm_t *p_vlm, int i_type, int64_t id, const char *psz_name, const char *psz_instance_name, input_state_e input_state )
87 {
88     vlm_event_t event;
89
90     event.i_type = i_type;
91     event.id = id;
92     event.psz_name = psz_name;
93     event.input_state = input_state;
94     event.psz_instance_name = psz_instance_name;
95     var_SetAddress( p_vlm, "intf-event", &event );
96 }