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