Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(364)

Unified Diff: webkit/media/android/webaudio_assets_impl_android.cc

Issue 13084005: Add WebAudio impulse responses Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add WebAudio impulse responses Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/media/android/webaudio_assets_impl_android.h ('k') | webkit/media/webkit_media.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/android/webaudio_assets_impl_android.cc
diff --git a/webkit/media/android/webaudio_assets_impl_android.cc b/webkit/media/android/webaudio_assets_impl_android.cc
new file mode 100755
index 0000000000000000000000000000000000000000..4224431f9e434215cfb1fcd9f30ce1372fce5a54
--- /dev/null
+++ b/webkit/media/android/webaudio_assets_impl_android.cc
@@ -0,0 +1,396 @@
+// Copyright (c) 2013, The Linux Foundation. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of The Linux Foundation nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <android/asset_manager.h>
+#include <android/asset_manager_jni.h>
+
+#include <string.h>
+
+#include "base/android/jni_android.h"
+#include "base/android/jni_string.h"
+#include "base/basictypes.h"
+#include "base/logging.h"
+#include "webkit/media/android/webaudio_assets_impl_android.h"
+
+using base::android::AttachCurrentThread;
+using base::android::GetApplicationContext;
+using base::android::CheckException;
+using base::android::ClearException;
+using base::android::GetClass;
+using base::android::JavaRef;
+using base::android::MethodID;
+using base::android::ScopedJavaLocalRef;
+
+static const char* gWebAudioResourceFiles[] =
+{
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T000_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T015_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T030_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T045_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T060_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T075_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T090_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T105_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T120_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T135_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T150_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T165_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T180_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T195_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T210_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T225_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T240_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T255_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T270_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T285_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T300_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T315_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T330_P345.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P000.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P015.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P030.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P045.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P060.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P075.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P090.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P315.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P330.wav",
+ "webkit/webaudio/IRC_Composite_C_R0195_T345_P345.wav"
+};
+
+
+namespace webkit_media {
+
+static const size_t kExpectedSpatializationNameLength = 31;
+
+// The resource index values go through the elevations first, then azimuths.
+static const int kAngleSpacing = 15;
+
+static const int kNumberOfElevations = 10;
+static const int kNumberOfAudioResources = 240;
+static const int kIDRAudioSpatializationT000P000 = 0;
+
+const char* webAudioAssetFileName(const char* name)
+{
+ LOG(INFO) << "webAudioAssetFileName : name: " << name;
+
+ if (strlen(name) != kExpectedSpatializationNameLength) {
+ LOG(ERROR) << "webAudioAssetFileName : invalid name length";
+ return 0;
+ }
+
+ // Extract the azimuth and elevation from the resource name.
+ int azimuth = 0;
+ int elevation = 0;
+ int values_parsed = sscanf(name, "IRC_Composite_C_R0195_T%3d_P%3d", &azimuth, &elevation);
+ if (values_parsed != 2) {
+ LOG(ERROR) << "webAudioAssetFileName : parse error - values_parsed" << values_parsed;
+ return 0;
+ }
+
+ // 0 <= elevation <= 90 (or 315 <= elevation <= 345)
+ // in increments of 15 degrees.
+ int elevation_index = elevation <= 90 ? elevation / kAngleSpacing : 7 + (elevation - 315) / kAngleSpacing;
+ bool is_elevation_index_good = 0 <= elevation_index && elevation_index < 10;
+
+ // 0 <= azimuth < 360 in increments of 15 degrees.
+ int azimuth_index = azimuth / kAngleSpacing;
+ bool is_azimuth_index_good = (0 <= azimuth_index) && (azimuth_index < 24);
+
+ int resource_index = kNumberOfElevations * azimuth_index + elevation_index;
+ bool is_resource_index_good = (0 <= resource_index) && (resource_index < kNumberOfAudioResources);
+
+ if (is_azimuth_index_good && is_elevation_index_good && is_resource_index_good)
+ return gWebAudioResourceFiles[kIDRAudioSpatializationT000P000 + resource_index];
+
+ LOG(ERROR) << "webAudioAssetFileName : parse error - azimuth_index: "<< azimuth_index
+ << ", elevation_index: "<< elevation_index
+ << ", resource_index: "<< resource_index;
+
+ return 0;
+}
+
+
+bool webAudioAsset(const char* data,int* fd_asset,long* start_offset,long* size )
+{
+
+ DCHECK(data);
+
+ JNIEnv* env = AttachCurrentThread();
+ CHECK(env);
+
+ // Get the context class.
+ ScopedJavaLocalRef<jclass> context_class(
+ GetClass(env, "android/content/Context"));
+
+ jobject j_context = GetApplicationContext();
+ DCHECK(j_context);
+
+ // Get the getAssets method
+ jmethodID get_assets = MethodID::Get<MethodID::TYPE_INSTANCE>(
+ env, context_class.obj(),
+ "getAssets",
+ "()Landroid/content/res/AssetManager;");
+
+ ScopedJavaLocalRef<jobject> assetMgr(env, env->CallObjectMethod(j_context,get_assets));
+ DCHECK(!assetMgr.is_null());
+
+ AAssetManager* mgr = AAssetManager_fromJava(env, assetMgr.obj());
+
+ ClearException(env);
+
+ if (mgr != NULL) {
+ AAsset* asset = AAssetManager_open(mgr, data, AASSET_MODE_UNKNOWN);
+ if (asset == NULL) {
+ LOG(ERROR) << "webAudioAsset: Asset not found: " << data;
+ return false;
+ }
+
+ off_t start, length;
+ int fd = AAsset_openFileDescriptor(asset, &start, &length);
+ DCHECK(0 <= fd);
+ AAsset_close(asset);
+
+ *fd_asset = fd;
+ *start_offset = start;
+ *size = length;
+
+ return true;
+ }
+
+ LOG(ERROR) << "webAudioAsset: No Java object";
+ return false;
+}
+
+} // namespace webkit_media
« no previous file with comments | « webkit/media/android/webaudio_assets_impl_android.h ('k') | webkit/media/webkit_media.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698