![]() | ![]() | ![]() | BLib Reference Manual | ![]() |
---|
BTheme — theme support to visualize Blinkenlights
struct BColor; struct BRectangle; struct BWindow; #define B_WINDOW_VALUE_ALL struct BOverlay; struct BTheme; BTheme* b_theme_new_from_file (const gchar *filename, gboolean lazy_load, GError **error); BTheme* b_theme_new_from_scratch (const gchar *title, const gchar *type, gint rows, gint columns, gint channels, gint maxval, gint width, gint height); gboolean b_theme_load (BTheme *theme, GError **error); void b_theme_unload (BTheme *theme); struct BThemesQuery; enum BThemesQueryFlags; GList* b_themes_query (const gchar *themepath, BThemesQuery *query); gboolean (*BThemesForeachFunc) (BTheme *theme, gpointer callback_data); void b_themes_foreach (const gchar *themepath, BThemesForeachFunc callback, gpointer callback_data); void b_themes_foreach_theme (const gchar *themepath, GHFunc callback, gpointer callback_data); BTheme* b_themes_lookup_theme (const gchar *name, const gchar *themepath, GError **error); gboolean b_theme_frame_diff_boundary (BTheme *theme, const guchar *prev_data, const guchar *frame_data, BRectangle *bbox);
A BTheme object defines the dimensions, features and the look of a Blinkenlights installation. It allows to implement a graphical simulation. BLib comes with two widgets, BViewGtk and BViewDirectFB that hide the ugly details of BTheme.
struct BColor { guchar a; guchar r; guchar g; guchar b; };
The BColor struct is used to store a single color. The color channels have values in the range from 0 to 255.
guchar a | alpha channel value (opacity) |
guchar r | red channel value |
guchar g | green channel value |
guchar b | blue channel value |
struct BRectangle { gint x; gint y; gint w; gint h; };
The BRectangle struct is used to store a rectangle. The coordinates are pixel values. The x coordinate advances from left to right, the y coordinate from top to bottom.
gint x | horizontal offset from origin |
gint y | vertical offset from origin |
gint w | width |
gint h | height |
struct BWindow { gint value; gint row; gint column; gint src_x; gint src_y; BRectangle rect; };
The BWindow struct defines a single overlay window used in a BTheme.
gint value | the value this window definition applies to |
gint row | the row index |
gint column | the column index |
gint src_x | x coordinate in the upper left corner in the source image |
gint src_y | y coordinate of the upper left corner in the source image |
BRectangle rect | the destination rectangle |
#define B_WINDOW_VALUE_ALL 0
A special value used to indicate that the window definition is valid for all possible values.
struct BOverlay { gchar *image; BColor color; GList *windows; };
The BOverlay struct defines a set of overlay windows used in a BTheme.
struct BTheme;
The BTheme object defines the dimensions and the look of a Blinkenlights installation.
BTheme* b_theme_new_from_file (const gchar *filename, gboolean lazy_load, GError **error);
Tries to load a BTheme from the file pointed to by filename. If lazy_load is TRUE, only the header is loaded.
filename : | the name of the file to load the theme from |
lazy_load : | whether to do lazy-loading |
error : | location to store the error occuring, or NULL to ignore errors |
Returns : | a newly allocated BTheme object or NULL if the load failed |
BTheme* b_theme_new_from_scratch (const gchar *title, const gchar *type, gint rows, gint columns, gint channels, gint maxval, gint width, gint height);
Creates a new BTheme object from scratch. This may be useful if you want to quickly test a movie for a layout you don't have a theme for. You need to call b_theme_load() before you can use the new theme.
title : | a descriptive title |
type : | the theme type or NULL |
rows : | the number of rows of windows |
columns : | the number of columns of windows |
channels : | the number of channels per window (must be 1) |
maxval : | the maximum value |
width : | screen width in pixels |
height : | screen height in pixels |
Returns : | a newly allocated, lazy-loaded, BTheme object |
gboolean b_theme_load (BTheme *theme, GError **error);
Loads all data into the theme. You only need to call this if you lazy-loaded the theme or called b_theme_unload() before.
theme : | a BTheme object |
error : | location to store the error occuring, or NULL to ignore errors |
Returns : | TRUE on success, FALSE otherwise |
void b_theme_unload (BTheme *theme);
Frees all data of a BTheme except the meta information stored in the header.
theme : | a BTheme object |
struct BThemesQuery { BThemesQueryFlags flags; const gchar *name; const gchar *type; gint rows; gint columns; gint width; gint height; };
A structure that defines a query on the installed themes. Used by b_themes_query().
typedef enum { B_THEMES_QUERY_NONE = 0, B_THEMES_QUERY_NAME = 1 << 0, B_THEMES_QUERY_TYPE = 1 << 1, B_THEMES_QUERY_ROWS = 1 << 2, B_THEMES_QUERY_COLUMNS = 1 << 3, B_THEMES_QUERY_WIDTH = 1 << 4, B_THEMES_QUERY_HEIGHT = 1 << 5 } BThemesQueryFlags;
Flags that define which values of a BThemesQuery are valid.
GList* b_themes_query (const gchar *themepath, BThemesQuery *query);
Looks for themes as defined by query. If themepath is not specified the default path is used. The default path can be overridden by setting the environment variable B_THEME_PATH.
Each theme that matches the query is lazy-loaded.
themepath : | a colon-separated list of directories to search or NULL to use the default path |
query : | pointer to a BThemesQuery |
Returns : | a GList of newly allocated, lazy-loaded BTheme objects or NULL if no matching theme was found |
gboolean (*BThemesForeachFunc) (BTheme *theme, gpointer callback_data);
This function is called for each theme found by b_themes_foreach().
theme : | |
callback_data : | |
Returns : |
void b_themes_foreach (const gchar *themepath, BThemesForeachFunc callback, gpointer callback_data);
This function iterates over all themes in the themepath, lazy-loads them, runs callback on the theme and unrefs it again. The iteration is stopped if a callback returns FALSE.
If themepath is not specified, the default path is used. The default path can be overridden by setting the environment variable B_THEME_PATH.
themepath : | a colon-separated list of directories to search or NULL to use the default path |
callback : | a function to call for each theme |
callback_data : | data to pass to the callback |
void b_themes_foreach_theme (const gchar *themepath, GHFunc callback, gpointer callback_data);
b_themes_foreach_theme is deprecated and should not be used in newly-written code.
Shouldn't be used in new code, use b_themes_foreach() instead.
themepath : | |
callback : | |
callback_data : |
BTheme* b_themes_lookup_theme (const gchar *name, const gchar *themepath, GError **error);
b_themes_lookup_theme is deprecated and should not be used in newly-written code.
Shouldn't be used in new code, use b_themes_query() instead.
name : | |
themepath : | |
error : | |
Returns : |
gboolean b_theme_frame_diff_boundary (BTheme *theme, const guchar *prev_data, const guchar *frame_data, BRectangle *bbox);
Computes the bounding box of the difference image between two frames.
theme : | a BTheme |
prev_data : | data of the previous frame |
frame_data : | data of the current frame |
bbox : | returns bounding box |
Returns : | TRUE if the bounding box is not empty. |
<< Blinkenlights Simulation | BViewAA >> |