1 /* GSequencer - Advanced GTK Sequencer
2 * Copyright (C) 2005-2017 Joël Krähemann
3 *
4 * This file is part of GSequencer.
5 *
6 * GSequencer is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as
8 * published by the Free Software Foundation, either version 3 of the
9 * License, or (at your option) any later version.
10 *
11 * GSequencer 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 Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public License
17 * along with GSequencer. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #include <ags/server/ags_server_status.h>
21
22 #include <ags/object/ags_connectable.h>
23
24 void ags_server_status_class_init(AgsServerStatusClass *server_status);
25 void ags_server_status_connectable_interface_init(AgsConnectableInterface *connectable);
26 void ags_server_status_init(AgsServerStatus *server_status);
27 void ags_server_status_set_property(GObject *gobject,
28 guint prop_id,
29 const GValue *value,
30 GParamSpec *param_spec);
31 void ags_server_status_get_property(GObject *gobject,
32 guint prop_id,
33 GValue *value,
34 GParamSpec *param_spec);
35 void ags_server_status_connect(AgsConnectable *connectable);
36 void ags_server_status_disconnect(AgsConnectable *connectable);
37 void ags_server_status_finalize(GObject *gobject);
38
39 enum{
40 PROP_0,
41 PROP_MAXIMUM_CONNECTIONS,
42 PROP_CONNECTION_COUNT,
43 };
44
45 static gpointer ags_server_status_parent_class = NULL;
46
47 GType
ags_server_status_get_type()48 ags_server_status_get_type()
49 {
50 static volatile gsize g_define_type_id__volatile = 0;
51
52 if(g_once_init_enter (&g_define_type_id__volatile)){
53 GType ags_type_server_status = 0;
54
55 static const GTypeInfo ags_server_status_info = {
56 sizeof (AgsServerStatusClass),
57 NULL, /* base_init */
58 NULL, /* base_finalize */
59 (GClassInitFunc) ags_server_status_class_init,
60 NULL, /* class_finalize */
61 NULL, /* class_data */
62 sizeof (AgsServerStatus),
63 0, /* n_preallocs */
64 (GInstanceInitFunc) ags_server_status_init,
65 };
66
67 static const GInterfaceInfo ags_connectable_interface_info = {
68 (GInterfaceInitFunc) ags_server_status_connectable_interface_init,
69 NULL, /* interface_finalize */
70 NULL, /* interface_data */
71 };
72
73 ags_type_server_status = g_type_register_static(G_TYPE_OBJECT,
74 "AgsServerStatus",
75 &ags_server_status_info,
76 0);
77
78 g_type_add_interface_static(ags_type_server_status,
79 AGS_TYPE_CONNECTABLE,
80 &ags_connectable_interface_info);
81
82 g_once_init_leave(&g_define_type_id__volatile, ags_type_server_status);
83 }
84
85 return g_define_type_id__volatile;
86 }
87
88 void
ags_server_status_class_init(AgsServerStatusClass * server_status)89 ags_server_status_class_init(AgsServerStatusClass *server_status)
90 {
91 GObjectClass *gobject;
92 GParamSpec *param_spec;
93
94 ags_server_status_parent_class = g_type_class_peek_parent(server_status);
95
96 /* GObjectClass */
97 gobject = (GObjectClass *) server_status;
98
99 gobject->set_property = ags_server_status_set_property;
100 gobject->get_property = ags_server_status_get_property;
101
102 gobject->finalize = ags_server_status_finalize;
103 }
104
105 void
ags_server_status_connectable_interface_init(AgsConnectableInterface * connectable)106 ags_server_status_connectable_interface_init(AgsConnectableInterface *connectable)
107 {
108 connectable->connect = ags_server_status_connect;
109 connectable->disconnect = ags_server_status_disconnect;
110 }
111
112 void
ags_server_status_init(AgsServerStatus * server_status)113 ags_server_status_init(AgsServerStatus *server_status)
114 {
115 server_status->flags = 0;
116 }
117
118 void
ags_server_status_set_property(GObject * gobject,guint prop_id,const GValue * value,GParamSpec * param_spec)119 ags_server_status_set_property(GObject *gobject,
120 guint prop_id,
121 const GValue *value,
122 GParamSpec *param_spec)
123 {
124 AgsServerStatus *server_status;
125
126 server_status = AGS_SERVER_STATUS(gobject);
127
128 switch(prop_id){
129 default:
130 G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
131 break;
132 }
133 }
134
135 void
ags_server_status_get_property(GObject * gobject,guint prop_id,GValue * value,GParamSpec * param_spec)136 ags_server_status_get_property(GObject *gobject,
137 guint prop_id,
138 GValue *value,
139 GParamSpec *param_spec)
140 {
141 AgsServerStatus *server_status;
142
143 server_status = AGS_SERVER_STATUS(gobject);
144
145 switch(prop_id){
146 default:
147 G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, param_spec);
148 break;
149 }
150 }
151
152 void
ags_server_status_connect(AgsConnectable * connectable)153 ags_server_status_connect(AgsConnectable *connectable)
154 {
155 /* empty */
156 }
157
158 void
ags_server_status_disconnect(AgsConnectable * connectable)159 ags_server_status_disconnect(AgsConnectable *connectable)
160 {
161 /* empty */
162 }
163
164 void
ags_server_status_finalize(GObject * gobject)165 ags_server_status_finalize(GObject *gobject)
166 {
167 AgsServerStatus *server_status;
168
169 server_status = AGS_SERVER_STATUS(gobject);
170
171 /* call parent */
172 G_OBJECT_CLASS(ags_server_status_parent_class)->finalize(gobject);
173 }
174
175 /**
176 * ags_server_status_new:
177 *
178 * Instantiate #AgsServerStatus.
179 *
180 * Returns: a new #AgsServerStatus
181 *
182 * Since: 3.0.0
183 */
184 AgsServerStatus*
ags_server_status_new()185 ags_server_status_new()
186 {
187 AgsServerStatus *server_status;
188
189 server_status = (AgsServerStatus *) g_object_new(AGS_TYPE_SERVER_STATUS,
190 NULL);
191
192 return(server_status);
193 }
194