diff options
Diffstat (limited to 'src/devices/video/pwm.h')
-rw-r--r-- | src/devices/video/pwm.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/devices/video/pwm.h b/src/devices/video/pwm.h index 8f2e28ad285..ee1bf8239e8 100644 --- a/src/devices/video/pwm.h +++ b/src/devices/video/pwm.h @@ -29,6 +29,7 @@ public: // output callbacks when not using the default output tags auto output_x() { return m_output_x_cb.bind(); } // x = offset >> 6, y = offset & 0x3f auto output_a() { return m_output_a_cb.bind(); } + auto output_multi() { return m_output_multi_cb.bind(); } // b = offset >> 6, y = offset & 0x3f auto output_digit() { return m_output_digit_cb.bind(); } void reset_bri_levels() { std::fill(std::begin(m_levels), std::end(m_levels), 1.0); } @@ -55,8 +56,8 @@ public: void clear_row(offs_t offset, u64 data = 0) { sync(); m_rowdata[offset] = 0; m_rowsel &= ~(u64(1) << offset); } // directly handle element current brightness - double read_element_bri(u8 y, u8 x) { return m_bri[y][x]; } - void write_element_bri(u8 y, u8 x, double b) { m_bri[y][x] = b; } + double read_element_bri(u8 y, u8 x) { sync(); return m_bri[y][x]; } + void write_element_bri(u8 y, u8 x, double b) { sync(); m_bri[y][x] = b; } bool element_on(u8 y, u8 x) { return (read_element_bri(y, x) > m_levels[m_level_min]); } bool row_on(u8 y) { return element_on(y, m_width); } @@ -68,10 +69,12 @@ protected: private: output_finder<0x40, 0x40> m_out_x; output_finder<0x40> m_out_a; + output_finder<0x40, 0x40> m_out_multi; output_finder<0x40> m_out_digit; devcb_write8 m_output_x_cb; devcb_write8 m_output_a_cb; + devcb_write64 m_output_multi_cb; devcb_write64 m_output_digit_cb; bool m_external_output; |