1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#include "config.h"
#include <stdlib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <clutter-gtk/clutter-gtk.h>
#include <gst/gst.h>
#include "cheese-camera.h"
#include "cheese.h"
static gboolean
delete_callback (GtkWidget *window,
GdkEvent *event,
gpointer data)
{
gtk_widget_destroy (window);
gtk_main_quit ();
return FALSE;
}
static gboolean
time_cb (CheeseCamera *camera)
{
g_print ("Cheese! filename: testcamera.jpg\n");
cheese_camera_take_photo (camera, "testcamera.jpg");
return FALSE;
}
int
main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *screen;
CheeseCamera *camera;
ClutterActor *stage;
ClutterActor *texture;
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
if (gtk_clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return EXIT_FAILURE;
if (!cheese_init (&argc, &argv))
return EXIT_FAILURE;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);
g_signal_connect (G_OBJECT (window), "delete-event",
G_CALLBACK (delete_callback), NULL);
screen = gtk_clutter_embed_new ();
stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (screen));
texture = clutter_actor_new ();
clutter_actor_set_size (texture, 400, 300);
clutter_actor_add_child (stage, texture);
gtk_widget_show (screen);
clutter_actor_show (texture);
camera = cheese_camera_new (texture, NULL, 640, 480);
cheese_camera_setup (camera, NULL, NULL);
gtk_container_add (GTK_CONTAINER (window), screen);
gtk_widget_show_all (window);
cheese_camera_play (camera);
g_timeout_add_seconds (5, (GSourceFunc) (time_cb), camera);
gtk_main ();
return EXIT_SUCCESS;
}
|