fbd-event: Add sender property
This allows us to store the DBus sender
This commit is contained in:
+39
-1
@@ -25,6 +25,7 @@ enum {
|
|||||||
PROP_END_REASON,
|
PROP_END_REASON,
|
||||||
PROP_FEEDBACKS_ENDED,
|
PROP_FEEDBACKS_ENDED,
|
||||||
PROP_TIMEOUT,
|
PROP_TIMEOUT,
|
||||||
|
PROP_SENDER,
|
||||||
PROP_LAST_PROP,
|
PROP_LAST_PROP,
|
||||||
};
|
};
|
||||||
static GParamSpec *props[PROP_LAST_PROP];
|
static GParamSpec *props[PROP_LAST_PROP];
|
||||||
@@ -35,6 +36,7 @@ typedef struct _FbdEvent {
|
|||||||
guint id;
|
guint id;
|
||||||
char *app_id;
|
char *app_id;
|
||||||
char *event;
|
char *event;
|
||||||
|
char *sender;
|
||||||
|
|
||||||
int timeout;
|
int timeout;
|
||||||
gboolean expired;
|
gboolean expired;
|
||||||
@@ -118,6 +120,10 @@ fbd_event_set_property (GObject *object,
|
|||||||
case PROP_END_REASON:
|
case PROP_END_REASON:
|
||||||
fbd_event_set_end_reason (self, g_value_get_enum (value));
|
fbd_event_set_end_reason (self, g_value_get_enum (value));
|
||||||
break;
|
break;
|
||||||
|
case PROP_SENDER:
|
||||||
|
g_free (self->sender);
|
||||||
|
self->sender = g_value_dup_string (value);
|
||||||
|
break;
|
||||||
case PROP_FEEDBACKS_ENDED:
|
case PROP_FEEDBACKS_ENDED:
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
@@ -152,6 +158,9 @@ fbd_event_get_property (GObject *object,
|
|||||||
case PROP_FEEDBACKS_ENDED:
|
case PROP_FEEDBACKS_ENDED:
|
||||||
g_value_set_boolean (value, self->ended);
|
g_value_set_boolean (value, self->ended);
|
||||||
break;
|
break;
|
||||||
|
case PROP_SENDER:
|
||||||
|
g_value_set_string (value, self->sender);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
@@ -181,6 +190,7 @@ fbd_event_finalize (GObject *object)
|
|||||||
|
|
||||||
g_clear_pointer (&self->app_id, g_free);
|
g_clear_pointer (&self->app_id, g_free);
|
||||||
g_clear_pointer (&self->event, g_free);
|
g_clear_pointer (&self->event, g_free);
|
||||||
|
g_clear_pointer (&self->sender, g_free);
|
||||||
|
|
||||||
G_OBJECT_CLASS (fbd_event_parent_class)->finalize (object);
|
G_OBJECT_CLASS (fbd_event_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
@@ -245,6 +255,19 @@ fbd_event_class_init (FbdEventClass *klass)
|
|||||||
FBD_EVENT_END_REASON_NATURAL,
|
FBD_EVENT_END_REASON_NATURAL,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FbdEvent:Sender:
|
||||||
|
*
|
||||||
|
* The DBus name of the sender
|
||||||
|
*/
|
||||||
|
props[PROP_SENDER] =
|
||||||
|
g_param_spec_string (
|
||||||
|
"sender",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
NULL,
|
||||||
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
|
g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -267,13 +290,14 @@ fbd_event_init (FbdEvent *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
FbdEvent *
|
FbdEvent *
|
||||||
fbd_event_new (int id, const char *app_id, const char *event, int timeout)
|
fbd_event_new (int id, const char *app_id, const char *event, int timeout, const char *sender)
|
||||||
{
|
{
|
||||||
return FBD_EVENT (g_object_new (FBD_TYPE_EVENT,
|
return FBD_EVENT (g_object_new (FBD_TYPE_EVENT,
|
||||||
"id", id,
|
"id", id,
|
||||||
"app_id", app_id,
|
"app_id", app_id,
|
||||||
"event", event,
|
"event", event,
|
||||||
"timeout", timeout,
|
"timeout", timeout,
|
||||||
|
"sender", sender,
|
||||||
NULL));
|
NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,3 +471,17 @@ fbd_event_get_end_reason (FbdEvent *self)
|
|||||||
|
|
||||||
return self->end_reason;
|
return self->end_reason;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fbd_event_get_sender:
|
||||||
|
* @self: The Event
|
||||||
|
*
|
||||||
|
* Returns: The DBus sender that triggered the event.
|
||||||
|
*/
|
||||||
|
const char *
|
||||||
|
fbd_event_get_sender (FbdEvent *self)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (FBD_IS_EVENT (self), FBD_EVENT_END_REASON_NATURAL);
|
||||||
|
|
||||||
|
return self->sender;
|
||||||
|
}
|
||||||
|
|||||||
+2
-1
@@ -33,7 +33,7 @@ typedef enum _FbdEventTimeout {
|
|||||||
|
|
||||||
G_DECLARE_FINAL_TYPE (FbdEvent, fbd_event, FBD, EVENT, GObject);
|
G_DECLARE_FINAL_TYPE (FbdEvent, fbd_event, FBD, EVENT, GObject);
|
||||||
|
|
||||||
FbdEvent *fbd_event_new (gint id, const char *app_id, const char *event, int timeout);
|
FbdEvent *fbd_event_new (gint id, const char *app_id, const char *event, int timeout, const char *sender);
|
||||||
const char *fbd_event_get_event (FbdEvent *event);
|
const char *fbd_event_get_event (FbdEvent *event);
|
||||||
const char *fbd_event_get_app_id (FbdEvent *event);
|
const char *fbd_event_get_app_id (FbdEvent *event);
|
||||||
guint fbd_event_get_id (FbdEvent *event);
|
guint fbd_event_get_id (FbdEvent *event);
|
||||||
@@ -48,5 +48,6 @@ int fbd_event_remove_feedback (FbdEvent *self,
|
|||||||
void fbd_event_run_feedbacks (FbdEvent *self);
|
void fbd_event_run_feedbacks (FbdEvent *self);
|
||||||
void fbd_event_end_feedbacks (FbdEvent *self);
|
void fbd_event_end_feedbacks (FbdEvent *self);
|
||||||
gboolean fbd_event_get_feedbacks_ended (FbdEvent *self);
|
gboolean fbd_event_get_feedbacks_ended (FbdEvent *self);
|
||||||
|
const char *fbd_event_get_sender (FbdEvent *self);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
+10
-5
@@ -15,10 +15,11 @@ test_fbd_event (void)
|
|||||||
g_autoptr(FbdEvent) event = NULL;
|
g_autoptr(FbdEvent) event = NULL;
|
||||||
g_autofree gchar *appid = NULL;
|
g_autofree gchar *appid = NULL;
|
||||||
g_autofree gchar *name = NULL;
|
g_autofree gchar *name = NULL;
|
||||||
|
g_autofree gchar *sender = NULL;
|
||||||
FbdEventEndReason reason;
|
FbdEventEndReason reason;
|
||||||
gint timeout;
|
gint timeout;
|
||||||
|
|
||||||
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, 2);
|
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, 2, "sender-id");
|
||||||
|
|
||||||
g_assert_true (FBD_IS_EVENT (event));
|
g_assert_true (FBD_IS_EVENT (event));
|
||||||
g_object_get (event,
|
g_object_get (event,
|
||||||
@@ -26,6 +27,7 @@ test_fbd_event (void)
|
|||||||
"event", &name,
|
"event", &name,
|
||||||
"app-id", &appid,
|
"app-id", &appid,
|
||||||
"timeout", &timeout,
|
"timeout", &timeout,
|
||||||
|
"sender", &sender,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
g_assert_cmpstr (fbd_event_get_event (event), ==, TEST_EVENT);
|
g_assert_cmpstr (fbd_event_get_event (event), ==, TEST_EVENT);
|
||||||
@@ -37,6 +39,9 @@ test_fbd_event (void)
|
|||||||
g_assert_cmpint (fbd_event_get_timeout (event), ==, timeout);
|
g_assert_cmpint (fbd_event_get_timeout (event), ==, timeout);
|
||||||
g_assert_cmpint (timeout, ==, 2);
|
g_assert_cmpint (timeout, ==, 2);
|
||||||
|
|
||||||
|
g_assert_cmpstr (fbd_event_get_sender (event), ==, sender);
|
||||||
|
g_assert_cmpstr (sender, ==, "sender-id");
|
||||||
|
|
||||||
g_assert_cmpint (fbd_event_get_end_reason (event), ==, FBD_EVENT_END_REASON_NATURAL);
|
g_assert_cmpint (fbd_event_get_end_reason (event), ==, FBD_EVENT_END_REASON_NATURAL);
|
||||||
g_assert_cmpint (reason, ==, FBD_EVENT_END_REASON_NATURAL);
|
g_assert_cmpint (reason, ==, FBD_EVENT_END_REASON_NATURAL);
|
||||||
}
|
}
|
||||||
@@ -49,7 +54,7 @@ test_fbd_event_feedback (void)
|
|||||||
g_autoptr(FbdFeedbackDummy) feedback1 = NULL;
|
g_autoptr(FbdFeedbackDummy) feedback1 = NULL;
|
||||||
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
||||||
|
|
||||||
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, -1);
|
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, -1, NULL);
|
||||||
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
|
|
||||||
@@ -96,7 +101,7 @@ test_fbd_event_feedback_ended (void)
|
|||||||
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
||||||
gboolean ended = FALSE;
|
gboolean ended = FALSE;
|
||||||
|
|
||||||
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, FBD_EVENT_TIMEOUT_ONESHOT);
|
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, FBD_EVENT_TIMEOUT_ONESHOT, NULL);
|
||||||
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
fbd_event_add_feedback (event, FBD_FEEDBACK_BASE(feedback1));
|
fbd_event_add_feedback (event, FBD_FEEDBACK_BASE(feedback1));
|
||||||
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
@@ -117,7 +122,7 @@ test_fbd_event_feedback_loop (void)
|
|||||||
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
||||||
gboolean ended = FALSE;
|
gboolean ended = FALSE;
|
||||||
|
|
||||||
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, FBD_EVENT_TIMEOUT_LOOP);
|
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, FBD_EVENT_TIMEOUT_LOOP, NULL);
|
||||||
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
fbd_event_add_feedback (event, FBD_FEEDBACK_BASE(feedback1));
|
fbd_event_add_feedback (event, FBD_FEEDBACK_BASE(feedback1));
|
||||||
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
@@ -139,7 +144,7 @@ test_fbd_event_feedback_timeout (void)
|
|||||||
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
g_autoptr(FbdFeedbackDummy) feedback2 = NULL;
|
||||||
gboolean ended = FALSE;
|
gboolean ended = FALSE;
|
||||||
|
|
||||||
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, 1);
|
event = fbd_event_new (1, TEST_APP_ID, TEST_EVENT, 1, NULL);
|
||||||
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback1 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
fbd_event_add_feedback (event, FBD_FEEDBACK_BASE(feedback1));
|
fbd_event_add_feedback (event, FBD_FEEDBACK_BASE(feedback1));
|
||||||
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
feedback2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY, NULL);
|
||||||
|
|||||||
Reference in New Issue
Block a user