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