@@ -199,8 +199,14 @@ OMXControlResult OMXControl::getEvent()
199
199
return KeyConfig::ACTION_BLANK;
200
200
201
201
CLog::Log (LOGDEBUG, " Popped message member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
202
+ OMXControlResult result = handle_event (m);
203
+ dbus_message_unref (m);
202
204
205
+ return result;
206
+ }
203
207
208
+ OMXControlResult OMXControl::handle_event (DBusMessage *m)
209
+ {
204
210
// ----------------------------DBus root interface-----------------------------
205
211
// Methods:
206
212
if (dbus_message_is_method_call (m, OMXPLAYER_DBUS_INTERFACE_ROOT, " Quit" ))
@@ -273,6 +279,7 @@ OMXControlResult OMXControl::getEvent()
273
279
{
274
280
// Error
275
281
CLog::Log (LOGWARNING, " Unhandled dbus property message, member: %s interface: %s type: %d path: %s property: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m), property );
282
+ dbus_respond_error (m, DBUS_ERROR_UNKNOWN_PROPERTY, " Unknown property" );
276
283
return KeyConfig::ACTION_BLANK;
277
284
}
278
285
}
@@ -434,6 +441,7 @@ OMXControlResult OMXControl::getEvent()
434
441
{
435
442
// Error
436
443
CLog::Log (LOGWARNING, " Unhandled dbus property message, member: %s interface: %s type: %d path: %s property: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m), property );
444
+ dbus_respond_error (m, DBUS_ERROR_UNKNOWN_PROPERTY, " Unknown property" );
437
445
return KeyConfig::ACTION_BLANK;
438
446
}
439
447
}
@@ -442,6 +450,7 @@ OMXControlResult OMXControl::getEvent()
442
450
{
443
451
// Error
444
452
CLog::Log (LOGWARNING, " Unhandled dbus message, member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
453
+ dbus_respond_error (m, DBUS_ERROR_UNKNOWN_INTERFACE, " Unknown interface" );
445
454
return KeyConfig::ACTION_BLANK;
446
455
}
447
456
}
@@ -468,6 +477,7 @@ OMXControlResult OMXControl::getEvent()
468
477
printf (" setE1\n " );
469
478
CLog::Log (LOGWARNING, " Unhandled dbus message, member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
470
479
dbus_error_free (&error);
480
+ dbus_respond_error (m, DBUS_ERROR_INVALID_ARGS, " Invalid arguments" );
471
481
return KeyConfig::ACTION_BLANK;
472
482
}
473
483
// The property name
@@ -477,6 +487,7 @@ OMXControlResult OMXControl::getEvent()
477
487
{
478
488
CLog::Log (LOGWARNING, " Unhandled dbus message, member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
479
489
dbus_error_free (&error);
490
+ dbus_respond_error (m, DBUS_ERROR_INVALID_ARGS, " Invalid arguments" );
480
491
return KeyConfig::ACTION_BLANK;
481
492
}
482
493
// The value (either double or double in variant)
@@ -501,6 +512,7 @@ OMXControlResult OMXControl::getEvent()
501
512
{
502
513
CLog::Log (LOGWARNING, " Unhandled dbus message, member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
503
514
dbus_error_free (&error);
515
+ dbus_respond_error (m, DBUS_ERROR_INVALID_ARGS, " Invalid arguments" );
504
516
return KeyConfig::ACTION_BLANK;
505
517
}
506
518
}
@@ -509,6 +521,7 @@ OMXControlResult OMXControl::getEvent()
509
521
{
510
522
CLog::Log (LOGWARNING, " Unhandled dbus message, member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
511
523
dbus_error_free (&error);
524
+ dbus_respond_error (m, DBUS_ERROR_INVALID_ARGS, " Invalid arguments" );
512
525
return KeyConfig::ACTION_BLANK;
513
526
}
514
527
// Player interface:
@@ -557,6 +570,7 @@ OMXControlResult OMXControl::getEvent()
557
570
{
558
571
// Error
559
572
CLog::Log (LOGWARNING, " Unhandled dbus property message, member: %s interface: %s type: %d path: %s property: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m), property );
573
+ dbus_respond_error (m, DBUS_ERROR_UNKNOWN_PROPERTY, " Unknown property" );
560
574
return KeyConfig::ACTION_BLANK;
561
575
}
562
576
}
@@ -565,6 +579,7 @@ OMXControlResult OMXControl::getEvent()
565
579
{
566
580
// Error
567
581
CLog::Log (LOGWARNING, " Unhandled dbus message, member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
582
+ dbus_respond_error (m, DBUS_ERROR_UNKNOWN_INTERFACE, " Unknown interface" );
568
583
return KeyConfig::ACTION_BLANK;
569
584
}
570
585
}
@@ -1111,11 +1126,28 @@ OMXControlResult OMXControl::getEvent()
1111
1126
// ----------------------------------------------------------------------------
1112
1127
else {
1113
1128
CLog::Log (LOGWARNING, " Unhandled dbus message, member: %s interface: %s type: %d path: %s" , dbus_message_get_member (m), dbus_message_get_interface (m), dbus_message_get_type (m), dbus_message_get_path (m) );
1129
+ if (dbus_message_get_type (m) == DBUS_MESSAGE_TYPE_METHOD_CALL)
1130
+ dbus_respond_error (m, DBUS_ERROR_UNKNOWN_METHOD, " Unknown method" );
1114
1131
}
1115
1132
1116
1133
return KeyConfig::ACTION_BLANK;
1117
1134
}
1118
1135
1136
+ DBusHandlerResult OMXControl::dbus_respond_error (DBusMessage *m, const char *name, const char *msg)
1137
+ {
1138
+ DBusMessage *reply;
1139
+
1140
+ reply = dbus_message_new_error (m, name, msg);
1141
+
1142
+ if (!reply)
1143
+ return DBUS_HANDLER_RESULT_NEED_MEMORY;
1144
+
1145
+ dbus_connection_send (bus, reply, NULL );
1146
+ dbus_message_unref (reply);
1147
+
1148
+ return DBUS_HANDLER_RESULT_HANDLED;
1149
+ }
1150
+
1119
1151
DBusHandlerResult OMXControl::dbus_respond_ok (DBusMessage *m)
1120
1152
{
1121
1153
DBusMessage *reply;
0 commit comments