emview_source.h from EmStar at Krugle
Show emview_source.h syntax highlighted
/*
*
* Copyright (c) 2003 The Regents of the University of California. All
* rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Neither the name of the University nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*
* emview_source.h
*
* Author: girod
*
* $Id=$
*/
#ifndef __EMVIEW_SOURCE_H__
#define __EMVIEW_SOURCE_H__
/*
* internal source types
*
* a simple source maintains per-node values in the values list
* a node structure will keep pointers to those values in its
* current display structure.
*
*/
typedef struct emview_source {
char *name;
GList *device_deps;
emview_source_type_t type;
int colormap[EMVIEW_MAX_COLORS-1][EMVIEW_MAX_OVERLOAD];
QUEUE_ELEMENT_DECL(ptrs, struct emview_source);
} source_t;
typedef struct emview_source_data {
/* source and node */
source_t *parent_source;
node_id_t id;
/* value */
int int_value;
char *string_value;
/* color attribute */
emview_color_t bg_color;
emview_color_t fg_color;
/* timers */
g_event_t *highlight_timeout; /* highlight timer */
g_event_t *data_value_timeout; /* erases data value */
/* flags */
int not_present:1;
QUEUE_ELEMENT_DECL(ptrs, struct emview_source_data);
} source_data_t;
typedef struct emview_simple_source {
source_t super;
simple_source_attr_t attr;
QUEUE_DECL(values, source_data_t);
GHashTable *fast_data_lookup; /* mapping from node ID to data value */
} simple_source_t;
typedef struct link_data {
char *annotation;
/* source */
node_id_t src_node;
GQuark src_component;
/* dest */
node_id_t dst_node;
GQuark dst_component;
/* attributes */
link_attr_t attr;
QUEUE_ELEMENT_DECL(ptrs, struct link_data);
} link_data_t;
typedef struct emview_link_source {
source_t super;
GtkWidget *menu;
QUEUE_DECL(links, link_data_t); /* the links */
} link_source_t;
typedef struct emview_source_list {
QUEUE_DECL(sources, source_t);
GHashTable *fast_source_lookup;
/* non-link layout types */
link_source_t *grid;
link_source_t *reported;
/* options */
int hide_inactive;
status_context_t *stat;
} emview_source_list_t;
#endif
See more files for this project here