Simply set window title to Infinity

This commit is contained in:
Duilio Protti 2016-07-02 20:39:56 -03:00
parent 4503286694
commit a908de9415
6 changed files with 133 additions and 42 deletions

View File

@ -106,10 +106,6 @@ static gint32 get_color_interval() {
return aud_get_int(CFGID, "palette_time");
}
static gboolean must_show_title() {
return aud_get_bool(CFGID, "show_title");
}
static gint32 get_max_fps() {
return aud_get_int(CFGID, "max_fps");
}
@ -124,7 +120,6 @@ static void init_params() {
params.get_scale = get_scale;
params.get_effect_interval = get_effect_interval;
params.get_color_interval = get_color_interval;
params.must_show_title = must_show_title;
params.get_max_fps = get_max_fps;
};
@ -234,7 +229,6 @@ static const char * const defaults[] = {
"palette_time", "100",
"scale_factor", "1",
"max_fps", "30",
"show_title", "true",
nullptr
};

View File

@ -95,6 +95,7 @@ static gboolean sdl_init()
player->notify_critical_error(error_msg);
return FALSE;
}
SDL_SetWindowTitle(window, "Infinity");
return allocate_screen_and_texture();
}
@ -465,11 +466,6 @@ void display_toggle_fullscreen(void)
SDL_ShowCursor(is_fullscreen);
}
void display_set_title(const gchar *title) {
g_return_if_fail(window != NULL);
SDL_SetWindowTitle(window, title);
}
void display_save_screen(void)
{
gchar name[256];

View File

@ -83,7 +83,6 @@ void curve(t_effect *current_effect);
*/
void display_toggle_fullscreen(void);
void display_set_title(const gchar *title);
void display_save_screen(void);
void display_save_effect(t_effect *effect);
void display_load_random_effect(t_effect *effect);

View File

@ -55,14 +55,11 @@ static gboolean visible;
static gboolean quiting;
static gboolean interactive_mode;
static gboolean first_xevent;
static gchar *current_title;
static GTimer *title_timer;
static SDL_Thread *thread;
static void check_events();
static int renderer(void *);
static void set_title(void);
void infinity_init(InfParameters * _params, Player * _player)
{
@ -104,10 +101,6 @@ void infinity_init(InfParameters * _params, Player * _player)
quiting = FALSE;
first_xevent = TRUE;
current_title = g_strdup("Infinity");
set_title();
title_timer = g_timer_new();
g_timer_start(title_timer);
display_load_random_effect(&current_effect);
thread = SDL_CreateThread(renderer, "infinity_renderer", NULL);
@ -143,7 +136,6 @@ void infinity_finish(void)
*/
g_usleep(1000000);
display_quit();
g_timer_destroy(title_timer);
player->disable_plugin();
@ -246,22 +238,6 @@ static void check_events()
{
SDL_Event event;
if (params->must_show_title()) {
if (g_timer_elapsed(title_timer, NULL) > 1.0) {
if (player->is_playing()) {
if (current_title)
g_free(current_title);
current_title = g_strdup(player->get_title());
} else {
if (current_title)
g_free(current_title);
current_title = g_strdup("Infinity");
}
set_title();
g_timer_reset(title_timer);
}
}
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
@ -428,8 +404,3 @@ static int renderer(void *arg)
return 0;
}
static void set_title(void)
{
display_set_title(current_title);
}

View File

@ -30,7 +30,6 @@ typedef struct _InfParameters {
gint32 (*get_bpp) (void); /* bytes per pixels. */
gint32 (*get_effect_interval) (void);
gint32 (*get_color_interval) (void);
gint32 (*must_show_title) (void);
gint32 (*get_max_fps) (void);
} InfParameters;

132
src/rhythmbox.c Normal file
View File

@ -0,0 +1,132 @@
/*
* Copyright (C) 2016 - Duilio Protti
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* The Rhythmbox authors hereby grant permission for non-GPL compatible
* GStreamer plugins to be used and distributed together with GStreamer
* and Rhythmbox. This permission is above and beyond the permissions granted
* by the GPL license by which Rhythmbox is covered. If you modify this code
* you may extend this exception to your version of the code, but you are not
* obligated to do so. If you do not wish to do so, delete this exception
* statement from your version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <string.h> /* For strlen */
//#include <glib/gi18n-lib.h>
#include <gmodule.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <glib-object.h>
#include <plugins/rb-plugin-macros.h>
#include <lib/rb-debug.h>
#include <shell/rb-shell.h>
#include <widgets/rb-dialog.h>
#include "infinity.h"
#define RB_TYPE_INFINITY_PLUGIN (rb_infinity_plugin_get_type ())
#define rb_infinity_plugin(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), RB_TYPE_INFINITY_PLUGIN, RBInfinityPlugin))
#define rb_infinity_plugin_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), RB_TYPE_INFINITY_PLUGIN, RBInfinityPluginClass))
#define RB_IS_INFINITY_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), RB_TYPE_INFINITY_PLUGIN))
#define RB_IS_INFINITY_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), RB_TYPE_INFINITY_PLUGIN))
#define rb_infinity_plugin_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), RB_TYPE_INFINITY_PLUGIN, RBInfinityPluginClass))
typedef struct
{
PeasExtensionBase parent;
} RBInfinityPlugin;
typedef struct
{
PeasExtensionBaseClass parent_class;
} RBInfinityPluginClass;
G_MODULE_EXPORT void peas_register_types (PeasObjectModule *module);
static void rb_infinity_plugin_init (RBInfinityPlugin *plugin);
RB_DEFINE_PLUGIN(RB_TYPE_INFINITY_PLUGIN, RBInfinityPlugin, rb_infinity_plugin,)
static gint32 get_width() { return 640; }
static void set_width(gint32 width) { g_message("set_width TODO"); }
static gint32 get_height() { return 480; }
static void set_height(gint32 height) { g_message("set_height TODO"); }
static gint32 get_scale() { return 1; }
static gint32 get_max_fps() { return 30; }
static gint32 get_effect_interval() { return 100; }
static gint32 get_color_interval() { return 100; }
static InfParameters params = {
.get_width = get_width,
.set_width = set_width,
.get_height = get_height,
.set_height = set_height,
.get_scale = get_scale,
.get_effect_interval = get_effect_interval,
.get_color_interval = get_color_interval,
.get_max_fps = get_max_fps
};
static void notify_critical_error (const gchar *message) { g_message("notify_critical_error TODO"); }
static void disable_plugin() { g_message("disable_plugin TODO"); }
static Player player = {
.notify_critical_error = notify_critical_error,
.disable_plugin = disable_plugin
};
static void
rb_infinity_plugin_init (RBInfinityPlugin *plugin)
{
g_message("RBInfinityPlugin initialising");
rb_debug ("RBInfinityPlugin initialising");
}
static void
impl_activate (PeasActivatable *plugin)
{
RBShell *shell;
g_object_get (plugin, "object", &shell, NULL);
g_message("Infinity plugin activated, with shell %p", shell);
//rb_error_dialog (NULL, "Sample Plugin", "Sample plugin activated, with shell %p", shell);
g_object_unref (shell);
infinity_init(&params, &player);
}
static void
impl_deactivate (PeasActivatable *plugin)
{
g_message("Infinity plugin deactivated");
//rb_error_dialog (NULL, "Sample Plugin", "Sample plugin deactivated");
infinity_finish();
}
//G_MODULE_EXPORT void
EXPORT void
peas_register_types (PeasObjectModule *module)
{
rb_infinity_plugin_register_type (G_TYPE_MODULE (module));
peas_object_module_register_extension_type (module,
PEAS_TYPE_ACTIVATABLE,
RB_TYPE_INFINITY_PLUGIN);
}