test-recorder: Create the recorder only after the stage is realized
The recorder needs the stage's XID so it can only be created after the stage is realized. https://bugzilla.gnome.org/show_bug.cgi?id=675301
This commit is contained in:
parent
cb5941ec55
commit
d579cd1605
@ -7,12 +7,19 @@
|
|||||||
/* Very simple test of the ShellRecorder class; shows some text strings
|
/* Very simple test of the ShellRecorder class; shows some text strings
|
||||||
* moving around and records it.
|
* moving around and records it.
|
||||||
*/
|
*/
|
||||||
static ShellRecorder *recorder;
|
static ShellRecorder *recorder = NULL;
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
stop_recording_timeout (gpointer data)
|
stop_recording_timeout (gpointer data)
|
||||||
|
{
|
||||||
|
if (recorder)
|
||||||
{
|
{
|
||||||
shell_recorder_close (recorder);
|
shell_recorder_close (recorder);
|
||||||
|
g_object_unref (recorder);
|
||||||
|
}
|
||||||
|
|
||||||
|
clutter_main_quit ();
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,6 +29,15 @@ on_animation_completed (ClutterAnimation *animation)
|
|||||||
g_timeout_add (1000, stop_recording_timeout, NULL);
|
g_timeout_add (1000, stop_recording_timeout, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_stage_realized (ClutterActor *stage,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
recorder = shell_recorder_new (CLUTTER_STAGE (stage));
|
||||||
|
shell_recorder_set_filename (recorder, "test-recorder.ogg");
|
||||||
|
shell_recorder_record (recorder);
|
||||||
|
}
|
||||||
|
|
||||||
int main (int argc, char **argv)
|
int main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
ClutterActor *stage;
|
ClutterActor *stage;
|
||||||
@ -86,13 +102,14 @@ int main (int argc, char **argv)
|
|||||||
"y", 240.0,
|
"y", 240.0,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
recorder = shell_recorder_new (CLUTTER_STAGE (stage));
|
g_signal_connect_after (stage, "realize",
|
||||||
shell_recorder_set_filename (recorder, "test-recorder.ogg");
|
G_CALLBACK (on_stage_realized), NULL);
|
||||||
|
|
||||||
clutter_actor_show (stage);
|
clutter_actor_show (stage);
|
||||||
|
|
||||||
shell_recorder_record (recorder);
|
|
||||||
clutter_main ();
|
clutter_main ();
|
||||||
|
|
||||||
|
g_object_unref (stage);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user