mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 11:46:25 +01:00
yet another gettimeofday() removal (glibmm idle)
This commit is contained in:
parent
827388ffdd
commit
030a8f189d
2 changed files with 8 additions and 11 deletions
|
|
@ -37,7 +37,7 @@ class LIBGTKMM2EXT_API IdleAdjustment : public sigc::trackable
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void underlying_adjustment_value_changed();
|
void underlying_adjustment_value_changed();
|
||||||
struct timeval last_vc;
|
int64_t last_vc;
|
||||||
gint timeout_handler();
|
gint timeout_handler();
|
||||||
bool timeout_queued;
|
bool timeout_queued;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ IdleAdjustment::IdleAdjustment (Gtk::Adjustment& adj)
|
||||||
{
|
{
|
||||||
adj.signal_value_changed().connect (mem_fun (*this, &IdleAdjustment::underlying_adjustment_value_changed));
|
adj.signal_value_changed().connect (mem_fun (*this, &IdleAdjustment::underlying_adjustment_value_changed));
|
||||||
timeout_queued = 0;
|
timeout_queued = 0;
|
||||||
gettimeofday (&last_vc, 0);
|
last_vc = g_get_monotonic_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
IdleAdjustment::~IdleAdjustment ()
|
IdleAdjustment::~IdleAdjustment ()
|
||||||
|
|
@ -43,7 +43,7 @@ IdleAdjustment::~IdleAdjustment ()
|
||||||
void
|
void
|
||||||
IdleAdjustment::underlying_adjustment_value_changed ()
|
IdleAdjustment::underlying_adjustment_value_changed ()
|
||||||
{
|
{
|
||||||
gettimeofday (&last_vc, 0);
|
last_vc = g_get_monotonic_time();
|
||||||
|
|
||||||
if (timeout_queued) {
|
if (timeout_queued) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -56,16 +56,13 @@ IdleAdjustment::underlying_adjustment_value_changed ()
|
||||||
gint
|
gint
|
||||||
IdleAdjustment::timeout_handler ()
|
IdleAdjustment::timeout_handler ()
|
||||||
{
|
{
|
||||||
struct timeval now;
|
int64_t now, tdiff;
|
||||||
struct timeval tdiff;
|
now = g_get_monotonic_time();
|
||||||
|
tdiff = now - last_vc;
|
||||||
|
|
||||||
gettimeofday (&now, 0);
|
std::cerr << "timer elapsed, diff = " << tdiff << " usec" << std::endl;
|
||||||
|
|
||||||
timersub (&now, &last_vc, &tdiff);
|
if (tdiff > 250000) {
|
||||||
|
|
||||||
std::cerr << "timer elapsed, diff = " << tdiff.tv_sec << " + " << tdiff.tv_usec << std::endl;
|
|
||||||
|
|
||||||
if (tdiff.tv_sec > 0 || tdiff.tv_usec > 250000) {
|
|
||||||
std::cerr << "send signal\n";
|
std::cerr << "send signal\n";
|
||||||
value_changed ();
|
value_changed ();
|
||||||
timeout_queued = false;
|
timeout_queued = false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue