12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/idle.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/bind.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CalculateIdleStateCallback(int idle_threshold, 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IdleCallback notify, 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int idle_time) { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (idle_time >= idle_threshold) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) notify.Run(IDLE_STATE_IDLE); 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) notify.Run(IDLE_STATE_ACTIVE); 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void CalculateIdleState(int idle_threshold, IdleCallback notify) { 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (CheckIdleStateIsLocked()) { 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) notify.Run(IDLE_STATE_LOCKED); 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CalculateIdleTime(base::Bind(&CalculateIdleStateCallback, 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) idle_threshold, 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) notify)); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 32