/* layer fps */
Eina_List *layer_fps_list;
+
+ /* dump_buffers */
+ const char *dump_fullpath;
+ Eina_Bool dump_success;
} E_Info_Client;
typedef struct _E_Win_Info
printf("Usage: enlightenment_info -desk\n");
}
+static void
+_cb_buffer_shot(const Eldbus_Message *msg)
+{
+ const char *name = NULL, *text = NULL;
+ char *fullpath = NULL;
+ int error = 0;
+ Eina_Bool res;
+
+ res = eldbus_message_error_get(msg, &name, &text);
+ EINA_SAFETY_ON_TRUE_GOTO(res, finish);
+
+ res = eldbus_message_arguments_get(msg, "is", &error, &fullpath);
+ EINA_SAFETY_ON_FALSE_GOTO(res, finish);
+
+ if (strcmp(fullpath, "nopath") && !e_info_client.dump_fullpath)
+ e_info_client.dump_fullpath = eina_stringshare_add(fullpath);
+ e_info_client.dump_success = error;
+
+finish:
+ if ((name) || (text))
+ {
+ printf("errname:%s errmsg:%s\n", name, text);
+ }
+}
+
static void
_e_info_client_proc_buffer_shot(int argc, char **argv)
{
goto err;
}
- if (!_e_info_client_eldbus_message_with_args("dump_buffers", NULL, "iisdi",
+ if (!_e_info_client_eldbus_message_with_args("dump_buffers", _cb_buffer_shot, "iisdi",
dumprun, count, path, scale, mark))
{
- printf("_e_info_client_proc_buffer_shot fail (%d)\n", dumprun);
+ printf("dump_buffers fail (%d)\n", dumprun);
return;
}
- printf("_e_info_client_proc_buffer_shot %s\n", (dumprun == 1 ? "start" : "stop"));
+ printf("dump_buffers %s %s.\n",
+ (dumprun == 1 ? "start" : "stop"), (e_info_client.dump_success == 0 ? "success" : "fail"));
+
+ if (e_info_client.dump_fullpath)
+ {
+ if (dumprun == 0 && e_info_client.dump_success == 0 && e_info_client.dump_fullpath)
+ printf("saved : %s\n", e_info_client.dump_fullpath);
+
+ eina_stringshare_del(e_info_client.dump_fullpath);
+ e_info_client.dump_fullpath = NULL;
+ }
return;
err:
printf("Error Check Args\n%s\n", DUMP_BUFFERS_USAGE);
-return;
+ return;
}
static void
{
E_Zone *zone = e_zone_current_get();
E_Desk *desk = e_desk_current_get(zone);
+ if (!desk) continue;
if (start_split) evas_object_raise(desk->layout);
else evas_object_lower(desk->layout);
//evas_object_show(desk->layout);
static Eldbus_Message *
_e_info_server_cb_buffer_dump(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
- Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+ Eldbus_Message *reply;
int start = 0;
int count = 0;
const char *path = NULL;
double scale;
+ int ret = 0;
if (!eldbus_message_arguments_get(msg, "iisdi", &start, &count, &path, &scale, &e_info_dump_mark))
{
- ERR("Error getting arguments.");
- return reply;
+ return eldbus_message_error_new(msg, GET_CALL_MSG_ARG_ERR,
+ "dump_buffers: an attempt to get arguments from method call message failed");
}
+ reply = eldbus_message_method_return_new(msg);
+
if (start == 1)
{
if (e_info_dump_running == 1)
- return reply;
+ {
+ eldbus_message_arguments_append(reply, "is", ret, (e_info_dump_path ?: "nopath"));
+ return reply;
+ }
e_info_dump_running = 1;
e_info_dump_mark_count = 0;
e_info_dump_count = 1;
e_info_dump_running = 0;
e_info_dump_count = 0;
ERR("dump_buffers start fail\n");
+ ret = -1;
}
else
{
E_LIST_HANDLER_APPEND(e_info_dump_hdlrs, E_EVENT_CLIENT_BUFFER_CHANGE,
_e_info_server_cb_buffer_change, NULL);
}
+ eldbus_message_arguments_append(reply, "is", ret, (e_info_dump_path ?: "nopath"));
}
else
{
if (e_info_dump_running == 0)
- return reply;
-
+ {
+ eldbus_message_arguments_append(reply, "is", ret, (e_info_dump_path ?: "nopath"));
+ return reply;
+ }
e_info_server_hook_call(E_INFO_SERVER_HOOK_BUFFER_DUMP_BEGIN);
tdm_helper_dump_stop();
tbm_surface_internal_dump_end();
+ eldbus_message_arguments_append(reply, "is", ret, (e_info_dump_path ?: "nopath"));
+
E_FREE_LIST(e_info_dump_hdlrs, ecore_event_handler_del);
e_info_dump_hdlrs = NULL;
if (e_info_dump_path)
{ "protocol_rule", ELDBUS_ARGS({"sss", "protocol_rule"}), ELDBUS_ARGS({"s", "rule request"}), _e_info_server_cb_protocol_rule, 0},
{ "punch", ELDBUS_ARGS({"iiiiiiiii", "punch_geometry"}), NULL, _e_info_server_cb_punch, 0},
{ "transform_message", ELDBUS_ARGS({"siiiiiiii", "transform_message"}), NULL, e_info_server_cb_transform_message, 0},
- { "dump_buffers", ELDBUS_ARGS({"iisdi", "start"}), NULL, _e_info_server_cb_buffer_dump, 0 },
+ { "dump_buffers", ELDBUS_ARGS({"iisdi", "dump_buffers"}), ELDBUS_ARGS({"is", "dump_buffers reply"}), _e_info_server_cb_buffer_dump, 0 },
{ "dump_selected_buffers", ELDBUS_ARGS({"ss", "dump_selected_buffers"}), NULL, _e_info_server_cb_selected_buffer_dump, 0 },
{ "dump_screen", ELDBUS_ARGS({"s", "dump_screen"}), NULL, _e_info_server_cb_screen_dump, 0 },
{ "output_mode", ELDBUS_ARGS({SIGNATURE_OUTPUT_MODE_CLIENT, "output mode"}), ELDBUS_ARGS({"a("SIGNATURE_OUTPUT_MODE_SERVER")", "array of ec"}), _e_info_server_cb_output_mode, 0 },