[webaudio] Keep track of whether the HRTF database has already been loaded.
parent
f5425c8ddb
commit
905c84ec47
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2010 Google Inc. All rights reserved.
|
||||
* Copyright (C) 2020 M. Straver. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
|
@ -72,6 +73,7 @@ HRTFDatabaseLoader::HRTFDatabaseLoader(float sampleRate)
|
|||
, m_threadLock("HRTFDatabaseLoader")
|
||||
, m_databaseLoaderThread(nullptr)
|
||||
, m_databaseSampleRate(sampleRate)
|
||||
, m_databaseLoaded(false)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
}
|
||||
|
@ -164,6 +166,7 @@ void HRTFDatabaseLoader::load()
|
|||
MOZ_ASSERT(!m_hrtfDatabase.get(), "Called twice");
|
||||
// Load the default HRTF database.
|
||||
m_hrtfDatabase = HRTFDatabase::create(m_databaseSampleRate);
|
||||
m_databaseLoaded = true;
|
||||
// Notifies the main thread of completion. See loadAsynchronously().
|
||||
Release();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2010 Google Inc. All rights reserved.
|
||||
* Copyright (C) 2020 M. Straver. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
|
@ -85,7 +86,12 @@ public:
|
|||
// on any thread except m_databaseLoaderThread.
|
||||
void waitForLoaderThreadCompletion();
|
||||
|
||||
HRTFDatabase* database() { return m_hrtfDatabase.get(); }
|
||||
HRTFDatabase* database() {
|
||||
if (!m_databaseLoaded) {
|
||||
return nullptr;
|
||||
}
|
||||
return m_hrtfDatabase.get();
|
||||
}
|
||||
|
||||
float databaseSampleRate() const { return m_databaseSampleRate; }
|
||||
|
||||
|
@ -141,6 +147,7 @@ private:
|
|||
PRThread* m_databaseLoaderThread;
|
||||
|
||||
float m_databaseSampleRate;
|
||||
mozilla::Atomic<bool> m_databaseLoaded;
|
||||
};
|
||||
|
||||
} // namespace WebCore
|
||||
|
|
Loading…
Reference in New Issue