Exemplo n.º 1
0
Arquivo: main.c Projeto: aalex/jasm
gboolean key_press_event(ClutterActor *stage, ClutterEvent *event, gpointer user_data)
{
    UNUSED(user_data);
    guint keyval = clutter_event_get_key_symbol(event);
    ClutterModifierType state = clutter_event_get_state(event);
    gboolean ctrl_pressed = (state & CLUTTER_CONTROL_MASK ? TRUE : FALSE);
    if (keyval == CLUTTER_KEY_Escape)
    {
        if (clutter_stage_get_fullscreen(CLUTTER_STAGE(stage)))
            clutter_stage_set_fullscreen(CLUTTER_STAGE(stage), FALSE);
        else
            clutter_stage_set_fullscreen(CLUTTER_STAGE(stage), TRUE);
    }
    else if (keyval == CLUTTER_KEY_q)
    {
        // Quit application on ctrl-q, this quits the main loop
        // (if there is one)
        if (ctrl_pressed)
        {
            if (option_verbose)
                g_print("ctrl-q pressed. quitting.\n");
            clutter_main_quit();
        }
    }
    return TRUE;
}
Exemplo n.º 2
0
void App::toggleFullscreen()
{
    fullscreen_ = ! fullscreen_;
    if (verbose_)
        std::cout << "App::" << __FUNCTION__ << ": " << fullscreen_ << std::endl;
    if (fullscreen_)
        clutter_stage_set_fullscreen(CLUTTER_STAGE(stage_), TRUE);
    else
        clutter_stage_set_fullscreen(CLUTTER_STAGE(stage_), FALSE);
}
Exemplo n.º 3
0
static void
toggle_fullscreen (UserInterface * ui)
{
  if (ui->fullscreen) {
    clutter_stage_set_fullscreen (CLUTTER_STAGE (ui->stage), FALSE);
    ui->fullscreen = FALSE;
  } else {
    clutter_stage_set_fullscreen (CLUTTER_STAGE (ui->stage), TRUE);
    ui->fullscreen = TRUE;
  }
}
Exemplo n.º 4
0
G_MODULE_EXPORT int
test_fullscreen_main (int argc, char *argv[])
{
  ClutterActor *stage;

  clutter_init (&argc, &argv);

  stage = clutter_stage_get_default ();
  g_signal_connect (stage,
                    "fullscreen", G_CALLBACK (on_fullscreen),
                    NULL);
  g_signal_connect (stage,
                    "unfullscreen", G_CALLBACK (on_unfullscreen),
                    NULL);

  clutter_stage_set_fullscreen (CLUTTER_STAGE (stage), TRUE);
  clutter_actor_show (stage);

  g_debug ("stage size: %.2fx%.2f, mapped: %s",
           clutter_actor_get_width (stage),
           clutter_actor_get_height (stage),
           CLUTTER_ACTOR_IS_MAPPED (stage) ? "true" : "false");

  g_timeout_add (1000, toggle_fullscreen, NULL);

  clutter_main ();

  return EXIT_SUCCESS;
}
Exemplo n.º 5
0
static void
fullscreen_cb (MxToggle     *toggle,
               GParamSpec   *pspec,
               ClutterStage *stage)
{
    clutter_stage_set_fullscreen (stage, mx_toggle_get_active (toggle));
}
Exemplo n.º 6
0
void
show_message (void)
{
  ClutterActor *stage, *label;
  ClutterColor black = { 0, 0, 0, 255 };
  ClutterColor white = { 255, 255, 255, 255 };

  clutter_init (NULL, NULL);

  stage = clutter_stage_get_default ();
  clutter_stage_set_color (CLUTTER_STAGE (stage), &black);
  clutter_stage_set_fullscreen (CLUTTER_STAGE (stage), TRUE);

  label = clutter_text_new_with_text ("Sans 20",
                                      "Cannot find suitable screen mode\n"
                                      "Media Explorer requires a 720p screen");
  clutter_text_set_line_wrap (CLUTTER_TEXT (label), TRUE);
  clutter_text_set_color (CLUTTER_TEXT (label), &white);
  clutter_container_add_actor (CLUTTER_CONTAINER (stage), label);

  /* Put the label in the middle */
  clutter_actor_add_constraint
    (label, clutter_align_constraint_new (stage, CLUTTER_ALIGN_X_AXIS, 0.5));
  clutter_actor_add_constraint
    (label, clutter_align_constraint_new (stage, CLUTTER_ALIGN_Y_AXIS, 0.5));

  clutter_actor_show (stage);
  clutter_main ();
}
Exemplo n.º 7
0
ClutterActor *
new_stage(void){
  static const ClutterColor black = {0, 0, 0, 255};
  ClutterActor *stage = clutter_stage_get_default();
  clutter_stage_set_color(CLUTTER_STAGE(stage), &black);
  clutter_stage_set_fullscreen(CLUTTER_STAGE(stage), TRUE);
  clutter_stage_hide_cursor(CLUTTER_STAGE(stage));
  return stage;
}
Exemplo n.º 8
0
gint
main (gint   argc,
      gchar *argv[])
{
   ClutterContent *image;
   ClutterActor *stage;
   ClutterActor *box;
   GdkPixbuf *pixbuf;

   if (clutter_init(&argc, &argv) != CLUTTER_INIT_SUCCESS) {
      g_printerr("Failed to initialize clutter.\n");
      return 1;
   }

   stage = clutter_stage_new();
   clutter_stage_set_title (CLUTTER_STAGE (stage), "Image Viewer");
   clutter_actor_set_size(stage, 1400, 1200);
   clutter_actor_set_position(stage, 100, 100);
   g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL);
   clutter_actor_show(stage);

   pixbuf = gdk_pixbuf_new_from_file("testimage_8000.png", NULL);
   g_assert(pixbuf);

   image = clutter_image_new();
   clutter_image_set_data(CLUTTER_IMAGE(image),
                          gdk_pixbuf_get_pixels(pixbuf),
                          gdk_pixbuf_get_has_alpha(pixbuf) ?
                             COGL_PIXEL_FORMAT_RGBA_8888 :
                             COGL_PIXEL_FORMAT_RGB_888,
                          gdk_pixbuf_get_width(pixbuf),
                          gdk_pixbuf_get_height(pixbuf),
                          gdk_pixbuf_get_rowstride(pixbuf),
                          NULL);
   g_object_unref(pixbuf);

   box = clutter_actor_new();
   clutter_actor_set_position(box, 0, 0);
   clutter_actor_set_height(box, 8000);
   clutter_actor_set_width(box, 1200);
   //clutter_actor_add_constraint(box, clutter_bind_constraint_new(stage, CLUTTER_BIND_WIDTH, 0.0));
   clutter_actor_set_content(box, image);
   clutter_actor_add_child(stage, box);
   clutter_actor_show(box);

   clutter_stage_set_fullscreen(CLUTTER_STAGE(stage), TRUE);

   clutter_actor_animate(box,
                         CLUTTER_EASE_IN_OUT_QUAD,
                         4000,
                         "y", -8000.0,
                         NULL);

   clutter_main();

   return 0;
}
Exemplo n.º 9
0
Storyboard *
storyboard_new (const gchar *snippets_path)
{
  Storyboard *self;
  ClutterColor bg_color = {200, 200, 200, 255};

  self = g_slice_new0 (Storyboard);

  self->max_knock = DEFAULT_MAX_KNOCK;
  self->max_salute = DEFAULT_MAX_SALUTE;
  self->gesture_index = g_random_int_range (0, TOTAL_GESTURES-1);

  if (g_strstr_len (snippets_path, -1, "file://") != snippets_path)
    self->snippets_path = g_strdup_printf ("file://%s", snippets_path);
  else
    self->snippets_path = g_strdup (snippets_path);

  self->stage = clutter_stage_new ();
  clutter_stage_hide_cursor (CLUTTER_STAGE (self->stage));
  g_signal_connect (self->stage,
                    "destroy",
                    G_CALLBACK (clutter_main_quit),
                    NULL);
  g_signal_connect (self->stage,
                    "key-press-event",
                    G_CALLBACK (stage_on_key_pressed),
                    self);

  clutter_actor_set_size (self->stage, 1920, 1080);
  clutter_stage_set_fullscreen (CLUTTER_STAGE (self->stage), TRUE);
  clutter_actor_set_background_color (self->stage, &bg_color);

  /* transition */
  self->transition = transition_new (self->stage,
                                     1000,
                                     transition_on_finish,
                                     self);

  /* salut stream */
  salut_stream_new (on_salut_stream_ready, self);

  g_object_unref (self->stage);

  clutter_actor_show (self->stage);

  /* initial state */
  self->status = STATUS_NONE;

  return self;
}
Exemplo n.º 10
0
static gboolean
blue_button_cb (ClutterActor *actor,
		ClutterEvent *event,
		gpointer      data)
{
  ClutterActor *stage;

  stage = clutter_actor_get_stage (actor);

  if (IsFullScreen)
    IsFullScreen = FALSE;
  else
    IsFullScreen = TRUE;

  clutter_stage_set_fullscreen (CLUTTER_STAGE (stage), IsFullScreen);

  g_print ("*** Fullscreen %s ***\n",
           IsFullScreen ? "enabled" : "disabled");

  return FALSE;
}
Exemplo n.º 11
0
static gboolean
toggle_fullscreen (gpointer dummy)
{
  ClutterActor *stage = clutter_stage_get_default ();
  gboolean is_fullscreen = FALSE;

  g_object_get (G_OBJECT (stage), "fullscreen-set", &is_fullscreen, NULL);

  switch (state)
    {
    case START:
      g_debug ("start: is_fullscreen := %s", is_fullscreen ? "true" : "false");
      clutter_actor_hide (stage);
      state = HIDE;
      return TRUE;

    case HIDE:
      g_debug ("hide:  is_fullscreen := %s", is_fullscreen ? "true" : "false");
      clutter_actor_show (stage);
      state = SHOW;
      return TRUE;

    case SHOW:
      g_debug ("show:  is_fullscreen := %s", is_fullscreen ? "true" : "false");
      clutter_stage_set_fullscreen (CLUTTER_STAGE (stage), FALSE);
      state = DONE;
      return TRUE;

    case DONE:
      g_debug ("done:  is_fullscreen := %s", is_fullscreen ? "true" : "false");
      clutter_main_quit ();
      break;
    }

  return FALSE;
}
Exemplo n.º 12
0
Arquivo: main.c Projeto: aalex/jasm
int main(int argc, char *argv[])
{
  ClutterTimeline  *timeline;
  ClutterActor     *stage;

  if (argc < 1)
    {
      g_error ("Usage: %s", argv[0]);
      return EXIT_FAILURE;
    }
  else
  {
    GError *error = NULL;
    GOptionContext *context;
  
    context = g_option_context_new (PROGRAM_DESC);
    g_option_context_add_main_entries (context, entries, NULL); //GETTEXT_PACKAGE);
    //g_option_context_add_group (context, gtk_get_option_group (TRUE));
    if (! g_option_context_parse (context, &argc, &argv, &error))
      {
        g_print ("option parsing failed: %s\n", error->message);
        return EXIT_FAILURE; // exit (1);
      }
  }

  if (option_version)
  {
    g_print("contextize version %s\n", PACKAGE_VERSION);
    return 0;
  }

  g_thread_init(NULL); // to load images asynchronously. must be called before clutter_init
  if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
    {
      g_error ("Failed to initialize clutter\n");
      return EXIT_FAILURE;
    }
  gst_init (&argc, &argv);

  stage = clutter_stage_get_default ();
  clutter_actor_set_size(stage, STAGE_WIDTH, STAGE_HEIGHT);
  clutter_stage_set_color(CLUTTER_STAGE(stage), &black);
  clutter_stage_set_title(CLUTTER_STAGE(stage), STAGE_TITLE);

  /* Make a timeline */
  timeline = clutter_timeline_new (1000);
  g_object_set(timeline, "loop", TRUE, NULL);

  ClutterActor *texture_live = setup_camera_texture(stage);

  // create the layout
  ClutterLayoutManager *layout;
  ClutterActor *box;
  layout = clutter_bin_layout_new(CLUTTER_BIN_ALIGNMENT_CENTER,
                                  CLUTTER_BIN_ALIGNMENT_CENTER);
  box = clutter_box_new(layout); /* then the container */
  clutter_actor_set_name(box, BOX_ACTOR);
  /* we can use the layout object to add actors */
  clutter_bin_layout_add(CLUTTER_BIN_LAYOUT(layout), texture_live,
                         CLUTTER_BIN_ALIGNMENT_FILL,
                         CLUTTER_BIN_ALIGNMENT_FILL);
  clutter_container_add_actor(CLUTTER_CONTAINER(stage), box);
  clutter_actor_set_size(box, STAGE_WIDTH, STAGE_HEIGHT);
  clutter_actor_show_all(box);

  g_signal_connect(G_OBJECT(stage), "fullscreen", G_CALLBACK(on_fullscreen), NULL);
  g_signal_connect(G_OBJECT(stage), "unfullscreen", G_CALLBACK(on_unfullscreen), NULL);
  g_signal_connect(G_OBJECT(stage), "key-press-event", G_CALLBACK(key_press_event), NULL);

  /* start the timeline */
  clutter_timeline_start (timeline);

  clutter_actor_show_all (stage);

  if (option_fullscreen)
      clutter_stage_set_fullscreen(CLUTTER_STAGE(stage), TRUE);

  // OSC server
  lo_server_thread osc_server = NULL;
  if (option_osc_receive_port != 0)
  {
    gchar *osc_port_str = g_strdup_printf("%i", option_osc_receive_port);
    if (option_verbose)
      g_print("Listening on osc.udp://localhost:%s\n", osc_port_str);
    osc_server = lo_server_thread_new(osc_port_str, on_osc_error);
    g_free(osc_port_str);
  
    lo_server_thread_start(osc_server);
  }

  clutter_main();

  if (option_osc_receive_port != 0)
    lo_server_thread_free(osc_server);
  return EXIT_SUCCESS;
}
Exemplo n.º 13
0
int
main (int argc, char *argv[])
{
  ClutterActor *video;

  /* So we can fade out at the end. */
  clutter_x11_set_use_argb_visual (TRUE);

  if (clutter_gst_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
    return EXIT_FAILURE;

  if (argc < 2)
    {
      g_print ("Usage: %s [OPTIONS] <video file>\n", argv[0]);
      return EXIT_FAILURE;
    }

  if (!clutter_color_from_string (&bg_color, BG_COLOR))
    {
      g_warning ("Invalid BG_COLOR");
      exit (1);
    }

  stage = clutter_stage_new ();

  /* Clutter's full-screening code does not allow us to
   * set both that and _NET_WM_STATE_ABOVE, so do the state
   * management ourselves for now. */
#if 0
  clutter_stage_set_fullscreen (CLUTTER_STAGE (stage), TRUE);
#endif

  /* Clutter will set maximum size restrictions (meaning not
   * full screen) unless I set this. */
  clutter_stage_set_user_resizable (CLUTTER_STAGE (stage), TRUE);

  clutter_stage_set_use_alpha (CLUTTER_STAGE (stage), TRUE);

  clutter_actor_set_background_color (stage, &bg_color);
  clutter_actor_set_layout_manager (stage,
                                    clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_FIXED,
                                                            CLUTTER_BIN_ALIGNMENT_FIXED));

  clutter_actor_realize (stage);
  set_above_and_fullscreen ();

  video = clutter_gst_video_texture_new ();
  clutter_actor_set_x_expand (video, TRUE);
  clutter_actor_set_y_expand (video, TRUE);
  clutter_actor_set_x_align (video, CLUTTER_ACTOR_ALIGN_CENTER);
  clutter_actor_set_y_align (video, CLUTTER_ACTOR_ALIGN_CENTER);
  set_idle_material (CLUTTER_GST_VIDEO_TEXTURE (video));

  g_signal_connect (video,
                    "eos",
                    G_CALLBACK (on_video_texture_eos),
                    NULL);

  g_signal_connect (stage,
                    "destroy",
                    G_CALLBACK (clutter_main_quit),
                    NULL);

  clutter_media_set_filename (CLUTTER_MEDIA (video), argv[1]);
  clutter_stage_hide_cursor (CLUTTER_STAGE (stage));

  clutter_actor_add_child (stage, video);

  g_signal_connect (stage, "key-press-event", G_CALLBACK (key_press_cb), NULL);

  clutter_media_set_playing (CLUTTER_MEDIA (video), TRUE);
  clutter_actor_show (stage);
  clutter_main ();

  return EXIT_SUCCESS;
}
Exemplo n.º 14
0
void
interface_start (UserInterface * ui, gchar * uri)
{
  ClutterColor stage_color = { 0x00, 0x00, 0x00, 0x00 };

  g_print ("Loading ui!\n");

  // Init UserInterface structure variables
  ui->fileuri = uri;
  ui->filename = g_path_get_basename (ui->fileuri);

  ui->media_width = ui->engine->media_width;
  ui->media_height = ui->engine->media_height;

  ui->stage_width = ui->engine->media_width;
  ui->stage_height = ui->engine->media_height;
  ui->stage = clutter_stage_get_default ();

  ui->controls_showing = FALSE;
  ui->keep_showing_controls = FALSE;
  ui->penalty_box_active = FALSE;
  ui->controls_timeout = -1;

  ui->seek_width = ui->stage_width / SEEK_WIDTH_RATIO;
  ui->seek_height = ui->stage_height / SEEK_HEIGHT_RATIO;

  ui->progress_id = -1;
  ui->title_length = TITLE_LENGTH;
  ui->duration_str = position_ns_to_str (ui->engine->media_duration);

  ui->rotated = FALSE;

  clutter_stage_set_color (CLUTTER_STAGE (ui->stage), &stage_color);
  clutter_stage_set_minimum_size (CLUTTER_STAGE (ui->stage),
      ui->stage_width, ui->stage_height);
  clutter_stage_set_title (CLUTTER_STAGE (ui->stage), ui->filename);

  clutter_actor_set_size (CLUTTER_ACTOR (ui->stage), ui->stage_width,
    ui->stage_height);

  if (ui->fullscreen) {
    clutter_stage_set_fullscreen (CLUTTER_STAGE (ui->stage), TRUE);
  }

  // Controls
  load_controls (ui);

  // Add video texture and control UI to stage
  clutter_container_add (CLUTTER_CONTAINER (ui->stage), ui->texture,
      ui->control_box, NULL);

  clutter_stage_hide_cursor (CLUTTER_STAGE (ui->stage));
  clutter_actor_animate (ui->control_box, CLUTTER_EASE_OUT_QUINT, SECOND,
      "opacity", 0, NULL);

  g_signal_connect (CLUTTER_STAGE (ui->stage), "fullscreen",
      G_CALLBACK (size_change), ui);
  g_signal_connect (CLUTTER_STAGE (ui->stage), "unfullscreen",
      G_CALLBACK (size_change), ui);
  g_signal_connect (ui->stage, "event", G_CALLBACK (event_cb), ui);

  clutter_actor_set_anchor_point_from_gravity (CLUTTER_ACTOR (ui->texture),
      CLUTTER_GRAVITY_CENTER);
  clutter_actor_set_position (CLUTTER_ACTOR (ui->texture), ui->stage_width / 2,
      ui->stage_height / 2);

  center_controls (ui);
  progress_timing (ui);

  ui->screensaver = screensaver_new (CLUTTER_STAGE (ui->stage));
  screensaver_enable (ui->screensaver, FALSE);

  g_timeout_add (SECOND, progress_update_text, ui);

  clutter_actor_show (ui->stage);
}
Exemplo n.º 15
0
	/*
		Called whenever the fullscreen button is clicked
	*/
	void WindowPanel::fullscreen_clicked() {
		clutter_stage_set_fullscreen(CLUTTER_STAGE(clutter_stage_get_default()),
		                             !clutter_stage_get_fullscreen(CLUTTER_STAGE(clutter_stage_get_default())));
	}
Exemplo n.º 16
0
int
main (int argc, char **argv)
{
  ClutterActor *stage;
  ClutterActor *fader;
  ClutterConstraint *constraint;
  CoglHandle tex0, tex1;
  GError *error = NULL;

  if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
    return 1;

  if (argc != 3)
    {
      g_print ("usage: %s <image1> <image2>\n",
               argv[0]);
      return 1;
    }

  tex0 = cogl_texture_new_from_file (argv[1],
                                     COGL_TEXTURE_NO_SLICING |
                                     COGL_TEXTURE_NO_ATLAS,
                                     COGL_PIXEL_FORMAT_ANY,
                                     &error);
  if (tex0 == COGL_INVALID_HANDLE)
    {
      g_print ("error opening %s: %s\n", argv[1], error->message);
      g_clear_error (&error);
      return 1;
    }

  tex1 = cogl_texture_new_from_file (argv[2],
                                     COGL_TEXTURE_NO_SLICING |
                                     COGL_TEXTURE_NO_ATLAS,
                                     COGL_PIXEL_FORMAT_ANY,
                                     &error);
  if (tex1 == COGL_INVALID_HANDLE)
    {
      cogl_handle_unref (tex0);
      g_print ("error opening %s: %s\n", argv[2], error->message);
      g_clear_error (&error);
      return 1;
    }

  fader = foo_fader_new ();

  foo_fader_set_texture_0 (FOO_FADER (fader), tex0);
  foo_fader_set_texture_1 (FOO_FADER (fader), tex1);

  cogl_handle_unref (tex0);
  cogl_handle_unref (tex1);

  stage = clutter_stage_get_default ();
  clutter_stage_set_fullscreen (CLUTTER_STAGE (stage), TRUE);

  g_signal_connect (stage, "button-press-event",
                    G_CALLBACK (button_press_event_cb),
                    fader);

  clutter_container_add_actor (CLUTTER_CONTAINER (stage), fader);

  constraint =
    clutter_bind_constraint_new (stage,
                                 CLUTTER_BIND_SIZE,
                                 0.0f);
  clutter_actor_add_constraint (fader, constraint);

  /* massive hack --- nothing to see here! */
  foo_fader_set_progress (FOO_FADER (fader), 0.00001f);

  clutter_actor_show (stage);

  clutter_main ();

  return 0;
}