bool InvalidateLockTime(const char *lock_id) { time_t epoch = 0; CF_DB *dbp = OpenLock(); if (dbp == NULL) { return false; } LockData lock_data; if(!ReadDB(dbp, lock_id, &lock_data, sizeof(lock_data))) { CloseLock(dbp); return true; /* nothing to invalidate */ } lock_data.time = epoch; bool result = WriteLockData(dbp, lock_id, &lock_data); CloseLock(dbp); return result; }
bool AcquireLockByID(const char *lock_id, int acquire_after_minutes) { CF_DB *dbp = OpenLock(); if(dbp == NULL) { return false; } bool result; LockData lock_data; if (ReadDB(dbp, lock_id, &lock_data, sizeof(lock_data))) { if(lock_data.time + (acquire_after_minutes * SECONDS_PER_MINUTE) < time(NULL)) { result = WriteLockDataCurrent(dbp, lock_id); } else { result = false; } } else { result = WriteLockDataCurrent(dbp, lock_id); } CloseLock(dbp); return result; }
static pid_t FindLockPid(char *name) { CF_DB *dbp; LockData entry; if ((dbp = OpenLock()) == NULL) { return -1; } if (ReadDB(dbp, name, &entry, sizeof(entry))) { CloseLock(dbp); return entry.pid; } else { CloseLock(dbp); return -1; } }
time_t FindLockTime(char *name) { CF_DB *dbp; LockData entry; CfDebug("FindLockTime(%s)\n", name); if ((dbp = OpenLock()) == NULL) { return -1; } if (ReadDB(dbp, name, &entry, sizeof(entry))) { CloseLock(dbp); return entry.time; } else { CloseLock(dbp); return -1; } }
static int RemoveLock(char *name) { CF_DB *dbp; if ((dbp = OpenLock()) == NULL) { return -1; } ThreadLock(cft_lock); DeleteDB(dbp, name); ThreadUnlock(cft_lock); CloseLock(dbp); return 0; }
//----------------------------------------------------------------------------- //! Helper to obtain and verify lock code //----------------------------------------------------------------------------- bool tSiriusController::Authorize( const QString customMsg ) { bool shouldUnlock = true; if( m_UnlockDialogShowing == false ) { if (m_LockOpened) { shouldUnlock = true; } else { bool accepted = false; QString msg = tr("Enter lock code"); if (customMsg != "") { msg = customMsg; } m_UnlockDialogShowing = true; int verifyCode = tInputDialog::GetInteger( 0, msg, tr("4-digit number"), m_InitialLockCode, m_MinimumLockCode, m_MaximumLockCode, &accepted ); if (accepted == false) { shouldUnlock = false; // User cancelled } else if (verifyCode != tAudioSettings::Instance()->LockCode()) { tMessageBox::Error( 0, tr("Lock code"), tr("Invalid lock code"), tMessageBox::CLOSE ); shouldUnlock = false; } else { // Authorization effective for a while m_LockOpened = true; QTimer::singleShot( m_cLockOpenMillis , this, SLOT(CloseLock())); } } } m_UnlockDialogShowing = false; return shouldUnlock; }