1b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson/* 2b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * Copyright (C) 2011 The Android Open Source Project 3b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * 4b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * Licensed under the Apache License, Version 2.0 (the "License"); 5b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * you may not use this file except in compliance with the License. 6b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * You may obtain a copy of the License at 7b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * 8b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * http://www.apache.org/licenses/LICENSE-2.0 9b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * 10b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * Unless required by applicable law or agreed to in writing, software 11b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * distributed under the License is distributed on an "AS IS" BASIS, 12b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * See the License for the specific language governing permissions and 14b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson * limitations under the License. 15b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson */ 16b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 17b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson#ifndef FRAMEWORKS_EX_VARIABLESPEED_JNI_NO_SYNCHRONIZATION_H_ 18b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson#define FRAMEWORKS_EX_VARIABLESPEED_JNI_NO_SYNCHRONIZATION_H_ 19b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 20b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson#include <macros.h> 21b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 22b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson// We don't need any synchronization at the moment. 23b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson// The sola_time_scaler (which is the code that uses this mutex class) is 24b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson// currently being used in a single-threaded manner, driven from the main 25b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson// PlayFromThisSource method in variablespeed. 26b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson// As such no locking is actually required, and so this class contains a 27b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson// fake mutex that does nothing. 28b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 29b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudsonclass Mutex { 30b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson public: 31b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson Mutex() {} 32b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson virtual ~Mutex() {} 33b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson void Lock() {} 34b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson void Unlock() {} 35b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 36b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson private: 37b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson DISALLOW_COPY_AND_ASSIGN(Mutex); 38b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson}; 39b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 40b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudsonclass MutexLock { 41b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson public: 42b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson explicit MutexLock(Mutex* mu) : mu_(mu) {} 43b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson virtual ~MutexLock() {} 44b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 45b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson private: 46b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson Mutex* const mu_; 47b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson DISALLOW_COPY_AND_ASSIGN(MutexLock); 48b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson}; 49b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson 50b83ad73794088498d6d38cd3b4fc9311f505d051Hugo Hudson#endif // FRAMEWORKS_EX_VARIABLESPEED_JNI_NO_SYNCHRONIZATION_H_ 51