Rename led8seg to led8seg{,_gts1} and CTYPE_LED8SEG{,_GTS1} as per hap's request. (nw)

This commit is contained in:
jbu 2014-12-09 19:44:01 +01:00
parent 0399454960
commit 37195d9a85
3 changed files with 1746 additions and 1746 deletions

File diff suppressed because it is too large Load Diff

View File

@ -20,14 +20,14 @@
enum item_layer enum item_layer
{ {
ITEM_LAYER_FIRST = 0, ITEM_LAYER_FIRST = 0,
ITEM_LAYER_BACKDROP = ITEM_LAYER_FIRST, ITEM_LAYER_BACKDROP = ITEM_LAYER_FIRST,
ITEM_LAYER_SCREEN, ITEM_LAYER_SCREEN,
ITEM_LAYER_OVERLAY, ITEM_LAYER_OVERLAY,
ITEM_LAYER_BEZEL, ITEM_LAYER_BEZEL,
ITEM_LAYER_CPANEL, ITEM_LAYER_CPANEL,
ITEM_LAYER_MARQUEE, ITEM_LAYER_MARQUEE,
ITEM_LAYER_MAX ITEM_LAYER_MAX
}; };
DECLARE_ENUM_OPERATORS(item_layer); DECLARE_ENUM_OPERATORS(item_layer);
@ -43,140 +43,140 @@ DECLARE_ENUM_OPERATORS(item_layer);
// a layout_element is a single named element, which may have multiple components // a layout_element is a single named element, which may have multiple components
class layout_element class layout_element
{ {
friend class simple_list<layout_element>; friend class simple_list<layout_element>;
public: public:
// construction/destruction // construction/destruction
layout_element(running_machine &machine, xml_data_node &elemnode, const char *dirname); layout_element(running_machine &machine, xml_data_node &elemnode, const char *dirname);
virtual ~layout_element(); virtual ~layout_element();
// getters // getters
layout_element *next() const { return m_next; } layout_element *next() const { return m_next; }
const char *name() const { return m_name; } const char *name() const { return m_name; }
running_machine &machine() const { return m_machine; } running_machine &machine() const { return m_machine; }
int default_state() const { return m_defstate; } int default_state() const { return m_defstate; }
int maxstate() const { return m_maxstate; } int maxstate() const { return m_maxstate; }
render_texture *state_texture(int state); render_texture *state_texture(int state);
private: private:
// a component represents an image, rectangle, or disk in an element // a component represents an image, rectangle, or disk in an element
class component class component
{ {
friend class layout_element; friend class layout_element;
friend class simple_list<component>; friend class simple_list<component>;
public: public:
// construction/destruction // construction/destruction
component(running_machine &machine, xml_data_node &compnode, const char *dirname); component(running_machine &machine, xml_data_node &compnode, const char *dirname);
~component(); ~component();
// getters // getters
component *next() const { return m_next; } component *next() const { return m_next; }
const render_bounds &bounds() const { return m_bounds; } const render_bounds &bounds() const { return m_bounds; }
// operations // operations
void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state); void draw(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state);
private: private:
// component types // component types
enum component_type enum component_type
{ {
CTYPE_INVALID = 0, CTYPE_INVALID = 0,
CTYPE_IMAGE, CTYPE_IMAGE,
CTYPE_RECT, CTYPE_RECT,
CTYPE_DISK, CTYPE_DISK,
CTYPE_TEXT, CTYPE_TEXT,
CTYPE_LED7SEG, CTYPE_LED7SEG,
CTYPE_LED8SEG, CTYPE_LED8SEG_GTS1,
CTYPE_LED14SEG, CTYPE_LED14SEG,
CTYPE_LED16SEG, CTYPE_LED16SEG,
CTYPE_LED14SEGSC, CTYPE_LED14SEGSC,
CTYPE_LED16SEGSC, CTYPE_LED16SEGSC,
CTYPE_DOTMATRIX, CTYPE_DOTMATRIX,
CTYPE_DOTMATRIX5DOT, CTYPE_DOTMATRIX5DOT,
CTYPE_DOTMATRIXDOT, CTYPE_DOTMATRIXDOT,
CTYPE_SIMPLECOUNTER, CTYPE_SIMPLECOUNTER,
CTYPE_REEL, CTYPE_REEL,
CTYPE_MAX CTYPE_MAX
}; };
// helpers // helpers
void draw_rect(bitmap_argb32 &dest, const rectangle &bounds); void draw_rect(bitmap_argb32 &dest, const rectangle &bounds);
void draw_disk(bitmap_argb32 &dest, const rectangle &bounds); void draw_disk(bitmap_argb32 &dest, const rectangle &bounds);
void draw_text(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds); void draw_text(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds);
void draw_simplecounter(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state); void draw_simplecounter(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state);
void draw_reel(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state); void draw_reel(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state);
void draw_beltreel(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state); void draw_beltreel(running_machine &machine, bitmap_argb32 &dest, const rectangle &bounds, int state);
void load_bitmap(); void load_bitmap();
void load_reel_bitmap(int number); void load_reel_bitmap(int number);
void draw_led7seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern); void draw_led7seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_led8seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern); void draw_led8seg_gts1(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_led14seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern); void draw_led14seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_led14segsc(bitmap_argb32 &dest, const rectangle &bounds, int pattern); void draw_led14segsc(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_led16seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern); void draw_led16seg(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_led16segsc(bitmap_argb32 &dest, const rectangle &bounds, int pattern); void draw_led16segsc(bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_dotmatrix(int dots,bitmap_argb32 &dest, const rectangle &bounds, int pattern); void draw_dotmatrix(int dots,bitmap_argb32 &dest, const rectangle &bounds, int pattern);
void draw_segment_horizontal_caps(bitmap_argb32 &dest, int minx, int maxx, int midy, int width, int caps, rgb_t color); void draw_segment_horizontal_caps(bitmap_argb32 &dest, int minx, int maxx, int midy, int width, int caps, rgb_t color);
void draw_segment_horizontal(bitmap_argb32 &dest, int minx, int maxx, int midy, int width, rgb_t color); void draw_segment_horizontal(bitmap_argb32 &dest, int minx, int maxx, int midy, int width, rgb_t color);
void draw_segment_vertical_caps(bitmap_argb32 &dest, int miny, int maxy, int midx, int width, int caps, rgb_t color); void draw_segment_vertical_caps(bitmap_argb32 &dest, int miny, int maxy, int midx, int width, int caps, rgb_t color);
void draw_segment_vertical(bitmap_argb32 &dest, int miny, int maxy, int midx, int width, rgb_t color); void draw_segment_vertical(bitmap_argb32 &dest, int miny, int maxy, int midx, int width, rgb_t color);
void draw_segment_diagonal_1(bitmap_argb32 &dest, int minx, int maxx, int miny, int maxy, int width, rgb_t color); void draw_segment_diagonal_1(bitmap_argb32 &dest, int minx, int maxx, int miny, int maxy, int width, rgb_t color);
void draw_segment_diagonal_2(bitmap_argb32 &dest, int minx, int maxx, int miny, int maxy, int width, rgb_t color); void draw_segment_diagonal_2(bitmap_argb32 &dest, int minx, int maxx, int miny, int maxy, int width, rgb_t color);
void draw_segment_decimal(bitmap_argb32 &dest, int midx, int midy, int width, rgb_t color); void draw_segment_decimal(bitmap_argb32 &dest, int midx, int midy, int width, rgb_t color);
void draw_segment_comma(bitmap_argb32 &dest, int minx, int maxx, int miny, int maxy, int width, rgb_t color); void draw_segment_comma(bitmap_argb32 &dest, int minx, int maxx, int miny, int maxy, int width, rgb_t color);
void apply_skew(bitmap_argb32 &dest, int skewwidth); void apply_skew(bitmap_argb32 &dest, int skewwidth);
#define MAX_BITMAPS 32 #define MAX_BITMAPS 32
// internal state // internal state
component * m_next; // link to next component component * m_next; // link to next component
component_type m_type; // type of component component_type m_type; // type of component
int m_state; // state where this component is visible (-1 means all states) int m_state; // state where this component is visible (-1 means all states)
render_bounds m_bounds; // bounds of the element render_bounds m_bounds; // bounds of the element
render_color m_color; // color of the element render_color m_color; // color of the element
astring m_string; // string for text components astring m_string; // string for text components
int m_digits; // number of digits for simple counters int m_digits; // number of digits for simple counters
int m_textalign; // text alignment to box int m_textalign; // text alignment to box
bitmap_argb32 m_bitmap[MAX_BITMAPS]; // source bitmap for images bitmap_argb32 m_bitmap[MAX_BITMAPS]; // source bitmap for images
astring m_dirname; // directory name of image file (for lazy loading) astring m_dirname; // directory name of image file (for lazy loading)
auto_pointer<emu_file> m_file[MAX_BITMAPS]; // file object for reading image/alpha files auto_pointer<emu_file> m_file[MAX_BITMAPS]; // file object for reading image/alpha files
astring m_imagefile[MAX_BITMAPS]; // name of the image file (for lazy loading) astring m_imagefile[MAX_BITMAPS]; // name of the image file (for lazy loading)
astring m_alphafile[MAX_BITMAPS]; // name of the alpha file (for lazy loading) astring m_alphafile[MAX_BITMAPS]; // name of the alpha file (for lazy loading)
bool m_hasalpha[MAX_BITMAPS]; // is there any alpha component present? bool m_hasalpha[MAX_BITMAPS]; // is there any alpha component present?
// stuff for fruit machine reels // stuff for fruit machine reels
// basically made up of multiple text strings / gfx // basically made up of multiple text strings / gfx
int m_numstops; int m_numstops;
astring m_stopnames[MAX_BITMAPS]; astring m_stopnames[MAX_BITMAPS];
int m_stateoffset; int m_stateoffset;
int m_reelreversed; int m_reelreversed;
int m_numsymbolsvisible; int m_numsymbolsvisible;
int m_beltreel; int m_beltreel;
}; };
// a texture encapsulates a texture for a given element in a given state // a texture encapsulates a texture for a given element in a given state
class texture class texture
{ {
public: public:
texture(); texture();
~texture(); ~texture();
layout_element * m_element; // pointer back to the element layout_element * m_element; // pointer back to the element
render_texture * m_texture; // texture for this state render_texture * m_texture; // texture for this state
int m_state; // associated state number int m_state; // associated state number
}; };
// internal helpers // internal helpers
static void element_scale(bitmap_argb32 &dest, bitmap_argb32 &source, const rectangle &sbounds, void *param); static void element_scale(bitmap_argb32 &dest, bitmap_argb32 &source, const rectangle &sbounds, void *param);
// internal state // internal state
layout_element * m_next; // link to next element layout_element * m_next; // link to next element
running_machine & m_machine; // reference to the owning machine running_machine & m_machine; // reference to the owning machine
astring m_name; // name of this element astring m_name; // name of this element
simple_list<component> m_complist; // list of components simple_list<component> m_complist; // list of components
int m_defstate; // default state of this element int m_defstate; // default state of this element
int m_maxstate; // maximum state value for all components int m_maxstate; // maximum state value for all components
dynamic_array<texture> m_elemtex; // array of element textures used for managing the scaled bitmaps dynamic_array<texture> m_elemtex; // array of element textures used for managing the scaled bitmaps
}; };
@ -185,83 +185,83 @@ private:
// a layout_view encapsulates a named list of items // a layout_view encapsulates a named list of items
class layout_view class layout_view
{ {
friend class simple_list<layout_view>; friend class simple_list<layout_view>;
public: public:
// an item is a single backdrop, screen, overlay, bezel, cpanel, or marquee item // an item is a single backdrop, screen, overlay, bezel, cpanel, or marquee item
class item class item
{ {
friend class layout_view; friend class layout_view;
friend class simple_list<item>; friend class simple_list<item>;
public: public:
// construction/destruction // construction/destruction
item(running_machine &machine, xml_data_node &itemnode, simple_list<layout_element> &elemlist); item(running_machine &machine, xml_data_node &itemnode, simple_list<layout_element> &elemlist);
virtual ~item(); virtual ~item();
// getters // getters
item *next() const { return m_next; } item *next() const { return m_next; }
layout_element *element() const { return m_element; } layout_element *element() const { return m_element; }
screen_device *screen() { return m_screen; } screen_device *screen() { return m_screen; }
const render_bounds &bounds() const { return m_bounds; } const render_bounds &bounds() const { return m_bounds; }
const render_color &color() const { return m_color; } const render_color &color() const { return m_color; }
int orientation() const { return m_orientation; } int orientation() const { return m_orientation; }
render_container *screen_container(running_machine &machine) const; render_container *screen_container(running_machine &machine) const;
bool has_input() const { return bool(m_input_tag); } bool has_input() const { return bool(m_input_tag); }
const char *input_tag_and_mask(ioport_value &mask) const { mask = m_input_mask; return m_input_tag; } const char *input_tag_and_mask(ioport_value &mask) const { mask = m_input_mask; return m_input_tag; }
// fetch state based on configured source // fetch state based on configured source
int state() const; int state() const;
private: private:
// internal state // internal state
item * m_next; // link to next item item * m_next; // link to next item
layout_element * m_element; // pointer to the associated element (non-screens only) layout_element * m_element; // pointer to the associated element (non-screens only)
astring m_output_name; // name of this item astring m_output_name; // name of this item
astring m_input_tag; // input tag of this item astring m_input_tag; // input tag of this item
ioport_value m_input_mask; // input mask of this item ioport_value m_input_mask; // input mask of this item
screen_device * m_screen; // pointer to screen screen_device * m_screen; // pointer to screen
int m_orientation; // orientation of this item int m_orientation; // orientation of this item
render_bounds m_bounds; // bounds of the item render_bounds m_bounds; // bounds of the item
render_bounds m_rawbounds; // raw (original) bounds of the item render_bounds m_rawbounds; // raw (original) bounds of the item
render_color m_color; // color of the item render_color m_color; // color of the item
}; };
// construction/destruction // construction/destruction
layout_view(running_machine &machine, xml_data_node &viewnode, simple_list<layout_element> &elemlist); layout_view(running_machine &machine, xml_data_node &viewnode, simple_list<layout_element> &elemlist);
virtual ~layout_view(); virtual ~layout_view();
// getters // getters
layout_view *next() const { return m_next; } layout_view *next() const { return m_next; }
item *first_item(item_layer layer) const; item *first_item(item_layer layer) const;
const char *name() const { return m_name; } const char *name() const { return m_name; }
const render_screen_list &screens() const { return m_screens; } const render_screen_list &screens() const { return m_screens; }
bool layer_enabled(item_layer layer) const { return m_layenabled[layer]; } bool layer_enabled(item_layer layer) const { return m_layenabled[layer]; }
// //
bool has_art() const { return (m_backdrop_list.count() + m_overlay_list.count() + m_bezel_list.count() + m_cpanel_list.count() + m_marquee_list.count() != 0); } bool has_art() const { return (m_backdrop_list.count() + m_overlay_list.count() + m_bezel_list.count() + m_cpanel_list.count() + m_marquee_list.count() != 0); }
float effective_aspect(render_layer_config config) const { return (config.zoom_to_screen() && m_screens.count() != 0) ? m_scraspect : m_aspect; } float effective_aspect(render_layer_config config) const { return (config.zoom_to_screen() && m_screens.count() != 0) ? m_scraspect : m_aspect; }
// operations // operations
void recompute(render_layer_config layerconfig); void recompute(render_layer_config layerconfig);
private: private:
// internal state // internal state
layout_view * m_next; // pointer to next layout in the list layout_view * m_next; // pointer to next layout in the list
astring m_name; // name of the layout astring m_name; // name of the layout
float m_aspect; // X/Y of the layout float m_aspect; // X/Y of the layout
float m_scraspect; // X/Y of the screen areas float m_scraspect; // X/Y of the screen areas
render_screen_list m_screens; // list of active screens render_screen_list m_screens; // list of active screens
render_bounds m_bounds; // computed bounds of the view render_bounds m_bounds; // computed bounds of the view
render_bounds m_scrbounds; // computed bounds of the screens within the view render_bounds m_scrbounds; // computed bounds of the screens within the view
render_bounds m_expbounds; // explicit bounds of the view render_bounds m_expbounds; // explicit bounds of the view
bool m_layenabled[ITEM_LAYER_MAX]; // is this layer enabled? bool m_layenabled[ITEM_LAYER_MAX]; // is this layer enabled?
simple_list<item> m_backdrop_list; // list of backdrop items simple_list<item> m_backdrop_list; // list of backdrop items
simple_list<item> m_screen_list; // list of screen items simple_list<item> m_screen_list; // list of screen items
simple_list<item> m_overlay_list; // list of overlay items simple_list<item> m_overlay_list; // list of overlay items
simple_list<item> m_bezel_list; // list of bezel items simple_list<item> m_bezel_list; // list of bezel items
simple_list<item> m_cpanel_list; // list of marquee items simple_list<item> m_cpanel_list; // list of marquee items
simple_list<item> m_marquee_list; // list of marquee items simple_list<item> m_marquee_list; // list of marquee items
}; };
@ -270,23 +270,23 @@ private:
// a layout_file consists of a list of elements and a list of views // a layout_file consists of a list of elements and a list of views
class layout_file class layout_file
{ {
friend class simple_list<layout_file>; friend class simple_list<layout_file>;
public: public:
// construction/destruction // construction/destruction
layout_file(running_machine &machine, xml_data_node &rootnode, const char *dirname); layout_file(running_machine &machine, xml_data_node &rootnode, const char *dirname);
virtual ~layout_file(); virtual ~layout_file();
// getters // getters
layout_file *next() const { return m_next; } layout_file *next() const { return m_next; }
layout_element *first_element() const { return m_elemlist.first(); } layout_element *first_element() const { return m_elemlist.first(); }
layout_view *first_view() const { return m_viewlist.first(); } layout_view *first_view() const { return m_viewlist.first(); }
private: private:
// internal state // internal state
layout_file * m_next; // pointer to the next file in the list layout_file * m_next; // pointer to the next file in the list
simple_list<layout_element> m_elemlist; // list of shared layout elements simple_list<layout_element> m_elemlist; // list of shared layout elements
simple_list<layout_view> m_viewlist; // list of views simple_list<layout_view> m_viewlist; // list of views
}; };

View File

@ -5,9 +5,9 @@
<mamelayout version="2"> <mamelayout version="2">
<element name="digit8_" defstate="0"> <element name="digit8_" defstate="0">
<led8seg> <led8seg_gts1>
<color red="0.0" green="0.75" blue="1.0" /> <color red="0.0" green="0.75" blue="1.0" />
</led8seg> </led8seg_gts1>
</element> </element>
<element name="digit7_" defstate="0"> <element name="digit7_" defstate="0">
<led7seg> <led7seg>