| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 // Lazily creates a HRTFDatabaseLoader (if not already created) for the give
n sample-rate | 44 // Lazily creates a HRTFDatabaseLoader (if not already created) for the give
n sample-rate |
| 45 // and starts loading asynchronously (when created the first time). | 45 // and starts loading asynchronously (when created the first time). |
| 46 // Returns the HRTFDatabaseLoader. | 46 // Returns the HRTFDatabaseLoader. |
| 47 // Must be called from the main thread. | 47 // Must be called from the main thread. |
| 48 static HRTFDatabaseLoader* createAndLoadAsynchronouslyIfNecessary(float samp
leRate); | 48 static HRTFDatabaseLoader* createAndLoadAsynchronouslyIfNecessary(float samp
leRate); |
| 49 | 49 |
| 50 // Both constructor and destructor must be called from the main thread. | 50 // Both constructor and destructor must be called from the main thread. |
| 51 ~HRTFDatabaseLoader(); | 51 ~HRTFDatabaseLoader(); |
| 52 | 52 |
| 53 // Returns true once the default database has been completely loaded. | 53 // Returns true once the default database has been completely loaded. |
| 54 bool isLoaded() const; | 54 bool isLoaded(); |
| 55 | 55 |
| 56 // waitForLoaderThreadCompletion() may be called more than once and is threa
d-safe. | 56 // waitForLoaderThreadCompletion() may be called more than once and is threa
d-safe. |
| 57 void waitForLoaderThreadCompletion(); | 57 void waitForLoaderThreadCompletion(); |
| 58 | 58 |
| 59 HRTFDatabase* database() { return m_hrtfDatabase.get(); } | 59 HRTFDatabase* database() { return m_hrtfDatabase.get(); } |
| 60 | 60 |
| 61 float databaseSampleRate() const { return m_databaseSampleRate; } | 61 float databaseSampleRate() const { return m_databaseSampleRate; } |
| 62 | 62 |
| 63 // Called in asynchronous loading thread. | 63 // Called in asynchronous loading thread. |
| 64 void load(); | 64 void load(); |
| 65 | 65 |
| 66 void trace(Visitor*) { } | 66 void trace(Visitor*) { } |
| 67 | 67 |
| 68 private: | 68 private: |
| 69 // Both constructor and destructor must be called from the main thread. | 69 // Both constructor and destructor must be called from the main thread. |
| 70 explicit HRTFDatabaseLoader(float sampleRate); | 70 explicit HRTFDatabaseLoader(float sampleRate); |
| 71 | 71 |
| 72 // If it hasn't already been loaded, creates a new thread and initiates asyn
chronous loading of the default database. | 72 // If it hasn't already been loaded, creates a new thread and initiates asyn
chronous loading of the default database. |
| 73 // This must be called from the main thread. | 73 // This must be called from the main thread. |
| 74 void loadAsynchronously(); | 74 void loadAsynchronously(); |
| 75 | 75 |
| 76 // Holding a m_lock is required when accessing m_hrtfDatabase since we acces
s it from multiple threads. |
| 77 Mutex m_lock; |
| 76 OwnPtr<HRTFDatabase> m_hrtfDatabase; | 78 OwnPtr<HRTFDatabase> m_hrtfDatabase; |
| 77 | 79 |
| 78 // Holding a m_threadLock is required when accessing m_databaseLoaderThread
since we access it from multiple threads. | |
| 79 Mutex m_threadLock; | |
| 80 OwnPtr<WebThread> m_databaseLoaderThread; | 80 OwnPtr<WebThread> m_databaseLoaderThread; |
| 81 | 81 |
| 82 float m_databaseSampleRate; | 82 float m_databaseSampleRate; |
| 83 }; | 83 }; |
| 84 | 84 |
| 85 } // namespace blink | 85 } // namespace blink |
| 86 | 86 |
| 87 #endif // HRTFDatabaseLoader_h | 87 #endif // HRTFDatabaseLoader_h |
| OLD | NEW |