Changeset c46064617974065f88c133dfe117efa3f7d23539
- Timestamp:
- 01/10/10 18:26:34 (3 years ago)
- Children:
- 554b045bd1cee5350698d9b3b66537c55dca4673
- Parents:
- 0a60fa61a6a2105cdf8d00d626c943027568ef84
- git-committer:
- Nedko Arnaudov <nedko@arnaudov.name> / 2010-01-10T18:26:34Z+0200
- Files:
-
- 2 modified
-
daemon/control.c (modified) (4 diffs)
-
ladish_control (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
daemon/control.c
rbf9b927 rc460646 3 3 * LADI Session Handler (ladish) 4 4 * 5 * Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name>5 * Copyright (C) 2008, 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 6 6 * Copyright (C) 2008 Juuso Alasuutari <juuso.alasuutari@gmail.com> 7 7 * … … 281 281 } 282 282 283 static void ladish_get_room_list(struct dbus_method_call * call_ptr) 284 { 285 DBusMessageIter iter, array_iter; 286 287 call_ptr->reply = dbus_message_new_method_return(call_ptr->message); 288 if (call_ptr->reply == NULL) 289 { 290 goto fail; 291 } 292 293 dbus_message_iter_init_append(call_ptr->reply, &iter); 294 295 if (!dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "(sa{sv})", &array_iter)) 296 { 297 goto fail_unref; 298 } 299 300 if (!dbus_message_iter_close_container(&iter, &array_iter)) 301 { 302 goto fail_unref; 303 } 304 305 return; 306 307 fail_unref: 308 dbus_message_unref(call_ptr->reply); 309 call_ptr->reply = NULL; 310 311 fail: 312 log_error("Ran out of memory trying to construct method return"); 313 } 314 315 static void ladish_delete_room(struct dbus_method_call * call_ptr) 316 { 317 const char * name; 318 319 dbus_error_init(&g_dbus_error); 320 321 if (!dbus_message_get_args(call_ptr->message, &g_dbus_error, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) 322 { 323 lash_dbus_error(call_ptr, LASH_DBUS_ERROR_INVALID_ARGS, "Invalid arguments to method \"%s\": %s", call_ptr->method_name, g_dbus_error.message); 324 dbus_error_free(&g_dbus_error); 325 return; 326 } 327 328 log_info("Delete room request (%s)", name); 329 330 { 331 method_return_new_void(call_ptr); 332 } 333 } 334 335 static void ladish_new_room(struct dbus_method_call * call_ptr) 336 { 337 const char * name; 338 339 dbus_error_init(&g_dbus_error); 340 341 if (!dbus_message_get_args(call_ptr->message, &g_dbus_error, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) 342 { 343 lash_dbus_error(call_ptr, LASH_DBUS_ERROR_INVALID_ARGS, "Invalid arguments to method \"%s\": %s", call_ptr->method_name, g_dbus_error.message); 344 dbus_error_free(&g_dbus_error); 345 return; 346 } 347 348 log_info("New room request (%s)", name); 349 350 { 351 method_return_new_void(call_ptr); 352 } 353 } 354 283 355 static void ladish_exit(struct dbus_method_call * call_ptr) 284 356 { … … 333 405 METHOD_ARGS_BEGIN(GetApplicationList, "Get list of applications that can be launched") 334 406 METHOD_ARG_DESCRIBE_OUT("applications", "a(sa{sv})", "List of applications, name and properties") 407 METHOD_ARGS_END 408 409 METHOD_ARGS_BEGIN(GetRoomList, "Get list of rooms") 410 METHOD_ARG_DESCRIBE_OUT("room_list", "a(sa{sv})", "List of rooms, name and properties") 411 METHOD_ARGS_END 412 413 METHOD_ARGS_BEGIN(NewRoom, "New room") 414 METHOD_ARG_DESCRIBE_IN("room_name", "s", "Name of the room") 415 METHOD_ARGS_END 416 417 METHOD_ARGS_BEGIN(DeleteRoom, "Delete room") 418 METHOD_ARG_DESCRIBE_IN("room_name", "s", "Name of room to delete") 335 419 METHOD_ARGS_END 336 420 … … 345 429 METHOD_DESCRIBE(DeleteStudio, ladish_delete_studio) 346 430 METHOD_DESCRIBE(GetApplicationList, ladish_get_application_list) 431 METHOD_DESCRIBE(GetRoomList, ladish_get_room_list) 432 METHOD_DESCRIBE(NewRoom, ladish_new_room) 433 METHOD_DESCRIBE(DeleteRoom, ladish_delete_room) 347 434 METHOD_DESCRIBE(Exit, ladish_exit) 348 435 METHODS_END -
ladish_control
rc5a9c36 rc460646 3 3 # LADI Session Handler (ladish) 4 4 # 5 # Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name>5 # Copyright (C) 2008, 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 6 6 # 7 7 #************************************************************************* … … 111 111 print(" sstart - start studio") 112 112 print(" sstop - stop studio") 113 print(" rlist - list rooms") 114 print(" rdel <roomname> - delete room") 115 print(" rnew <roomname> - new room") 113 116 sys.exit(0) 114 117 … … 182 185 else: 183 186 print("no") 187 elif arg == 'rlist': 188 print("--- room list") 189 for studio in control_iface.GetRoomList(): 190 name = studio[0] 191 mtime = studio[1]['Modification Time'] 192 print('"%s" last modified on %s' % (name, time.ctime(mtime))) 193 elif arg == 'rnew': 194 print("--- room new") 195 if index >= len(sys.argv): 196 print("new room command requires room name argument") 197 sys.exit() 198 199 arg = sys.argv[index] 200 index += 1 201 202 control_iface.NewRoom(arg) 203 elif arg == 'rdel': 204 print("--- room delete") 205 if index >= len(sys.argv): 206 print("delete room command requires studio name argument") 207 sys.exit() 208 209 arg = sys.argv[index] 210 index += 1 211 212 control_iface.DeleteRoom(arg) 184 213 else: 185 214 if not studio_obj:
