View Single Post
Posts: 2,154 | Thanked: 8,464 times | Joined on May 2010
#1610
Hm... did you know about example mafw application?
http://repository.maemo.org/pool/mae...mafw-test-gui/

Here is relevant code:
Code:
gint
main (gint   argc,
      gchar *argv[])
{
	setpriority (PRIO_PROCESS, 0, 10);
	mafw_log_init(NULL);
        if (!init_ui (&argc, &argv)) {
           return -2;
        }

        if (!init_app ()) {
           return -3;
        }

        gtk_main ();

        return 0;
}
and

Code:
static gboolean
init_app (void)
{
        GError *error = NULL;
	GList *extension_list;
	gchar **plugin_list;

        g_type_init ();

	/* Register plugins */
	registry = MAFW_REGISTRY(mafw_registry_get_instance());
	if (registry == NULL) {
		g_error("init_app: failed to get MafwRegistry object\n");
		return FALSE;
	}

	mafw_shared_init(registry, &error);
	if (error != NULL)
	{
		hildon_banner_show_information (NULL,
						"chat_smiley_angry",
						error->message);
		g_error_free(error);
		error = NULL;
	} 

	g_signal_connect(registry,
			 "renderer_added", G_CALLBACK(renderer_added_cb), NULL);

	g_signal_connect(registry,
			 "renderer_removed", G_CALLBACK(renderer_removed_cb), NULL);

	g_signal_connect(registry,
			 "source_added", G_CALLBACK(source_added_cb), NULL);

	g_signal_connect(registry,
			 "source_removed", G_CALLBACK(source_removed_cb), NULL);

	extension_list = mafw_registry_get_renderers(registry);
	while (extension_list)
	{
		renderer_added_cb(registry, G_OBJECT(extension_list->data), NULL);
		extension_list = g_list_next(extension_list);
	}
	
	extension_list = mafw_registry_get_sources(registry);
	while (extension_list)
	{
		source_added_cb(registry, G_OBJECT(extension_list->data), NULL);
		extension_list = g_list_next(extension_list);
	}

	
	/* Check if we need to load any plugins directly */
	if (NULL != g_getenv("MAFW_TG_PLUGINS")) {
		plugin_list = g_strsplit(g_getenv("MAFW_TG_PLUGINS"),
					 G_SEARCHPATH_SEPARATOR_S, 0);
		gchar **plugin;
		plugin = plugin_list;
		for (; NULL != *plugin; plugin++) {
			mafw_registry_load_plugin(
					MAFW_REGISTRY(registry),
					*plugin, &error);
			g_debug("Plugin '%s' loaded\n", *plugin);
			if (error != NULL) {
				gchar* msg;
				msg = g_strdup_printf("Unable to load plugin"
						      "%s: %s", *plugin,
						      error->message);
				hildon_banner_show_information (NULL,
						"chat_smiley_angry", msg);
				g_free(msg);
				g_error_free(error);
				error = NULL;
			} 
		}
		g_strfreev(plugin_list);
	}

	/* Hook to crawler status */
	register_crawler_watch ();

	return TRUE;
}
And here is disassembled main() function of nokia media media player:

Code:
000153cc <main>:
   153cc:	e92d4870 	push	{r4, r5, r6, fp, lr}
   153d0:	e28db010 	add	fp, sp, #16
   153d4:	e59f50dc 	ldr	r5, [pc, #220]	; 154b8 <main+0xec>
   153d8:	e24dd00c 	sub	sp, sp, #12
   153dc:	e50b101c 	str	r1, [fp, #-28]
   153e0:	e59f10d4 	ldr	r1, [pc, #212]	; 154bc <main+0xf0>
   153e4:	e08f5005 	add	r5, pc, r5
   153e8:	e59f40d0 	ldr	r4, [pc, #208]	; 154c0 <main+0xf4>
   153ec:	e50b0018 	str	r0, [fp, #-24]
   153f0:	e0851001 	add	r1, r5, r1
   153f4:	e3a00006 	mov	r0, #6
   153f8:	e0854004 	add	r4, r5, r4
   153fc:	ebfffbfa 	bl	143ec <setlocale@plt>
   15400:	e59f10bc 	ldr	r1, [pc, #188]	; 154c4 <main+0xf8>
   15404:	e1a00004 	mov	r0, r4
   15408:	e0851001 	add	r1, r5, r1
   1540c:	ebfffb96 	bl	1426c <bindtextdomain@plt>
   15410:	e59f10b0 	ldr	r1, [pc, #176]	; 154c8 <main+0xfc>
   15414:	e1a00004 	mov	r0, r4
   15418:	e0851001 	add	r1, r5, r1
   1541c:	ebfff4a5 	bl	126b8 <bind_textdomain_codeset@plt>
   15420:	e1a00004 	mov	r0, r4
   15424:	ebfff6f2 	bl	12ff4 <textdomain@plt>
   15428:	ebfffc52 	bl	14578 <g_type_init@plt>
   1542c:	e59f0098 	ldr	r0, [pc, #152]	; 154cc <main+0x100>
   15430:	e3a01000 	mov	r1, #0
   15434:	e0850000 	add	r0, r5, r0
   15438:	ebfff9ab 	bl	13aec <fmp_tracking_write_performance_log@plt>
   1543c:	e3a00000 	mov	r0, #0
   15440:	ebfff781 	bl	1324c <mafw_log_init@plt>
   15444:	e59f0084 	ldr	r0, [pc, #132]	; 154d0 <main+0x104>
   15448:	e24b4018 	sub	r4, fp, #24
   1544c:	e24b601c 	sub	r6, fp, #28
   15450:	e0850000 	add	r0, r5, r0
   15454:	e3a01001 	mov	r1, #1
   15458:	ebfff9a3 	bl	13aec <fmp_tracking_write_performance_log@plt>
   1545c:	e1a00004 	mov	r0, r4
   15460:	e1a01006 	mov	r1, r6
   15464:	ebfffb47 	bl	14188 <gst_init@plt>
   15468:	e1a00004 	mov	r0, r4
   1546c:	e1a01006 	mov	r1, r6
   15470:	ebfff5a1 	bl	12afc <hildon_gtk_init@plt>
   15474:	e59f0058 	ldr	r0, [pc, #88]	; 154d4 <main+0x108>
   15478:	e3a01001 	mov	r1, #1
   1547c:	e0850000 	add	r0, r5, r0
   15480:	ebfff999 	bl	13aec <fmp_tracking_write_performance_log@plt>
   15484:	ebfffb0f 	bl	140c8 <gnome_vfs_init@plt>
   15488:	e59f0048 	ldr	r0, [pc, #72]	; 154d8 <main+0x10c>
   1548c:	e3a01001 	mov	r1, #1
   15490:	e0850000 	add	r0, r5, r0
   15494:	ebfff994 	bl	13aec <fmp_tracking_write_performance_log@plt>
   15498:	ebfff912 	bl	138e8 <fmp_application_new_with_controllers@plt>
   1549c:	e1a04000 	mov	r4, r0
   154a0:	ebfff523 	bl	12934 <fmp_application_run@plt>
   154a4:	e1a00004 	mov	r0, r4
   154a8:	ebfffc8c 	bl	146e0 <g_object_unref@plt>
   154ac:	e3a00000 	mov	r0, #0
   154b0:	e24bd010 	sub	sp, fp, #16
   154b4:	e8bd8870 	pop	{r4, r5, r6, fp, pc}
   154b8:	0008d33c 	andeq	sp, r8, ip, lsr r3
   154bc:	fffeea10 			; <UNDEFINED> instruction: 0xfffeea10
   154c0:	fffe7e7c 			; <UNDEFINED> instruction: 0xfffe7e7c
   154c4:	fffe7e88 			; <UNDEFINED> instruction: 0xfffe7e88
   154c8:	fffe7e9c 			; <UNDEFINED> instruction: 0xfffe7e9c
   154cc:	fffe7ea4 			; <UNDEFINED> instruction: 0xfffe7ea4
   154d0:	fffe7ebc 			; <UNDEFINED> instruction: 0xfffe7ebc
   154d4:	fffe7ed0 			; <UNDEFINED> instruction: 0xfffe7ed0
   154d8:	fffe7ee8 			; <UNDEFINED> instruction: 0xfffe7ee8
So it calling mafw_log_init(NULL) too:
Code:
   1543c:	e3a00000 	mov	r0, #0
   15440:	ebfff781 	bl	1324c <mafw_log_init@plt>
So I think we can add mafw_log_init(NULL) to OMP player/main.cpp too and this fix syslog flooding...

@gidzzz: Can you recheck if OMP doing same mafw initialization as above mafw example from SDK?
 

The Following 5 Users Say Thank You to pali For This Useful Post: