diff options
Diffstat (limited to 'src/devices/video/fixfreq.h')
-rw-r--r-- | src/devices/video/fixfreq.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/devices/video/fixfreq.h b/src/devices/video/fixfreq.h index d85056d874b..6e758ec4ffa 100644 --- a/src/devices/video/fixfreq.h +++ b/src/devices/video/fixfreq.h @@ -84,7 +84,8 @@ struct fixedfreq_monitor_state m_vsync_filter_timeconst(0), m_sig_vsync(0), m_sig_composite(0), - m_sig_field(0) + m_sig_field(0), + m_min_frame_period(time_type(0)) {} /*** @@ -124,17 +125,29 @@ struct fixedfreq_monitor_state //LOG("trigger %f with len %f\n", m_vsync_threshold, 1e6 / m_vsync_filter_timeconst); m_clock_period = 1.0 / m_desc.m_monitor_clock; - m_intf.vsync_start_cb(m_clock_period * m_desc.m_vbackporch * m_desc.m_hbackporch); + // Minimum frame period to be passed to video system ? + m_min_frame_period = 0.25 * m_clock_period * m_desc.m_vbackporch * m_desc.m_hbackporch; + m_intf.vsync_start_cb(m_min_frame_period); } void reset() { - m_last_sync_time = time_type(0); - m_line_time = time_type(0); - m_last_hsync_time = time_type(0); - m_last_vsync_time = time_type(0); + m_sync_signal = 0; + m_col = 0; + m_last_x = 0; + m_last_y = 0; + //m_last_sync_time = time_type(0); + //m_line_time = time_type(0); + //m_last_hsync_time = time_type(0); + //m_last_vsync_time = time_type(0); + //m_clock_period = time_type(0); m_vsync_filter = 0; + //m_vsync_threshold = 0; + //m_vsync_filter_timeconst = 0; + m_sig_vsync = 0; + m_sig_composite = 0; + m_sig_field = 0; } void update_sync_channel(const time_type &time, const double newval); @@ -166,7 +179,7 @@ struct fixedfreq_monitor_state int m_sig_vsync; int m_sig_composite; int m_sig_field; - + time_type m_min_frame_period; }; // ======================> fixedfreq_device |