├── .gitignore ├── CMakeLists.txt ├── COPYING ├── LICENSE ├── LICENSES └── AGPL-3.0-only-OpenSSL.txt ├── README.md ├── android ├── .gitignore ├── app │ ├── .gitignore │ ├── CMakeLists.txt │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── cpp │ │ ├── audio-decoder.c │ │ ├── audio-decoder.h │ │ ├── audio-output.cpp │ │ ├── audio-output.h │ │ ├── chiaki-jni.c │ │ ├── chiaki-jni.h │ │ ├── circular-buf.hpp │ │ ├── circular-fifo.hpp │ │ ├── log.c │ │ ├── log.h │ │ ├── oboe │ │ │ ├── .github │ │ │ │ ├── ISSUE_TEMPLATE │ │ │ │ │ └── bug_report.md │ │ │ │ └── workflows │ │ │ │ │ ├── build-ci.yml │ │ │ │ │ └── update-docs.yml │ │ │ ├── .gitignore │ │ │ ├── AUTHORS │ │ │ ├── CMakeLists.txt │ │ │ ├── CONTRIBUTING.md │ │ │ ├── CONTRIBUTORS │ │ │ ├── Doxyfile │ │ │ ├── LICENSE │ │ │ ├── MODULE_LICENSE_APACHE2 │ │ │ ├── README.md │ │ │ ├── apps │ │ │ │ ├── OboeTester │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .google │ │ │ │ │ │ └── packaging.yaml │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── build.gradle │ │ │ │ │ │ ├── gradle │ │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ │ ├── gradlew │ │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── main │ │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ │ ├── AudioStreamGateway.cpp │ │ │ │ │ │ │ ├── AudioStreamGateway.h │ │ │ │ │ │ │ ├── FormatConverterBox.cpp │ │ │ │ │ │ │ ├── FormatConverterBox.h │ │ │ │ │ │ │ ├── FullDuplexAnalyzer.cpp │ │ │ │ │ │ │ ├── FullDuplexAnalyzer.h │ │ │ │ │ │ │ ├── FullDuplexEcho.cpp │ │ │ │ │ │ │ ├── FullDuplexEcho.h │ │ │ │ │ │ │ ├── FullDuplexStream.cpp │ │ │ │ │ │ │ ├── FullDuplexStream.h │ │ │ │ │ │ │ ├── InputStreamCallbackAnalyzer.cpp │ │ │ │ │ │ │ ├── InputStreamCallbackAnalyzer.h │ │ │ │ │ │ │ ├── InterpolatingDelayLine.cpp │ │ │ │ │ │ │ ├── InterpolatingDelayLine.h │ │ │ │ │ │ │ ├── MultiChannelRecording.h │ │ │ │ │ │ │ ├── NativeAudioContext.cpp │ │ │ │ │ │ │ ├── NativeAudioContext.h │ │ │ │ │ │ │ ├── OboeStreamCallbackProxy.cpp │ │ │ │ │ │ │ ├── OboeStreamCallbackProxy.h │ │ │ │ │ │ │ ├── OboeTesterStreamCallback.cpp │ │ │ │ │ │ │ ├── OboeTesterStreamCallback.h │ │ │ │ │ │ │ ├── PlayRecordingCallback.cpp │ │ │ │ │ │ │ ├── PlayRecordingCallback.h │ │ │ │ │ │ │ ├── SawPingGenerator.cpp │ │ │ │ │ │ │ ├── SawPingGenerator.h │ │ │ │ │ │ │ ├── TestErrorCallback.cpp │ │ │ │ │ │ │ ├── TestErrorCallback.h │ │ │ │ │ │ │ ├── analyzer │ │ │ │ │ │ │ │ ├── BaseSineAnalyzer.h │ │ │ │ │ │ │ │ ├── DataPathAnalyzer.h │ │ │ │ │ │ │ │ ├── GlitchAnalyzer.h │ │ │ │ │ │ │ │ ├── InfiniteRecording.h │ │ │ │ │ │ │ │ ├── LatencyAnalyzer.h │ │ │ │ │ │ │ │ ├── ManchesterEncoder.h │ │ │ │ │ │ │ │ ├── PeakDetector.h │ │ │ │ │ │ │ │ ├── PseudoRandom.h │ │ │ │ │ │ │ │ ├── RandomPulseGenerator.h │ │ │ │ │ │ │ │ └── RoundedManchesterEncoder.h │ │ │ │ │ │ │ ├── android_debug.h │ │ │ │ │ │ │ ├── flowunits │ │ │ │ │ │ │ │ ├── ExponentialShape.cpp │ │ │ │ │ │ │ │ ├── ExponentialShape.h │ │ │ │ │ │ │ │ ├── ImpulseOscillator.cpp │ │ │ │ │ │ │ │ ├── ImpulseOscillator.h │ │ │ │ │ │ │ │ ├── LinearShape.cpp │ │ │ │ │ │ │ │ ├── LinearShape.h │ │ │ │ │ │ │ │ ├── OscillatorBase.cpp │ │ │ │ │ │ │ │ ├── OscillatorBase.h │ │ │ │ │ │ │ │ ├── SawtoothOscillator.cpp │ │ │ │ │ │ │ │ ├── SawtoothOscillator.h │ │ │ │ │ │ │ │ ├── SineOscillator.cpp │ │ │ │ │ │ │ │ ├── SineOscillator.h │ │ │ │ │ │ │ │ ├── TriangleOscillator.cpp │ │ │ │ │ │ │ │ ├── TriangleOscillator.h │ │ │ │ │ │ │ │ ├── WhiteNoise.cpp │ │ │ │ │ │ │ │ └── WhiteNoise.h │ │ │ │ │ │ │ ├── jni-bridge.cpp │ │ │ │ │ │ │ ├── unused │ │ │ │ │ │ │ │ └── unused.h │ │ │ │ │ │ │ └── util │ │ │ │ │ │ │ │ ├── WaveFileWriter.cpp │ │ │ │ │ │ │ │ └── WaveFileWriter.h │ │ │ │ │ │ │ ├── ic_launcher-playstore.png │ │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ │ └── mobileer │ │ │ │ │ │ │ │ ├── audio_device │ │ │ │ │ │ │ │ ├── AudioDeviceAdapter.java │ │ │ │ │ │ │ │ ├── AudioDeviceInfoConverter.java │ │ │ │ │ │ │ │ ├── AudioDeviceListEntry.java │ │ │ │ │ │ │ │ ├── AudioDeviceSpinner.java │ │ │ │ │ │ │ │ └── CommunicationDeviceSpinner.java │ │ │ │ │ │ │ │ ├── miditools │ │ │ │ │ │ │ │ ├── EventScheduler.java │ │ │ │ │ │ │ │ ├── MidiConstants.java │ │ │ │ │ │ │ │ ├── MidiDeviceMonitor.java │ │ │ │ │ │ │ │ ├── MidiDispatcher.java │ │ │ │ │ │ │ │ ├── MidiEventScheduler.java │ │ │ │ │ │ │ │ ├── MidiEventThread.java │ │ │ │ │ │ │ │ ├── MidiFramer.java │ │ │ │ │ │ │ │ ├── MidiInputPortSelector.java │ │ │ │ │ │ │ │ ├── MidiOutputPortConnectionSelector.java │ │ │ │ │ │ │ │ ├── MidiOutputPortSelector.java │ │ │ │ │ │ │ │ ├── MidiPortConnector.java │ │ │ │ │ │ │ │ ├── MidiPortSelector.java │ │ │ │ │ │ │ │ ├── MidiPortWrapper.java │ │ │ │ │ │ │ │ ├── MidiTools.java │ │ │ │ │ │ │ │ ├── MusicKeyboardView.java │ │ │ │ │ │ │ │ └── synth │ │ │ │ │ │ │ │ │ ├── AudioLatencyTuner.java │ │ │ │ │ │ │ │ │ ├── EnvelopeADSR.java │ │ │ │ │ │ │ │ │ ├── LatencyController.java │ │ │ │ │ │ │ │ │ ├── SawOscillator.java │ │ │ │ │ │ │ │ │ ├── SawOscillatorDPW.java │ │ │ │ │ │ │ │ │ ├── SawVoice.java │ │ │ │ │ │ │ │ │ ├── SimpleAudioOutput.java │ │ │ │ │ │ │ │ │ ├── SineOscillator.java │ │ │ │ │ │ │ │ │ ├── SineVoice.java │ │ │ │ │ │ │ │ │ ├── SynthEngine.java │ │ │ │ │ │ │ │ │ ├── SynthUnit.java │ │ │ │ │ │ │ │ │ └── SynthVoice.java │ │ │ │ │ │ │ │ └── oboetester │ │ │ │ │ │ │ │ ├── AnalyzerActivity.java │ │ │ │ │ │ │ │ ├── AudioInputTester.java │ │ │ │ │ │ │ │ ├── AudioOutputTester.java │ │ │ │ │ │ │ │ ├── AudioQueryTools.java │ │ │ │ │ │ │ │ ├── AudioRecordThread.java │ │ │ │ │ │ │ │ ├── AudioStreamBase.java │ │ │ │ │ │ │ │ ├── AudioStreamTester.java │ │ │ │ │ │ │ │ ├── AutomatedGlitchActivity.java │ │ │ │ │ │ │ │ ├── AutomatedTestRunner.java │ │ │ │ │ │ │ │ ├── BaseAutoGlitchActivity.java │ │ │ │ │ │ │ │ ├── BaseOboeTesterActivity.java │ │ │ │ │ │ │ │ ├── BufferSizeView.java │ │ │ │ │ │ │ │ ├── CachedTextViewLog.java │ │ │ │ │ │ │ │ ├── CircularCaptureBuffer.java │ │ │ │ │ │ │ │ ├── CommunicationDeviceView.java │ │ │ │ │ │ │ │ ├── DeviceReportActivity.java │ │ │ │ │ │ │ │ ├── DoubleStatistics.java │ │ │ │ │ │ │ │ ├── EchoActivity.java │ │ │ │ │ │ │ │ ├── ExponentialTaper.java │ │ │ │ │ │ │ │ ├── ExternalTapToToneActivity.java │ │ │ │ │ │ │ │ ├── ExtraTestsActivity.java │ │ │ │ │ │ │ │ ├── FastButton.java │ │ │ │ │ │ │ │ ├── GlitchActivity.java │ │ │ │ │ │ │ │ ├── InputMarginView.java │ │ │ │ │ │ │ │ ├── IntentBasedTestSupport.java │ │ │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ │ │ ├── ManualGlitchActivity.java │ │ │ │ │ │ │ │ ├── MicrophoneInfoConverter.java │ │ │ │ │ │ │ │ ├── MidiTapTester.java │ │ │ │ │ │ │ │ ├── NativeEngine.java │ │ │ │ │ │ │ │ ├── NativeSniffer.java │ │ │ │ │ │ │ │ ├── OboeAudioInputStream.java │ │ │ │ │ │ │ │ ├── OboeAudioOutputStream.java │ │ │ │ │ │ │ │ ├── OboeAudioStream.java │ │ │ │ │ │ │ │ ├── RecorderActivity.java │ │ │ │ │ │ │ │ ├── RoundTripLatencyActivity.java │ │ │ │ │ │ │ │ ├── StreamConfiguration.java │ │ │ │ │ │ │ │ ├── StreamConfigurationView.java │ │ │ │ │ │ │ │ ├── TapLatencyAnalyser.java │ │ │ │ │ │ │ │ ├── TapToToneActivity.java │ │ │ │ │ │ │ │ ├── TapToToneTester.java │ │ │ │ │ │ │ │ ├── TestAudioActivity.java │ │ │ │ │ │ │ │ ├── TestDataPathsActivity.java │ │ │ │ │ │ │ │ ├── TestDisconnectActivity.java │ │ │ │ │ │ │ │ ├── TestErrorCallbackActivity.java │ │ │ │ │ │ │ │ ├── TestInputActivity.java │ │ │ │ │ │ │ │ ├── TestOutputActivity.java │ │ │ │ │ │ │ │ ├── TestOutputActivityBase.java │ │ │ │ │ │ │ │ ├── TestPlugLatencyActivity.java │ │ │ │ │ │ │ │ ├── VolumeBarView.java │ │ │ │ │ │ │ │ ├── WaveformView.java │ │ │ │ │ │ │ │ └── WorkloadView.java │ │ │ │ │ │ │ └── res │ │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ │ ├── button_shape.xml │ │ │ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ │ │ ├── layout │ │ │ │ │ │ │ ├── activity_auto_glitches.xml │ │ │ │ │ │ │ ├── activity_data_paths.xml │ │ │ │ │ │ │ ├── activity_device_report.xml │ │ │ │ │ │ │ ├── activity_echo.xml │ │ │ │ │ │ │ ├── activity_error_callback.xml │ │ │ │ │ │ │ ├── activity_external_tap_to_tone.xml │ │ │ │ │ │ │ ├── activity_extra_tests.xml │ │ │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ │ │ ├── activity_manual_glitches.xml │ │ │ │ │ │ │ ├── activity_recorder.xml │ │ │ │ │ │ │ ├── activity_rt_latency.xml │ │ │ │ │ │ │ ├── activity_tap_to_tone.xml │ │ │ │ │ │ │ ├── activity_test_disconnect.xml │ │ │ │ │ │ │ ├── activity_test_input.xml │ │ │ │ │ │ │ ├── activity_test_output.xml │ │ │ │ │ │ │ ├── activity_test_plug_latency.xml │ │ │ │ │ │ │ ├── audio_devices.xml │ │ │ │ │ │ │ ├── auto_test_runner.xml │ │ │ │ │ │ │ ├── buffer_size_view.xml │ │ │ │ │ │ │ ├── comm_device_view.xml │ │ │ │ │ │ │ ├── input_margin_view.xml │ │ │ │ │ │ │ ├── merge_audio_common.xml │ │ │ │ │ │ │ ├── merge_audio_simple.xml │ │ │ │ │ │ │ ├── sample_fast_button.xml │ │ │ │ │ │ │ ├── stream_config.xml │ │ │ │ │ │ │ └── workload_view.xml │ │ │ │ │ │ │ ├── menu │ │ │ │ │ │ │ └── menu_main.xml │ │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── values-v21 │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ │ ├── values-w600dp │ │ │ │ │ │ │ └── dimens.xml │ │ │ │ │ │ │ ├── values │ │ │ │ │ │ │ ├── arrays.xml │ │ │ │ │ │ │ ├── attrs_fast_button.xml │ │ │ │ │ │ │ ├── attrs_waveform.xml │ │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ │ ├── dimens.xml │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ │ └── xml │ │ │ │ │ │ │ ├── button_color_selector.xml │ │ │ │ │ │ │ ├── provider_paths.xml │ │ │ │ │ │ │ └── service_device_info.xml │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── docs │ │ │ │ │ │ ├── AutomatedTesting.md │ │ │ │ │ │ ├── Build.md │ │ │ │ │ │ ├── PrivacyPolicy.md │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── TestOutput.md │ │ │ │ │ │ ├── Usage.md │ │ │ │ │ │ └── images │ │ │ │ │ │ │ ├── auto_glitch_test.png │ │ │ │ │ │ │ ├── echo_input_output.png │ │ │ │ │ │ │ ├── main_activity.png │ │ │ │ │ │ │ ├── recorder.png │ │ │ │ │ │ │ ├── round_trip_latency.png │ │ │ │ │ │ │ ├── tap_to_tone.png │ │ │ │ │ │ │ ├── test_glitches.png │ │ │ │ │ │ │ ├── test_input.png │ │ │ │ │ │ │ ├── test_output.png │ │ │ │ │ │ │ └── test_output_running.png │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── scripts │ │ │ │ │ │ └── dsp_timing.py │ │ │ │ │ └── settings.gradle │ │ │ │ └── fxlab │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── DuplexCallback.h │ │ │ │ │ │ ├── DuplexEngine.cpp │ │ │ │ │ │ ├── DuplexEngine.h │ │ │ │ │ │ ├── FunctionList.h │ │ │ │ │ │ ├── effects │ │ │ │ │ │ │ ├── CombFilter.h │ │ │ │ │ │ │ ├── DelayLineEffect.h │ │ │ │ │ │ │ ├── DoublingEffect.h │ │ │ │ │ │ │ ├── DriveControl.h │ │ │ │ │ │ │ ├── EchoEffect.h │ │ │ │ │ │ │ ├── Effects.h │ │ │ │ │ │ │ ├── FlangerEffect.h │ │ │ │ │ │ │ ├── SingleFunctionEffects.h │ │ │ │ │ │ │ ├── SlapbackEffect.h │ │ │ │ │ │ │ ├── TremoloEffect.h │ │ │ │ │ │ │ ├── VibratroEffect.h │ │ │ │ │ │ │ ├── WhiteChorusEffect.h │ │ │ │ │ │ │ ├── descrip │ │ │ │ │ │ │ │ ├── AllPassDescription.h │ │ │ │ │ │ │ │ ├── DistortionDescription.h │ │ │ │ │ │ │ │ ├── DoublingDescription.h │ │ │ │ │ │ │ │ ├── EchoDescription.h │ │ │ │ │ │ │ │ ├── EffectDescription.h │ │ │ │ │ │ │ │ ├── FIRDescription.h │ │ │ │ │ │ │ │ ├── FlangerDescription.h │ │ │ │ │ │ │ │ ├── GainDescription.h │ │ │ │ │ │ │ │ ├── IIRDescription.h │ │ │ │ │ │ │ │ ├── OverdriveDescription.h │ │ │ │ │ │ │ │ ├── PassthroughDescription.h │ │ │ │ │ │ │ │ ├── SlapbackDescription.h │ │ │ │ │ │ │ │ ├── TremoloDescription.h │ │ │ │ │ │ │ │ ├── VibratoDescription.h │ │ │ │ │ │ │ │ └── WhiteChorusDescription.h │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── DelayLine.h │ │ │ │ │ │ │ │ ├── PhaseAccumulator.h │ │ │ │ │ │ │ │ ├── SineWave.h │ │ │ │ │ │ │ │ └── WhiteNoise.h │ │ │ │ │ │ ├── logging_macros.h │ │ │ │ │ │ ├── native-lib.cpp │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ │ ├── DelayLineEffectTest.h │ │ │ │ │ │ │ ├── DelayLineTest.h │ │ │ │ │ │ │ ├── TypeTests.h │ │ │ │ │ │ │ └── testEffects.cpp │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── mobileer │ │ │ │ │ │ │ └── androidfxlab │ │ │ │ │ │ │ ├── EffectsAdapter.kt │ │ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ │ │ ├── NativeInterface.kt │ │ │ │ │ │ │ └── datatype │ │ │ │ │ │ │ ├── Effect.kt │ │ │ │ │ │ │ ├── EffectDescription.kt │ │ │ │ │ │ │ └── ParamDescription.kt │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ ├── ic_add.xml │ │ │ │ │ │ ├── ic_baseline_audio_is_disabled_24.xml │ │ │ │ │ │ ├── ic_baseline_audio_is_enabled_24.xml │ │ │ │ │ │ ├── ic_baseline_drag_indicator.xml │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ │ ├── layout │ │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ │ ├── effect_header.xml │ │ │ │ │ │ ├── effect_view.xml │ │ │ │ │ │ └── param_seek.xml │ │ │ │ │ │ ├── menu │ │ │ │ │ │ ├── add_menu.xml │ │ │ │ │ │ └── toolbar_menu.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── docs │ │ │ │ │ ├── Dev-Guide.md │ │ │ │ │ ├── Presentation.pdf │ │ │ │ │ └── README.md │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── screenshot.png │ │ │ │ │ └── settings.gradle │ │ │ ├── build_all_android.sh │ │ │ ├── docs │ │ │ │ ├── .nojekyll │ │ │ │ ├── AndroidAudioHistory.md │ │ │ │ ├── AppsUsingOboe.md │ │ │ │ ├── ChangeLog.md │ │ │ │ ├── FAQ.md │ │ │ │ ├── FullGuide.md │ │ │ │ ├── GettingStarted.md │ │ │ │ ├── OpenSLESMigration.md │ │ │ │ ├── PrivacyPolicy.md │ │ │ │ ├── README.md │ │ │ │ ├── images │ │ │ │ │ ├── cmakelists-location-in-as.png │ │ │ │ │ ├── getting-started-video.jpg │ │ │ │ │ ├── oboe-lifecycle.png │ │ │ │ │ ├── oboe-sharing-mode-exclusive.jpg │ │ │ │ │ └── oboe-sharing-mode-shared.jpg │ │ │ │ ├── index.md │ │ │ │ └── notes │ │ │ │ │ ├── README.md │ │ │ │ │ ├── disconnect.md │ │ │ │ │ ├── effects.md │ │ │ │ │ └── rlsbuffer.md │ │ │ ├── include │ │ │ │ └── oboe │ │ │ │ │ ├── AudioStream.h │ │ │ │ │ ├── AudioStreamBase.h │ │ │ │ │ ├── AudioStreamBuilder.h │ │ │ │ │ ├── AudioStreamCallback.h │ │ │ │ │ ├── Definitions.h │ │ │ │ │ ├── FifoBuffer.h │ │ │ │ │ ├── FifoControllerBase.h │ │ │ │ │ ├── LatencyTuner.h │ │ │ │ │ ├── Oboe.h │ │ │ │ │ ├── OboeExtensions.h │ │ │ │ │ ├── ResultWithValue.h │ │ │ │ │ ├── StabilizedCallback.h │ │ │ │ │ ├── Utilities.h │ │ │ │ │ └── Version.h │ │ │ ├── prefab │ │ │ │ ├── oboe-VERSION.pom │ │ │ │ └── oboe-VERSION │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ └── prefab │ │ │ │ │ ├── modules │ │ │ │ │ └── oboe │ │ │ │ │ │ ├── libs │ │ │ │ │ │ ├── android.arm64-v8a │ │ │ │ │ │ │ └── abi.json │ │ │ │ │ │ ├── android.armeabi-v7a │ │ │ │ │ │ │ └── abi.json │ │ │ │ │ │ ├── android.x86 │ │ │ │ │ │ │ └── abi.json │ │ │ │ │ │ └── android.x86_64 │ │ │ │ │ │ │ └── abi.json │ │ │ │ │ │ └── module.json │ │ │ │ │ └── prefab.json │ │ │ ├── prefab_build.sh │ │ │ ├── samples │ │ │ │ ├── .gitignore │ │ │ │ ├── LiveEffect │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── screenshot.png │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── FullDuplexPass.h │ │ │ │ │ │ ├── FullDuplexStream.cpp │ │ │ │ │ │ ├── FullDuplexStream.h │ │ │ │ │ │ ├── LiveEffectEngine.cpp │ │ │ │ │ │ ├── LiveEffectEngine.h │ │ │ │ │ │ ├── jni_bridge.cpp │ │ │ │ │ │ └── ndk-stl-config.cmake │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── google │ │ │ │ │ │ │ └── oboe │ │ │ │ │ │ │ └── samples │ │ │ │ │ │ │ └── liveEffect │ │ │ │ │ │ │ ├── LiveEffectEngine.java │ │ │ │ │ │ │ └── MainActivity.java │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── balance_seekbar.xml │ │ │ │ │ │ ├── layout-v21 │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ ├── layout │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── values-v21 │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ ├── values-w820dp │ │ │ │ │ │ └── dimens.xml │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── dimens.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ ├── MegaDrone │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── megadrone-screenshot.png │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── MegaDroneEngine.cpp │ │ │ │ │ │ ├── MegaDroneEngine.h │ │ │ │ │ │ ├── Synth.h │ │ │ │ │ │ └── native-lib.cpp │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── google │ │ │ │ │ │ │ └── oboe │ │ │ │ │ │ │ └── samples │ │ │ │ │ │ │ └── megadrone │ │ │ │ │ │ │ └── MainActivity.java │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ │ ├── layout │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ ├── README.md │ │ │ │ ├── RhythmGame │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── images │ │ │ │ │ │ ├── 1-timeline.png │ │ │ │ │ │ ├── 2-architecture.png │ │ │ │ │ │ ├── 3-audioData.png │ │ │ │ │ │ ├── 4-audio-rendering.png │ │ │ │ │ │ ├── 5-lockfreequeue.png │ │ │ │ │ │ ├── 6-audio-ui-sync.png │ │ │ │ │ │ ├── 7-tap-window.png │ │ │ │ │ │ └── RhythmGame-screenshot.png │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ ├── src │ │ │ │ │ │ └── main │ │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ │ ├── assets │ │ │ │ │ │ │ ├── CLAP.mp3 │ │ │ │ │ │ │ └── FUNKY_HOUSE.mp3 │ │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ │ ├── Game.cpp │ │ │ │ │ │ │ ├── Game.h │ │ │ │ │ │ │ ├── GameConstants.h │ │ │ │ │ │ │ ├── audio │ │ │ │ │ │ │ │ ├── AAssetDataSource.cpp │ │ │ │ │ │ │ │ ├── AAssetDataSource.h │ │ │ │ │ │ │ │ ├── DataSource.h │ │ │ │ │ │ │ │ ├── FFMpegExtractor.cpp │ │ │ │ │ │ │ │ ├── FFMpegExtractor.h │ │ │ │ │ │ │ │ ├── NDKExtractor.cpp │ │ │ │ │ │ │ │ ├── NDKExtractor.h │ │ │ │ │ │ │ │ ├── Player.cpp │ │ │ │ │ │ │ │ └── Player.h │ │ │ │ │ │ │ ├── native-lib.cpp │ │ │ │ │ │ │ ├── ui │ │ │ │ │ │ │ │ ├── OpenGLFunctions.cpp │ │ │ │ │ │ │ │ └── OpenGLFunctions.h │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── LockFreeQueue.h │ │ │ │ │ │ │ │ ├── UtilityFunctions.cpp │ │ │ │ │ │ │ │ ├── UtilityFunctions.h │ │ │ │ │ │ │ │ └── logging.h │ │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ │ └── google │ │ │ │ │ │ │ │ └── oboe │ │ │ │ │ │ │ │ └── samples │ │ │ │ │ │ │ │ └── rhythmgame │ │ │ │ │ │ │ │ ├── GameSurfaceView.java │ │ │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ │ │ └── RendererWrapper.java │ │ │ │ │ │ │ └── res │ │ │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ │ │ ├── layout │ │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ │ └── values │ │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ ├── test │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── run_tests.sh │ │ │ │ │ │ └── testLockFreeQueue.cpp │ │ │ │ │ └── third_party │ │ │ │ │ │ └── glm │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── common.hpp │ │ │ │ │ │ ├── detail │ │ │ │ │ │ ├── _features.hpp │ │ │ │ │ │ ├── _fixes.hpp │ │ │ │ │ │ ├── _noise.hpp │ │ │ │ │ │ ├── _swizzle.hpp │ │ │ │ │ │ ├── _swizzle_func.hpp │ │ │ │ │ │ ├── _vectorize.hpp │ │ │ │ │ │ ├── dummy.cpp │ │ │ │ │ │ ├── func_common.hpp │ │ │ │ │ │ ├── func_common.inl │ │ │ │ │ │ ├── func_common_simd.inl │ │ │ │ │ │ ├── func_exponential.hpp │ │ │ │ │ │ ├── func_exponential.inl │ │ │ │ │ │ ├── func_exponential_simd.inl │ │ │ │ │ │ ├── func_geometric.hpp │ │ │ │ │ │ ├── func_geometric.inl │ │ │ │ │ │ ├── func_geometric_simd.inl │ │ │ │ │ │ ├── func_integer.hpp │ │ │ │ │ │ ├── func_integer.inl │ │ │ │ │ │ ├── func_integer_simd.inl │ │ │ │ │ │ ├── func_matrix.hpp │ │ │ │ │ │ ├── func_matrix.inl │ │ │ │ │ │ ├── func_matrix_simd.inl │ │ │ │ │ │ ├── func_packing.hpp │ │ │ │ │ │ ├── func_packing.inl │ │ │ │ │ │ ├── func_packing_simd.inl │ │ │ │ │ │ ├── func_trigonometric.hpp │ │ │ │ │ │ ├── func_trigonometric.inl │ │ │ │ │ │ ├── func_trigonometric_simd.inl │ │ │ │ │ │ ├── func_vector_relational.hpp │ │ │ │ │ │ ├── func_vector_relational.inl │ │ │ │ │ │ ├── func_vector_relational_simd.inl │ │ │ │ │ │ ├── glm.cpp │ │ │ │ │ │ ├── precision.hpp │ │ │ │ │ │ ├── setup.hpp │ │ │ │ │ │ ├── type_float.hpp │ │ │ │ │ │ ├── type_gentype.hpp │ │ │ │ │ │ ├── type_gentype.inl │ │ │ │ │ │ ├── type_half.hpp │ │ │ │ │ │ ├── type_half.inl │ │ │ │ │ │ ├── type_int.hpp │ │ │ │ │ │ ├── type_mat.hpp │ │ │ │ │ │ ├── type_mat.inl │ │ │ │ │ │ ├── type_mat2x2.hpp │ │ │ │ │ │ ├── type_mat2x2.inl │ │ │ │ │ │ ├── type_mat2x3.hpp │ │ │ │ │ │ ├── type_mat2x3.inl │ │ │ │ │ │ ├── type_mat2x4.hpp │ │ │ │ │ │ ├── type_mat2x4.inl │ │ │ │ │ │ ├── type_mat3x2.hpp │ │ │ │ │ │ ├── type_mat3x2.inl │ │ │ │ │ │ ├── type_mat3x3.hpp │ │ │ │ │ │ ├── type_mat3x3.inl │ │ │ │ │ │ ├── type_mat3x4.hpp │ │ │ │ │ │ ├── type_mat3x4.inl │ │ │ │ │ │ ├── type_mat4x2.hpp │ │ │ │ │ │ ├── type_mat4x2.inl │ │ │ │ │ │ ├── type_mat4x3.hpp │ │ │ │ │ │ ├── type_mat4x3.inl │ │ │ │ │ │ ├── type_mat4x4.hpp │ │ │ │ │ │ ├── type_mat4x4.inl │ │ │ │ │ │ ├── type_mat4x4_simd.inl │ │ │ │ │ │ ├── type_vec.hpp │ │ │ │ │ │ ├── type_vec.inl │ │ │ │ │ │ ├── type_vec1.hpp │ │ │ │ │ │ ├── type_vec1.inl │ │ │ │ │ │ ├── type_vec2.hpp │ │ │ │ │ │ ├── type_vec2.inl │ │ │ │ │ │ ├── type_vec3.hpp │ │ │ │ │ │ ├── type_vec3.inl │ │ │ │ │ │ ├── type_vec4.hpp │ │ │ │ │ │ ├── type_vec4.inl │ │ │ │ │ │ └── type_vec4_simd.inl │ │ │ │ │ │ ├── exponential.hpp │ │ │ │ │ │ ├── ext.hpp │ │ │ │ │ │ ├── fwd.hpp │ │ │ │ │ │ ├── geometric.hpp │ │ │ │ │ │ ├── glm.hpp │ │ │ │ │ │ ├── gtc │ │ │ │ │ │ ├── bitfield.hpp │ │ │ │ │ │ ├── bitfield.inl │ │ │ │ │ │ ├── color_encoding.inl │ │ │ │ │ │ ├── color_space.hpp │ │ │ │ │ │ ├── color_space.inl │ │ │ │ │ │ ├── constants.hpp │ │ │ │ │ │ ├── constants.inl │ │ │ │ │ │ ├── epsilon.hpp │ │ │ │ │ │ ├── epsilon.inl │ │ │ │ │ │ ├── functions.hpp │ │ │ │ │ │ ├── functions.inl │ │ │ │ │ │ ├── integer.hpp │ │ │ │ │ │ ├── integer.inl │ │ │ │ │ │ ├── matrix_access.hpp │ │ │ │ │ │ ├── matrix_access.inl │ │ │ │ │ │ ├── matrix_integer.hpp │ │ │ │ │ │ ├── matrix_inverse.hpp │ │ │ │ │ │ ├── matrix_inverse.inl │ │ │ │ │ │ ├── matrix_transform.hpp │ │ │ │ │ │ ├── matrix_transform.inl │ │ │ │ │ │ ├── noise.hpp │ │ │ │ │ │ ├── noise.inl │ │ │ │ │ │ ├── packing.hpp │ │ │ │ │ │ ├── packing.inl │ │ │ │ │ │ ├── quaternion.hpp │ │ │ │ │ │ ├── quaternion.inl │ │ │ │ │ │ ├── quaternion_simd.inl │ │ │ │ │ │ ├── random.hpp │ │ │ │ │ │ ├── random.inl │ │ │ │ │ │ ├── reciprocal.hpp │ │ │ │ │ │ ├── reciprocal.inl │ │ │ │ │ │ ├── round.hpp │ │ │ │ │ │ ├── round.inl │ │ │ │ │ │ ├── type_aligned.hpp │ │ │ │ │ │ ├── type_precision.hpp │ │ │ │ │ │ ├── type_precision.inl │ │ │ │ │ │ ├── type_ptr.hpp │ │ │ │ │ │ ├── type_ptr.inl │ │ │ │ │ │ ├── ulp.hpp │ │ │ │ │ │ ├── ulp.inl │ │ │ │ │ │ ├── vec1.hpp │ │ │ │ │ │ └── vec1.inl │ │ │ │ │ │ ├── gtx │ │ │ │ │ │ ├── associated_min_max.hpp │ │ │ │ │ │ ├── associated_min_max.inl │ │ │ │ │ │ ├── bit.hpp │ │ │ │ │ │ ├── bit.inl │ │ │ │ │ │ ├── closest_point.hpp │ │ │ │ │ │ ├── closest_point.inl │ │ │ │ │ │ ├── color_space.hpp │ │ │ │ │ │ ├── color_space.inl │ │ │ │ │ │ ├── color_space_YCoCg.hpp │ │ │ │ │ │ ├── color_space_YCoCg.inl │ │ │ │ │ │ ├── common.hpp │ │ │ │ │ │ ├── common.inl │ │ │ │ │ │ ├── compatibility.hpp │ │ │ │ │ │ ├── compatibility.inl │ │ │ │ │ │ ├── component_wise.hpp │ │ │ │ │ │ ├── component_wise.inl │ │ │ │ │ │ ├── dual_quaternion.hpp │ │ │ │ │ │ ├── dual_quaternion.inl │ │ │ │ │ │ ├── euler_angles.hpp │ │ │ │ │ │ ├── euler_angles.inl │ │ │ │ │ │ ├── extend.hpp │ │ │ │ │ │ ├── extend.inl │ │ │ │ │ │ ├── extended_min_max.hpp │ │ │ │ │ │ ├── extended_min_max.inl │ │ │ │ │ │ ├── fast_exponential.hpp │ │ │ │ │ │ ├── fast_exponential.inl │ │ │ │ │ │ ├── fast_square_root.hpp │ │ │ │ │ │ ├── fast_square_root.inl │ │ │ │ │ │ ├── fast_trigonometry.hpp │ │ │ │ │ │ ├── fast_trigonometry.inl │ │ │ │ │ │ ├── float_notmalize.inl │ │ │ │ │ │ ├── gradient_paint.hpp │ │ │ │ │ │ ├── gradient_paint.inl │ │ │ │ │ │ ├── handed_coordinate_space.hpp │ │ │ │ │ │ ├── handed_coordinate_space.inl │ │ │ │ │ │ ├── hash.hpp │ │ │ │ │ │ ├── hash.inl │ │ │ │ │ │ ├── integer.hpp │ │ │ │ │ │ ├── integer.inl │ │ │ │ │ │ ├── intersect.hpp │ │ │ │ │ │ ├── intersect.inl │ │ │ │ │ │ ├── io.hpp │ │ │ │ │ │ ├── io.inl │ │ │ │ │ │ ├── log_base.hpp │ │ │ │ │ │ ├── log_base.inl │ │ │ │ │ │ ├── matrix_cross_product.hpp │ │ │ │ │ │ ├── matrix_cross_product.inl │ │ │ │ │ │ ├── matrix_decompose.hpp │ │ │ │ │ │ ├── matrix_decompose.inl │ │ │ │ │ │ ├── matrix_interpolation.hpp │ │ │ │ │ │ ├── matrix_interpolation.inl │ │ │ │ │ │ ├── matrix_major_storage.hpp │ │ │ │ │ │ ├── matrix_major_storage.inl │ │ │ │ │ │ ├── matrix_operation.hpp │ │ │ │ │ │ ├── matrix_operation.inl │ │ │ │ │ │ ├── matrix_query.hpp │ │ │ │ │ │ ├── matrix_query.inl │ │ │ │ │ │ ├── matrix_transform_2d.hpp │ │ │ │ │ │ ├── matrix_transform_2d.inl │ │ │ │ │ │ ├── mixed_product.hpp │ │ │ │ │ │ ├── mixed_product.inl │ │ │ │ │ │ ├── norm.hpp │ │ │ │ │ │ ├── norm.inl │ │ │ │ │ │ ├── normal.hpp │ │ │ │ │ │ ├── normal.inl │ │ │ │ │ │ ├── normalize_dot.hpp │ │ │ │ │ │ ├── normalize_dot.inl │ │ │ │ │ │ ├── number_precision.hpp │ │ │ │ │ │ ├── number_precision.inl │ │ │ │ │ │ ├── optimum_pow.hpp │ │ │ │ │ │ ├── optimum_pow.inl │ │ │ │ │ │ ├── orthonormalize.hpp │ │ │ │ │ │ ├── orthonormalize.inl │ │ │ │ │ │ ├── perpendicular.hpp │ │ │ │ │ │ ├── perpendicular.inl │ │ │ │ │ │ ├── polar_coordinates.hpp │ │ │ │ │ │ ├── polar_coordinates.inl │ │ │ │ │ │ ├── projection.hpp │ │ │ │ │ │ ├── projection.inl │ │ │ │ │ │ ├── quaternion.hpp │ │ │ │ │ │ ├── quaternion.inl │ │ │ │ │ │ ├── range.hpp │ │ │ │ │ │ ├── raw_data.hpp │ │ │ │ │ │ ├── raw_data.inl │ │ │ │ │ │ ├── rotate_normalized_axis.hpp │ │ │ │ │ │ ├── rotate_normalized_axis.inl │ │ │ │ │ │ ├── rotate_vector.hpp │ │ │ │ │ │ ├── rotate_vector.inl │ │ │ │ │ │ ├── scalar_multiplication.hpp │ │ │ │ │ │ ├── scalar_relational.hpp │ │ │ │ │ │ ├── scalar_relational.inl │ │ │ │ │ │ ├── simd_mat4.hpp │ │ │ │ │ │ ├── simd_mat4.inl │ │ │ │ │ │ ├── simd_quat.hpp │ │ │ │ │ │ ├── simd_quat.inl │ │ │ │ │ │ ├── simd_vec4.hpp │ │ │ │ │ │ ├── simd_vec4.inl │ │ │ │ │ │ ├── spline.hpp │ │ │ │ │ │ ├── spline.inl │ │ │ │ │ │ ├── std_based_type.hpp │ │ │ │ │ │ ├── std_based_type.inl │ │ │ │ │ │ ├── string_cast.hpp │ │ │ │ │ │ ├── string_cast.inl │ │ │ │ │ │ ├── transform.hpp │ │ │ │ │ │ ├── transform.inl │ │ │ │ │ │ ├── transform2.hpp │ │ │ │ │ │ ├── transform2.inl │ │ │ │ │ │ ├── type_aligned.hpp │ │ │ │ │ │ ├── type_aligned.inl │ │ │ │ │ │ ├── type_trait.hpp │ │ │ │ │ │ ├── type_trait.inl │ │ │ │ │ │ ├── vector_angle.hpp │ │ │ │ │ │ ├── vector_angle.inl │ │ │ │ │ │ ├── vector_query.hpp │ │ │ │ │ │ ├── vector_query.inl │ │ │ │ │ │ ├── wrap.hpp │ │ │ │ │ │ └── wrap.inl │ │ │ │ │ │ ├── integer.hpp │ │ │ │ │ │ ├── mat2x2.hpp │ │ │ │ │ │ ├── mat2x3.hpp │ │ │ │ │ │ ├── mat2x4.hpp │ │ │ │ │ │ ├── mat3x2.hpp │ │ │ │ │ │ ├── mat3x3.hpp │ │ │ │ │ │ ├── mat3x4.hpp │ │ │ │ │ │ ├── mat4x2.hpp │ │ │ │ │ │ ├── mat4x3.hpp │ │ │ │ │ │ ├── mat4x4.hpp │ │ │ │ │ │ ├── matrix.hpp │ │ │ │ │ │ ├── packing.hpp │ │ │ │ │ │ ├── simd │ │ │ │ │ │ ├── common.h │ │ │ │ │ │ ├── exponential.h │ │ │ │ │ │ ├── geometric.h │ │ │ │ │ │ ├── integer.h │ │ │ │ │ │ ├── matrix.h │ │ │ │ │ │ ├── packing.h │ │ │ │ │ │ ├── platform.h │ │ │ │ │ │ ├── trigonometric.h │ │ │ │ │ │ └── vector_relational.h │ │ │ │ │ │ ├── trigonometric.hpp │ │ │ │ │ │ ├── vec2.hpp │ │ │ │ │ │ ├── vec3.hpp │ │ │ │ │ │ ├── vec4.hpp │ │ │ │ │ │ └── vector_relational.hpp │ │ │ │ ├── SoundBoard │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ ├── soundboard_image.png │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── SoundBoardEngine.cpp │ │ │ │ │ │ ├── SoundBoardEngine.h │ │ │ │ │ │ ├── Synth.h │ │ │ │ │ │ └── native-lib.cpp │ │ │ │ │ │ ├── ic_launcher-playstore.png │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── google │ │ │ │ │ │ │ └── oboe │ │ │ │ │ │ │ └── samples │ │ │ │ │ │ │ └── soundboard │ │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ │ ├── MusicTileView.java │ │ │ │ │ │ │ └── NoteListener.java │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ │ ├── layout │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ ├── audio-device │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── google │ │ │ │ │ │ │ └── oboe │ │ │ │ │ │ │ └── samples │ │ │ │ │ │ │ └── audio_device │ │ │ │ │ │ │ ├── AudioDeviceAdapter.java │ │ │ │ │ │ │ ├── AudioDeviceInfoConverter.java │ │ │ │ │ │ │ ├── AudioDeviceListEntry.java │ │ │ │ │ │ │ └── AudioDeviceSpinner.java │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── layout │ │ │ │ │ │ └── audio_devices.xml │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── dimens.xml │ │ │ │ │ │ └── strings.xml │ │ │ │ ├── build.gradle │ │ │ │ ├── debug-utils │ │ │ │ │ ├── logging_macros.h │ │ │ │ │ ├── trace.cpp │ │ │ │ │ └── trace.h │ │ │ │ ├── drumthumper │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── playstore │ │ │ │ │ │ ├── DrumSetFeatureImage.png │ │ │ │ │ │ ├── ScreenShotPhone.png │ │ │ │ │ │ ├── ScreenShotWithMix.png │ │ │ │ │ │ └── drumset.jpg │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── CrashCymbal.wav │ │ │ │ │ │ ├── HiHat_Closed.wav │ │ │ │ │ │ ├── HiHat_Open.wav │ │ │ │ │ │ ├── KickDrum.wav │ │ │ │ │ │ ├── LowTom.wav │ │ │ │ │ │ ├── MidTom.wav │ │ │ │ │ │ ├── RideCymbal.wav │ │ │ │ │ │ └── SnareDrum.wav │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ └── DrumPlayerJNI.cpp │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── plausibleaudio │ │ │ │ │ │ │ └── drumthumper │ │ │ │ │ │ │ ├── DrumPlayer.kt │ │ │ │ │ │ │ ├── DrumThumperActivity.kt │ │ │ │ │ │ │ └── TriggerPad.kt │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ └── _ic_launcher_foreground.xml │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── _ic_launcher_background.xml │ │ │ │ │ │ ├── layout-land │ │ │ │ │ │ └── drumthumper_activity.xml │ │ │ │ │ │ ├── layout │ │ │ │ │ │ └── drumthumper_activity.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── _ic_launcher.xml │ │ │ │ │ │ └── _ic_launcher_round.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── hello-oboe │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── hello-oboe-screenshot.png │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── HelloOboeEngine.cpp │ │ │ │ │ │ ├── HelloOboeEngine.h │ │ │ │ │ │ ├── LatencyTuningCallback.cpp │ │ │ │ │ │ ├── LatencyTuningCallback.h │ │ │ │ │ │ ├── SoundGenerator.cpp │ │ │ │ │ │ ├── SoundGenerator.h │ │ │ │ │ │ └── jni_bridge.cpp │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── google │ │ │ │ │ │ │ └── oboe │ │ │ │ │ │ │ └── samples │ │ │ │ │ │ │ └── hellooboe │ │ │ │ │ │ │ ├── BackgroundRunner.java │ │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ │ └── PlaybackEngine.java │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── layout │ │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ │ ├── audio_apis_spinner.xml │ │ │ │ │ │ ├── buffer_sizes_spinner.xml │ │ │ │ │ │ └── channel_counts_spinner.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── values-v21 │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ ├── values-w820dp │ │ │ │ │ │ └── dimens.xml │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── dimens.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ ├── iolib │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ └── player │ │ │ │ │ │ │ ├── DataSource.h │ │ │ │ │ │ │ ├── OneShotSampleSource.cpp │ │ │ │ │ │ │ ├── OneShotSampleSource.h │ │ │ │ │ │ │ ├── SampleBuffer.cpp │ │ │ │ │ │ │ ├── SampleBuffer.h │ │ │ │ │ │ │ ├── SampleSource.cpp │ │ │ │ │ │ │ ├── SampleSource.h │ │ │ │ │ │ │ ├── SimpleMultiPlayer.cpp │ │ │ │ │ │ │ └── SimpleMultiPlayer.h │ │ │ │ │ │ └── res │ │ │ │ │ │ └── values │ │ │ │ │ │ └── strings.xml │ │ │ │ ├── minimaloboe │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── MinimalOboeJNI.cpp │ │ │ │ │ │ ├── SimpleNoiseMaker.cpp │ │ │ │ │ │ └── SimpleNoiseMaker.h │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── example │ │ │ │ │ │ │ └── minimaloboe │ │ │ │ │ │ │ ├── AudioPlayer.kt │ │ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ │ │ └── ui │ │ │ │ │ │ │ └── theme │ │ │ │ │ │ │ ├── Color.kt │ │ │ │ │ │ │ ├── Shape.kt │ │ │ │ │ │ │ ├── Theme.kt │ │ │ │ │ │ │ └── Type.kt │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── themes.xml │ │ │ │ ├── parselib │ │ │ │ │ ├── README.md │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── cpp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── stream │ │ │ │ │ │ │ ├── FileInputStream.cpp │ │ │ │ │ │ │ ├── FileInputStream.h │ │ │ │ │ │ │ ├── InputStream.cpp │ │ │ │ │ │ │ ├── InputStream.h │ │ │ │ │ │ │ ├── MemInputStream.cpp │ │ │ │ │ │ │ └── MemInputStream.h │ │ │ │ │ │ └── wav │ │ │ │ │ │ │ ├── AudioEncoding.cpp │ │ │ │ │ │ │ ├── AudioEncoding.h │ │ │ │ │ │ │ ├── WavChunkHeader.cpp │ │ │ │ │ │ │ ├── WavChunkHeader.h │ │ │ │ │ │ │ ├── WavFmtChunkHeader.cpp │ │ │ │ │ │ │ ├── WavFmtChunkHeader.h │ │ │ │ │ │ │ ├── WavRIFFChunkHeader.cpp │ │ │ │ │ │ │ ├── WavRIFFChunkHeader.h │ │ │ │ │ │ │ ├── WavStreamReader.cpp │ │ │ │ │ │ │ ├── WavStreamReader.h │ │ │ │ │ │ │ └── WavTypes.h │ │ │ │ │ │ └── res │ │ │ │ │ │ └── values │ │ │ │ │ │ └── strings.xml │ │ │ │ ├── settings.gradle │ │ │ │ └── shared │ │ │ │ │ ├── DefaultDataCallback.h │ │ │ │ │ ├── DefaultErrorCallback.h │ │ │ │ │ ├── IRenderableAudio.h │ │ │ │ │ ├── IRestartable.h │ │ │ │ │ ├── ITappable.h │ │ │ │ │ ├── Mixer.h │ │ │ │ │ ├── MonoToStereo.h │ │ │ │ │ ├── Oscillator.h │ │ │ │ │ ├── SynthSound.h │ │ │ │ │ └── TappableAudioSource.h │ │ │ ├── src │ │ │ │ ├── aaudio │ │ │ │ │ ├── AAudioExtensions.h │ │ │ │ │ ├── AAudioLoader.cpp │ │ │ │ │ ├── AAudioLoader.h │ │ │ │ │ ├── AudioStreamAAudio.cpp │ │ │ │ │ └── AudioStreamAAudio.h │ │ │ │ ├── common │ │ │ │ │ ├── AudioClock.h │ │ │ │ │ ├── AudioSourceCaller.cpp │ │ │ │ │ ├── AudioSourceCaller.h │ │ │ │ │ ├── AudioStream.cpp │ │ │ │ │ ├── AudioStreamBuilder.cpp │ │ │ │ │ ├── DataConversionFlowGraph.cpp │ │ │ │ │ ├── DataConversionFlowGraph.h │ │ │ │ │ ├── FilterAudioStream.cpp │ │ │ │ │ ├── FilterAudioStream.h │ │ │ │ │ ├── FixedBlockAdapter.cpp │ │ │ │ │ ├── FixedBlockAdapter.h │ │ │ │ │ ├── FixedBlockReader.cpp │ │ │ │ │ ├── FixedBlockReader.h │ │ │ │ │ ├── FixedBlockWriter.cpp │ │ │ │ │ ├── FixedBlockWriter.h │ │ │ │ │ ├── LatencyTuner.cpp │ │ │ │ │ ├── MonotonicCounter.h │ │ │ │ │ ├── OboeDebug.h │ │ │ │ │ ├── OboeExtensions.cpp │ │ │ │ │ ├── QuirksManager.cpp │ │ │ │ │ ├── QuirksManager.h │ │ │ │ │ ├── README.md │ │ │ │ │ ├── SourceFloatCaller.cpp │ │ │ │ │ ├── SourceFloatCaller.h │ │ │ │ │ ├── SourceI16Caller.cpp │ │ │ │ │ ├── SourceI16Caller.h │ │ │ │ │ ├── SourceI24Caller.cpp │ │ │ │ │ ├── SourceI24Caller.h │ │ │ │ │ ├── SourceI32Caller.cpp │ │ │ │ │ ├── SourceI32Caller.h │ │ │ │ │ ├── StabilizedCallback.cpp │ │ │ │ │ ├── Trace.cpp │ │ │ │ │ ├── Trace.h │ │ │ │ │ ├── Utilities.cpp │ │ │ │ │ └── Version.cpp │ │ │ │ ├── fifo │ │ │ │ │ ├── FifoBuffer.cpp │ │ │ │ │ ├── FifoController.cpp │ │ │ │ │ ├── FifoController.h │ │ │ │ │ ├── FifoControllerBase.cpp │ │ │ │ │ ├── FifoControllerIndirect.cpp │ │ │ │ │ └── FifoControllerIndirect.h │ │ │ │ ├── flowgraph │ │ │ │ │ ├── ChannelCountConverter.cpp │ │ │ │ │ ├── ChannelCountConverter.h │ │ │ │ │ ├── ClipToRange.cpp │ │ │ │ │ ├── ClipToRange.h │ │ │ │ │ ├── FlowGraphNode.cpp │ │ │ │ │ ├── FlowGraphNode.h │ │ │ │ │ ├── FlowgraphUtilities.h │ │ │ │ │ ├── ManyToMultiConverter.cpp │ │ │ │ │ ├── ManyToMultiConverter.h │ │ │ │ │ ├── MonoBlend.cpp │ │ │ │ │ ├── MonoBlend.h │ │ │ │ │ ├── MonoToMultiConverter.cpp │ │ │ │ │ ├── MonoToMultiConverter.h │ │ │ │ │ ├── MultiToManyConverter.cpp │ │ │ │ │ ├── MultiToManyConverter.h │ │ │ │ │ ├── MultiToMonoConverter.cpp │ │ │ │ │ ├── MultiToMonoConverter.h │ │ │ │ │ ├── RampLinear.cpp │ │ │ │ │ ├── RampLinear.h │ │ │ │ │ ├── SampleRateConverter.cpp │ │ │ │ │ ├── SampleRateConverter.h │ │ │ │ │ ├── SinkFloat.cpp │ │ │ │ │ ├── SinkFloat.h │ │ │ │ │ ├── SinkI16.cpp │ │ │ │ │ ├── SinkI16.h │ │ │ │ │ ├── SinkI24.cpp │ │ │ │ │ ├── SinkI24.h │ │ │ │ │ ├── SinkI32.cpp │ │ │ │ │ ├── SinkI32.h │ │ │ │ │ ├── SourceFloat.cpp │ │ │ │ │ ├── SourceFloat.h │ │ │ │ │ ├── SourceI16.cpp │ │ │ │ │ ├── SourceI16.h │ │ │ │ │ ├── SourceI24.cpp │ │ │ │ │ ├── SourceI24.h │ │ │ │ │ ├── SourceI32.cpp │ │ │ │ │ ├── SourceI32.h │ │ │ │ │ └── resampler │ │ │ │ │ │ ├── HyperbolicCosineWindow.h │ │ │ │ │ │ ├── IntegerRatio.cpp │ │ │ │ │ │ ├── IntegerRatio.h │ │ │ │ │ │ ├── KaiserWindow.h │ │ │ │ │ │ ├── LinearResampler.cpp │ │ │ │ │ │ ├── LinearResampler.h │ │ │ │ │ │ ├── MultiChannelResampler.cpp │ │ │ │ │ │ ├── MultiChannelResampler.h │ │ │ │ │ │ ├── PolyphaseResampler.cpp │ │ │ │ │ │ ├── PolyphaseResampler.h │ │ │ │ │ │ ├── PolyphaseResamplerMono.cpp │ │ │ │ │ │ ├── PolyphaseResamplerMono.h │ │ │ │ │ │ ├── PolyphaseResamplerStereo.cpp │ │ │ │ │ │ ├── PolyphaseResamplerStereo.h │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── ResamplerDefinitions.h │ │ │ │ │ │ ├── SincResampler.cpp │ │ │ │ │ │ ├── SincResampler.h │ │ │ │ │ │ ├── SincResamplerStereo.cpp │ │ │ │ │ │ └── SincResamplerStereo.h │ │ │ │ └── opensles │ │ │ │ │ ├── AudioInputStreamOpenSLES.cpp │ │ │ │ │ ├── AudioInputStreamOpenSLES.h │ │ │ │ │ ├── AudioOutputStreamOpenSLES.cpp │ │ │ │ │ ├── AudioOutputStreamOpenSLES.h │ │ │ │ │ ├── AudioStreamBuffered.cpp │ │ │ │ │ ├── AudioStreamBuffered.h │ │ │ │ │ ├── AudioStreamOpenSLES.cpp │ │ │ │ │ ├── AudioStreamOpenSLES.h │ │ │ │ │ ├── EngineOpenSLES.cpp │ │ │ │ │ ├── EngineOpenSLES.h │ │ │ │ │ ├── OpenSLESUtilities.cpp │ │ │ │ │ ├── OpenSLESUtilities.h │ │ │ │ │ ├── OutputMixerOpenSLES.cpp │ │ │ │ │ └── OutputMixerOpenSLES.h │ │ │ └── tests │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README │ │ │ │ ├── README.md │ │ │ │ ├── UnitTestRunner │ │ │ │ ├── .gitignore │ │ │ │ ├── app │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── google │ │ │ │ │ │ │ └── oboe │ │ │ │ │ │ │ └── tests │ │ │ │ │ │ │ └── unittestrunner │ │ │ │ │ │ │ └── MainActivity.java │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ │ ├── layout │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ └── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ └── settings.gradle │ │ │ │ ├── run_tests.sh │ │ │ │ ├── testAAudio.cpp │ │ │ │ ├── testFlowgraph.cpp │ │ │ │ ├── testResampler.cpp │ │ │ │ ├── testReturnStop.cpp │ │ │ │ ├── testStreamClosedMethods.cpp │ │ │ │ ├── testStreamFramesProcessed.cpp │ │ │ │ ├── testStreamOpen.cpp │ │ │ │ ├── testStreamStates.cpp │ │ │ │ ├── testStreamStop.cpp │ │ │ │ ├── testStreamWaitState.cpp │ │ │ │ ├── testUtilities.cpp │ │ │ │ └── testXRunBehaviour.cpp │ │ ├── video-decoder.c │ │ └── video-decoder.h │ │ ├── java │ │ └── com │ │ │ └── metallic │ │ │ └── chiaki │ │ │ ├── common │ │ │ ├── AppDatabase.kt │ │ │ ├── DisplayHost.kt │ │ │ ├── LogManager.kt │ │ │ ├── MacAddress.kt │ │ │ ├── ManualHost.kt │ │ │ ├── Preferences.kt │ │ │ ├── RegisteredHost.kt │ │ │ ├── SerializedSettings.kt │ │ │ └── ext │ │ │ │ ├── RevealActivity.kt │ │ │ │ ├── RxLiveData.kt │ │ │ │ ├── StringHex.kt │ │ │ │ ├── ViewGroupInflate.kt │ │ │ │ └── ViewModelFactory.kt │ │ │ ├── discovery │ │ │ └── DiscoveryManager.kt │ │ │ ├── lib │ │ │ └── Chiaki.kt │ │ │ ├── main │ │ │ ├── DisplayHostRecyclerViewAdapter.kt │ │ │ ├── FloatingActionButtonBackgroundBehavior.kt │ │ │ ├── FloatingActionButtonSpeedDialBehavior.kt │ │ │ ├── MainActivity.kt │ │ │ └── MainViewModel.kt │ │ │ ├── manualconsole │ │ │ ├── EditManualConsoleActivity.kt │ │ │ └── EditManualConsoleViewModel.kt │ │ │ ├── regist │ │ │ ├── ChiakiRxLog.kt │ │ │ ├── RegistActivity.kt │ │ │ ├── RegistExecuteActivity.kt │ │ │ ├── RegistExecuteViewModel.kt │ │ │ └── RegistViewModel.kt │ │ │ ├── session │ │ │ ├── StreamInput.kt │ │ │ └── StreamSession.kt │ │ │ ├── settings │ │ │ ├── ItemTouchSwipeCallback.kt │ │ │ ├── SettingsActivity.kt │ │ │ ├── SettingsFragment.kt │ │ │ ├── SettingsLogsAdapter.kt │ │ │ ├── SettingsLogsFragment.kt │ │ │ ├── SettingsLogsViewModel.kt │ │ │ ├── SettingsRegisteredHostsAdapter.kt │ │ │ ├── SettingsRegisteredHostsFragment.kt │ │ │ ├── SettingsRegisteredHostsViewModel.kt │ │ │ ├── SettingsViewModel.kt │ │ │ └── WebLauncherPreference.java │ │ │ ├── stream │ │ │ ├── AspectRatioFrameLayout.kt │ │ │ ├── StreamActivity.kt │ │ │ └── StreamViewModel.kt │ │ │ └── touchcontrols │ │ │ ├── AnalogStickView.kt │ │ │ ├── ButtonHaptics.kt │ │ │ ├── ButtonView.kt │ │ │ ├── ControlsBackgroundView.kt │ │ │ ├── CustomView.java │ │ │ ├── DPadView.kt │ │ │ ├── TouchControlsFragment.kt │ │ │ ├── TouchTracker.kt │ │ │ ├── TouchpadOnlyFragment.kt │ │ │ ├── TouchpadView.kt │ │ │ └── Vector.kt │ │ └── res │ │ ├── color │ │ ├── mage_text_input_box_stroke.xml │ │ └── stream_material_button_icon_tint.xml │ │ ├── drawable │ │ ├── avd_add_to_close.xml │ │ ├── avd_close_to_add.xml │ │ ├── control_analog_stick_base.xml │ │ ├── control_analog_stick_handle.xml │ │ ├── control_button_box.xml │ │ ├── control_button_box_pressed.xml │ │ ├── control_button_cross.xml │ │ ├── control_button_cross_pressed.xml │ │ ├── control_button_home.xml │ │ ├── control_button_home_pressed.xml │ │ ├── control_button_l1.xml │ │ ├── control_button_l1_pressed.xml │ │ ├── control_button_l2.xml │ │ ├── control_button_l2_pressed.xml │ │ ├── control_button_l3.xml │ │ ├── control_button_l3_pressed.xml │ │ ├── control_button_moon.xml │ │ ├── control_button_moon_pressed.xml │ │ ├── control_button_options.xml │ │ ├── control_button_options_pressed.xml │ │ ├── control_button_pyramid.xml │ │ ├── control_button_pyramid_pressed.xml │ │ ├── control_button_r1.xml │ │ ├── control_button_r1_pressed.xml │ │ ├── control_button_r2.xml │ │ ├── control_button_r2_pressed.xml │ │ ├── control_button_r3.xml │ │ ├── control_button_r3_pressed.xml │ │ ├── control_button_share.xml │ │ ├── control_button_share_pressed.xml │ │ ├── control_dpad_idle.xml │ │ ├── control_dpad_left.xml │ │ ├── control_dpad_left_up.xml │ │ ├── control_touchpad.xml │ │ ├── control_touchpad_pressed.xml │ │ ├── ic_add.xml │ │ ├── ic_add_close.xml │ │ ├── ic_add_manual.xml │ │ ├── ic_bitrate.xml │ │ ├── ic_button_haptic.xml │ │ ├── ic_close.xml │ │ ├── ic_codec.xml │ │ ├── ic_console.xml │ │ ├── ic_console_ps5.xml │ │ ├── ic_console_ps5_ready.xml │ │ ├── ic_console_ps5_standby.xml │ │ ├── ic_console_ready.xml │ │ ├── ic_console_simple.xml │ │ ├── ic_console_standby.xml │ │ ├── ic_delete_row.xml │ │ ├── ic_discover_off.xml │ │ ├── ic_discover_on.xml │ │ ├── ic_discovered_on_secondary.xml │ │ ├── ic_display_normal.xml │ │ ├── ic_display_stretch.xml │ │ ├── ic_display_zoom.xml │ │ ├── ic_export.xml │ │ ├── ic_fps.xml │ │ ├── ic_gamepad.xml │ │ ├── ic_host.xml │ │ ├── ic_import.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_log.xml │ │ ├── ic_motion.xml │ │ ├── ic_overflow.xml │ │ ├── ic_pin.xml │ │ ├── ic_psn_id.xml │ │ ├── ic_regist_console.xml │ │ ├── ic_register.xml │ │ ├── ic_resolution.xml │ │ ├── ic_rumble.xml │ │ ├── ic_settings.xml │ │ ├── ic_settings_black.xml │ │ ├── ic_share.xml │ │ ├── ic_triangle.xml │ │ ├── icon_about_ax.xml │ │ ├── icon_setting_cutout_mode.xml │ │ ├── icon_setting_portal.xml │ │ ├── icon_touch_key.xml │ │ ├── icon_touch_tap.xml │ │ ├── icon_virtual_controller.xml │ │ └── selector_add_fab.xml │ │ ├── layout │ │ ├── activity_edit_manual.xml │ │ ├── activity_main.xml │ │ ├── activity_regist.xml │ │ ├── activity_regist_execute.xml │ │ ├── activity_settings.xml │ │ ├── activity_stream.xml │ │ ├── dialog_login_pin.xml │ │ ├── dropdown_menu_popup_item.xml │ │ ├── fragment_controls.xml │ │ ├── fragment_settings_logs.xml │ │ ├── fragment_settings_registered_hosts.xml │ │ ├── fragment_touchpad_only.xml │ │ ├── item_display_host.xml │ │ ├── item_log_file.xml │ │ └── item_registered_host.xml │ │ ├── menu │ │ ├── display_host.xml │ │ └── main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── atv_banner.png │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── filepaths.xml │ │ └── preferences.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── assets ├── .gitignore ├── add_console.svg ├── chiaki.svg ├── chiaki_android_fg.svg ├── chiaki_function.svg ├── chiaki_macos.svg ├── chiaki_macos_simple.svg ├── chiaki_simple.svg ├── chiaki_square.svg ├── chiaki_wide.png ├── chiaki_wide_simple.svg ├── console.svg ├── console2.svg ├── controls │ ├── buttons.svg │ ├── dpad.svg │ ├── l1.svg │ ├── l2.svg │ ├── l2_raw.svg │ ├── l3.svg │ ├── l3_raw.svg │ ├── lr12.svg │ ├── options_share.svg │ ├── r1.svg │ ├── r2.svg │ ├── r3.svg │ ├── r3_raw.svg │ ├── stick.svg │ ├── touchpad.svg │ └── touchpad_surface.svg ├── gen-icns.sh ├── ic_launcher-web.png ├── regist_console.svg ├── screenshot.png └── triangle.svg ├── cli ├── CMakeLists.txt ├── include │ └── chiaki-cli.h └── src │ ├── discover.c │ ├── main.c │ └── wakeup.c ├── cmake ├── FindArgp.cmake ├── FindFFMPEG.cmake ├── FindILClient.cmake ├── FindJerasure.cmake ├── FindNanopb.cmake ├── FindOpus.cmake ├── FindSDL2.cmake ├── OpenSSLExternalProject.cmake └── switch.cmake ├── doc └── platform-build.md ├── gui ├── CMakeLists.txt ├── MacOSXBundleInfo.plist.in ├── chiaki.desktop ├── chiaki.icns ├── chiaki.png ├── include │ ├── avopenglframeuploader.h │ ├── avopenglwidget.h │ ├── controllermanager.h │ ├── discoverymanager.h │ ├── dynamicgridwidget.h │ ├── exception.h │ ├── host.h │ ├── loginpindialog.h │ ├── logsniffer.h │ ├── mainwindow.h │ ├── manualhostdialog.h │ ├── registdialog.h │ ├── servericonwidget.h │ ├── serveritemwidget.h │ ├── sessionlog.h │ ├── settings.h │ ├── settingsdialog.h │ ├── settingskeycapturedialog.h │ ├── streamsession.h │ ├── streamwindow.h │ └── transformmode.h ├── re.chiaki.Chiaki.appdata.xml ├── res │ ├── add-24px.svg │ ├── chiaki.svg │ ├── chiaki_macos.svg │ ├── console-ps4.svg │ ├── console-ps5.svg │ ├── discover-24px.svg │ ├── discover-off-24px.svg │ ├── resources.qrc │ └── settings-20px.svg └── src │ ├── avopenglframeuploader.cpp │ ├── avopenglwidget.cpp │ ├── controllermanager.cpp │ ├── discoverymanager.cpp │ ├── dynamicgridwidget.cpp │ ├── host.cpp │ ├── loginpindialog.cpp │ ├── main.cpp │ ├── mainwindow.cpp │ ├── manualhostdialog.cpp │ ├── registdialog.cpp │ ├── servericonwidget.cpp │ ├── serveritemwidget.cpp │ ├── sessionlog.cpp │ ├── settings.cpp │ ├── settingsdialog.cpp │ ├── settingskeycapturedialog.cpp │ ├── streamsession.cpp │ └── streamwindow.cpp ├── lib ├── CMakeLists.txt ├── config.h.in ├── include │ └── chiaki │ │ ├── audio.h │ │ ├── audioreceiver.h │ │ ├── base64.h │ │ ├── common.h │ │ ├── config.h │ │ ├── congestioncontrol.h │ │ ├── controller.h │ │ ├── ctrl.h │ │ ├── discovery.h │ │ ├── discoveryservice.h │ │ ├── ecdh.h │ │ ├── fec.h │ │ ├── feedback.h │ │ ├── feedbacksender.h │ │ ├── ffmpegdecoder.h │ │ ├── frameprocessor.h │ │ ├── gkcrypt.h │ │ ├── http.h │ │ ├── launchspec.h │ │ ├── log.h │ │ ├── opusdecoder.h │ │ ├── orientation.h │ │ ├── packetstats.h │ │ ├── pidecoder.h │ │ ├── random.h │ │ ├── regist.h │ │ ├── reorderqueue.h │ │ ├── rpcrypt.h │ │ ├── senkusha.h │ │ ├── seqnum.h │ │ ├── session.h │ │ ├── sock.h │ │ ├── stoppipe.h │ │ ├── streamconnection.h │ │ ├── takion.h │ │ ├── takionsendbuffer.h │ │ ├── thread.h │ │ ├── time.h │ │ ├── video.h │ │ └── videoreceiver.h ├── protobuf │ ├── CMakeLists.txt │ └── takion.proto └── src │ ├── audio.c │ ├── audioreceiver.c │ ├── base64.c │ ├── common.c │ ├── congestioncontrol.c │ ├── controller.c │ ├── ctrl.c │ ├── discovery.c │ ├── discoveryservice.c │ ├── ecdh.c │ ├── fec.c │ ├── feedback.c │ ├── feedbacksender.c │ ├── ffmpegdecoder.c │ ├── frameprocessor.c │ ├── gkcrypt.c │ ├── http.c │ ├── launchspec.c │ ├── log.c │ ├── opusdecoder.c │ ├── orientation.c │ ├── packetstats.c │ ├── pb_utils.h │ ├── pidecoder.c │ ├── random.c │ ├── regist.c │ ├── reorderqueue.c │ ├── rpcrypt.c │ ├── senkusha.c │ ├── session.c │ ├── sock.c │ ├── stoppipe.c │ ├── streamconnection.c │ ├── takion.c │ ├── takionsendbuffer.c │ ├── thread.c │ ├── time.c │ ├── utils.h │ └── videoreceiver.c ├── scripts ├── Dockerfile.bionic ├── Dockerfile.bullseye ├── appveyor-win.sh ├── build-appimage.sh ├── build-common.sh ├── build-ffmpeg.sh ├── build-sdl2.sh ├── docker-run.sh ├── fetch-protoc.sh ├── flatpak │ └── com.github.thestr4ng3r.Chiaki.json ├── kitware-archive-latest.asc ├── macos-dist-local.sh ├── psn-account-id.go ├── psn-account-id.py ├── run-podman-build-appimage.sh ├── run-podman-build-bullseye.sh └── switch │ ├── build.sh │ ├── push-podman-build-chiaki.sh │ └── run-podman-build-chiaki.sh ├── setsu ├── CMakeLists.txt ├── cmake │ ├── FindEvdev.cmake │ └── FindUdev.cmake ├── demo │ ├── motion.c │ └── touchpad.c ├── include │ └── setsu.h └── src │ └── setsu.c ├── switch ├── CMakeLists.txt ├── README.md ├── include │ ├── discoverymanager.h │ ├── exception.h │ ├── gui.h │ ├── host.h │ ├── io.h │ └── settings.h ├── nro_icon.jpg ├── nro_icon.png ├── res │ ├── add-24px.svg │ ├── console.svg │ ├── discover-24px.svg │ ├── discover-off-24px.svg │ ├── icon.png │ └── settings-20px.svg └── src │ ├── discoverymanager.cpp │ ├── gui.cpp │ ├── host.cpp │ ├── io.cpp │ ├── main.cpp │ └── settings.cpp ├── test ├── CMakeLists.txt ├── fec.c ├── fec_test_cases.inl ├── gkcrypt.c ├── http.c ├── keystate.c ├── main.c ├── regist.c ├── reorderqueue.c ├── rpcrypt.c ├── seqnum.c ├── takion.c ├── takion_av_packet_parse_real_video.inl ├── test_log.c └── test_log.h └── third-party └── CMakeLists.txt /.gitignore: -------------------------------------------------------------------------------- 1 | # Gradle files 2 | .gradle/ 3 | build/ 4 | 5 | # Local configuration file (sdk path, etc) 6 | local.properties 7 | 8 | # Log/OS Files 9 | *.log 10 | 11 | # Android Studio generated files and folders 12 | captures/ 13 | .externalNativeBuild/ 14 | .cxx/ 15 | *.apk 16 | output.json 17 | 18 | # IntelliJ 19 | *.iml 20 | .idea/ 21 | misc.xml 22 | deploymentTargetDropDown.xml 23 | render.experimental.xml 24 | 25 | # Keystore files 26 | *.jks 27 | *.keystore 28 | 29 | # Google Services (e.g. APIs or Firebase) 30 | google-services.json 31 | 32 | # Android Profiling 33 | *.hprof 34 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | /app/release 16 | keystore.jks 17 | -------------------------------------------------------------------------------- /android/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/audio-output.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_JNI_AUDIO_OUTPUT_H 4 | #define CHIAKI_JNI_AUDIO_OUTPUT_H 5 | 6 | #include 7 | #include 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | void *android_chiaki_audio_output_new(ChiakiLog *log); 14 | void android_chiaki_audio_output_free(void *audio_output); 15 | void android_chiaki_audio_output_settings(uint32_t channels, uint32_t rate, void *audio_output); 16 | void android_chiaki_audio_output_frame(int16_t *buf, size_t samples_count, void *audio_output); 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif //CHIAKI_JNI_AUDIO_OUTPUT_H 23 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/chiaki-jni.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_JNI_H 4 | #define CHIAKI_JNI_H 5 | 6 | #define JNI_VERSION JNI_VERSION_1_6 7 | 8 | #define BASE_PACKAGE "com/metallic/chiaki/lib" 9 | #define JNI_FCN(name) Java_com_metallic_chiaki_lib_ChiakiNative_##name 10 | 11 | #define E (*env) 12 | 13 | JNIEnv *attach_thread_jni(); 14 | jobject jnistr_from_ascii(JNIEnv *env, const char *str); 15 | 16 | extern JavaVM *global_vm; 17 | 18 | #endif -------------------------------------------------------------------------------- /android/app/src/main/cpp/log.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_JNI_LOG_H 4 | #define CHIAKI_JNI_LOG_H 5 | 6 | #include 7 | 8 | #include 9 | 10 | typedef struct android_jni_chiaki_log_t 11 | { 12 | jobject java_log; 13 | jmethodID java_log_meth; 14 | ChiakiLog log; 15 | } AndroidChiakiJNILog; 16 | 17 | ChiakiErrorCode android_chiaki_file_log_init(ChiakiLog *log, uint32_t level, const char *file); 18 | void android_chiaki_file_log_fini(ChiakiLog *log); 19 | 20 | void android_chiaki_jni_log_init(AndroidChiakiJNILog *log, JNIEnv *env, jobject java_log); 21 | void android_chiaki_jni_log_fini(AndroidChiakiJNILog *log, JNIEnv *env); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/.github/workflows/update-docs.yml: -------------------------------------------------------------------------------- 1 | name: Update Docs 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v2 13 | 14 | - name: Doxygen Action 15 | uses: mattnotmitt/doxygen-action@v1.1.0 16 | with: 17 | doxyfile-path: "./Doxyfile" 18 | working-directory: "." 19 | 20 | - name: Deploy 21 | uses: peaceiris/actions-gh-pages@v3 22 | with: 23 | github_token: ${{ secrets.GITHUB_TOKEN }} 24 | publish_dir: ./docs/reference 25 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/.gitignore: -------------------------------------------------------------------------------- 1 | */.DS_Store 2 | .DS_Store 3 | .externalNativeBuild/ 4 | .cxx/ 5 | .idea 6 | build 7 | .logpile 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the official list of authors for copyright purposes. 2 | # This file is distinct from the CONTRIBUTORS files. 3 | # See the latter for an explanation. 4 | 5 | # Names should be added to this file as: 6 | # Name or Organization 7 | # The email address is not required for organizations. 8 | 9 | Google Inc. 10 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # People who have agreed to one of the CLAs and can contribute patches. 2 | # The AUTHORS file lists the copyright holders; this file 3 | # lists people. For example, Google employees are listed here 4 | # but not in AUTHORS, because Google holds the copyright. 5 | # 6 | # https://developers.google.com/open-source/cla/individual 7 | # https://developers.google.com/open-source/cla/corporate 8 | # 9 | # Names should be added to this file as: 10 | # Name 11 | 12 | Phil Burk 13 | Don Turner 14 | Mikhail Naganov 15 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build/ 7 | .idea/ 8 | /app/build/ 9 | /app/release/ 10 | /app/debug/ 11 | /app/app.iml 12 | *.iml 13 | /app/externalNativeBuild/ 14 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | status: PUBLISHED 2 | technologies: [Android, NDK] 3 | categories: [NDK, C++] 4 | languages: [C++, Java] 5 | solutions: [Mobile] 6 | github: googlesamples/android-ndk 7 | license: apache2 8 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/README.md: -------------------------------------------------------------------------------- 1 | # Oboe Tester 2 | 3 | OboeTester is an app that can be used to test many of the features of Oboe, AAudio and OpenSL ES. 4 | It can also be used to measure device latency and glitches. 5 | 6 | # [OboeTester Documentation](docs) 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Apr 11 16:29:30 PDT 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/gfan/dev/android-sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/NativeEngine.java: -------------------------------------------------------------------------------- 1 | package com.mobileer.oboetester; 2 | 3 | public class NativeEngine { 4 | 5 | static native boolean isMMapSupported(); 6 | 7 | static native boolean isMMapExclusiveSupported(); 8 | 9 | static native void setWorkaroundsEnabled(boolean enabled); 10 | 11 | static native boolean areWorkaroundsEnabled(); 12 | } 13 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/drawable/button_shape.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/layout/sample_fast_button.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/layout/workload_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/values-w600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | 20dp 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/values/attrs_fast_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 2.0dp 6 | 7 | 90dp 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/xml/button_color_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/app/src/main/res/xml/provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | google() 6 | jcenter() 7 | } 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:7.2.2' 10 | } 11 | } 12 | 13 | allprojects { 14 | repositories { 15 | google() 16 | jcenter() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/README.md: -------------------------------------------------------------------------------- 1 | # OboeTester Documentation 2 | 3 | OboeTester is an app that can be used to test many of the features of Oboe, AAudio and OpenSL ES. 4 | It can also be used to test Android devices, measure latency and glitches, etc. 5 | 6 | OboeTester can be run as an interactive app. 7 | It can also be run as part of an [automated test using Intents](AutomatedTesting.md) 8 | 9 | ## Install OboeTester 10 | 11 | You have two options: 12 | 1) Download OboeTester from [Play Store](https://play.google.com/store/apps/details?id=com.mobileer.oboetester) 13 | 2) OR [Build latest OboeTester using Android Studio](Build.md) 14 | 15 | ## [How to Use OboeTester Interactively](Usage.md) 16 | 17 | ## [Automated Testing with OboeTester](AutomatedTesting.md) 18 | 19 | -- [Privacy Policy](PrivacyPolicy.md) -- 20 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/auto_glitch_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/auto_glitch_test.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/echo_input_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/echo_input_output.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/main_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/main_activity.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/recorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/recorder.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/round_trip_latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/round_trip_latency.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/tap_to_tone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/tap_to_tone.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_glitches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_glitches.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_input.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_output.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_output_running.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/docs/images/test_output_running.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/OboeTester/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Aug 03 13:45:58 PDT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/OboeTester/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Code reviews 7 | 8 | All submissions, including submissions by project members, require review. We 9 | use GitHub pull requests for this purpose. Consult 10 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 11 | information on using pull requests. 12 | 13 | ## Community Guidelines 14 | 15 | This project follows [Google's Open Source Community 16 | Guidelines](https://opensource.google.com/conduct/). 17 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/cpp/tests/.gitignore: -------------------------------------------------------------------------------- 1 | CMakeFiles/ 2 | CMakeCache.txt 3 | cmake_install.cmake 4 | Makefile 5 | runTests 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/cpp/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.4.1) 2 | 3 | project(Effects_Tests) 4 | # We need C++17 to test 5 | set(CMAKE_CXX_STANDARD 17) 6 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 7 | set(CMAKE_CXX_EXTENSIONS OFF) 8 | 9 | # Locate GTest 10 | find_package(GTest REQUIRED) 11 | include_directories(${GTEST_INCLUDE_DIRS}) 12 | 13 | # Link runTests with what we want to test and the GTest and pthread library 14 | add_executable(runTests testEffects.cpp) 15 | target_link_libraries(runTests ${GTEST_LIBRARIES} pthread) 16 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/drawable/ic_baseline_audio_is_disabled_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/drawable/ic_baseline_audio_is_enabled_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/menu/add_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/menu/toolbar_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | AndroidFX Lab 19 | Toggle volume 20 | 21 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/docs/Presentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/docs/Presentation.pdf -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/docs/README.md: -------------------------------------------------------------------------------- 1 | # Docs for Android FX Lab 2 | 3 | * [How to Build the App](Dev-Guide.md) 4 | * [Slides for Internal Architecture (PDF)](Presentation.pdf) 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Jun 25 14:12:01 PDT 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/apps/fxlab/screenshot.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/apps/fxlab/settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | include ':app' 18 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/docs/.nojekyll -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/AppsUsingOboe.md: -------------------------------------------------------------------------------- 1 | # Projects using Oboe or AAudio 2 | 3 | This page was moved to the Wiki at [AppsUsingOboe](https://github.com/google/oboe/wiki/AppsUsingOboe). 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/PrivacyPolicy.md: -------------------------------------------------------------------------------- 1 | [Home](README.md) 2 | 3 | # Oboe Privacy Policy 4 | 5 | Oboe is a library that simply passes audio between the application and the native Android APIs. 6 | 7 | Oboe does not collect any user data or information. 8 | 9 | Oboe does not create Cookies. 10 | 11 | Oboe is considered "kid safe". 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/README.md: -------------------------------------------------------------------------------- 1 | Oboe documentation 2 | === 3 | - [Android Audio History](AndroidAudioHistory.md) 4 | - [API reference](https://google.github.io/oboe/) 5 | - [Apps using Oboe](AppsUsingOboe.md) 6 | - [Changelog](ChangeLog.md) 7 | - [FAQs](FAQ.md) 8 | - [Full Guide to Oboe](FullGuide.md) 9 | - [Getting Started with Oboe](GettingStarted.md) 10 | - [Tech Notes](notes/) 11 | - [Using Audio Effects with Oboe](notes/effects.md) 12 | - [Disconnected Streams](notes/disconnect.md) 13 | - [Privacy Policy](PrivacyPolicy.md) 14 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/images/cmakelists-location-in-as.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/docs/images/cmakelists-location-in-as.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/images/getting-started-video.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/docs/images/getting-started-video.jpg -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/images/oboe-lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/docs/images/oboe-lifecycle.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/images/oboe-sharing-mode-exclusive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/docs/images/oboe-sharing-mode-exclusive.jpg -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/images/oboe-sharing-mode-shared.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/docs/images/oboe-sharing-mode-shared.jpg -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Home 4 | --- 5 | Oboe is an audio library for Android. 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/docs/notes/README.md: -------------------------------------------------------------------------------- 1 | [Oboe Docs Home](https://github.com/google/oboe/blob/main/docs/README.md) 2 | 3 | Note that the Tech Notes are moving to here: https://github.com/google/oboe/wiki#tech-notes 4 | 5 | # Oboe Tech Notes 6 | 7 | * [Buffer Terminology - Frames, Capacity, Size, Burst](https://github.com/google/oboe/wiki/TechNote_BufferTerminology) 8 | * [Using Audio Effects with Oboe](effects.md) 9 | * [Disconnected Streams](disconnect.md) - Responding to Plugging In and Unplugging Headsets 10 | * [Assert in releaseBuffer()](rlsbuffer.md) 11 | * [Glitches and Latency](https://github.com/google/oboe/wiki/TechNote_Glitches) 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/prefab/oboe-VERSION/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/prefab/oboe-VERSION/prefab/modules/oboe/libs/android.arm64-v8a/abi.json: -------------------------------------------------------------------------------- 1 | {"abi":"arm64-v8a","api":21,"ndk":21,"stl":"c++_shared"} -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/prefab/oboe-VERSION/prefab/modules/oboe/libs/android.armeabi-v7a/abi.json: -------------------------------------------------------------------------------- 1 | {"abi":"armeabi-v7a","api":16,"ndk":21,"stl":"c++_shared"} -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/prefab/oboe-VERSION/prefab/modules/oboe/libs/android.x86/abi.json: -------------------------------------------------------------------------------- 1 | {"abi":"x86","api":16,"ndk":21,"stl":"c++_shared"} -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/prefab/oboe-VERSION/prefab/modules/oboe/libs/android.x86_64/abi.json: -------------------------------------------------------------------------------- 1 | {"abi":"x86_64","api":21,"ndk":21,"stl":"c++_shared"} -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/prefab/oboe-VERSION/prefab/modules/oboe/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "export_libraries": [], 3 | "library_name": null, 4 | "android": { 5 | "export_libraries": [], 6 | "library_name": null 7 | } 8 | } -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/prefab/oboe-VERSION/prefab/prefab.json: -------------------------------------------------------------------------------- 1 | { 2 | "schema_version": 1, 3 | "name": "oboe", 4 | "version": "VERSION", 5 | "dependencies": [] 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | test/build 11 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/LiveEffect/screenshot.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/drawable/balance_seekbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | #4444CC 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 32dp 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/LiveEffect/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/megadrone-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/megadrone-screenshot.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Mega Drone 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/MegaDrone/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/1-timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/1-timeline.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/2-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/2-architecture.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/3-audioData.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/3-audioData.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/4-audio-rendering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/4-audio-rendering.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/5-lockfreequeue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/5-lockfreequeue.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/6-audio-ui-sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/6-audio-ui-sync.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/7-tap-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/7-tap-window.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/images/RhythmGame-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/images/RhythmGame-screenshot.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/assets/CLAP.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/assets/CLAP.mp3 -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/assets/FUNKY_HOUSE.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/assets/FUNKY_HOUSE.mp3 -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | RhythmGame 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.4.1) 2 | 3 | set(GOOGLETEST_ROOT ${ANDROID_NDK}/sources/third_party/googletest/googletest) 4 | add_library(gtest STATIC ${GOOGLETEST_ROOT}/src/gtest_main.cc ${GOOGLETEST_ROOT}/src/gtest-all.cc) 5 | target_include_directories(gtest PRIVATE ${GOOGLETEST_ROOT}) 6 | target_include_directories(gtest PUBLIC ${GOOGLETEST_ROOT}/include) 7 | 8 | include_directories(../src/main/cpp/) 9 | 10 | # Build our test binary 11 | add_executable (testRhythmGame testLockFreeQueue.cpp) 12 | target_link_libraries(testRhythmGame gtest) -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/common.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/common.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_common.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/_fixes.hpp 3 | 4 | #include 5 | 6 | //! Workaround for compatibility with other libraries 7 | #ifdef max 8 | #undef max 9 | #endif 10 | 11 | //! Workaround for compatibility with other libraries 12 | #ifdef min 13 | #undef min 14 | #endif 15 | 16 | //! Workaround for Android 17 | #ifdef isnan 18 | #undef isnan 19 | #endif 20 | 21 | //! Workaround for Android 22 | #ifdef isinf 23 | #undef isinf 24 | #endif 25 | 26 | //! Workaround for Chrone Native Client 27 | #ifdef log2 28 | #undef log2 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_packing_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_vector_relational_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_half.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | typedef short hdata; 12 | 13 | GLM_FUNC_DECL float toFloat32(hdata value); 14 | GLM_FUNC_DECL hdata toFloat16(float const & value); 15 | 16 | }//namespace detail 17 | }//namespace glm 18 | 19 | #include "type_half.inl" 20 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat.inl 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat4x4_sse2.inl 3 | 4 | namespace glm 5 | { 6 | 7 | }//namespace glm 8 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_vec.inl 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/exponential.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/exponential.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_exponential.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/geometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/geometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_geometric.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_swizzle 2 | /// @file glm/gtc/swizzle.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.inl 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | /// @file glm/gtx/float_normalize.inl 3 | 4 | #include 5 | 6 | namespace glm 7 | { 8 | template class vecType> 9 | GLM_FUNC_QUALIFIER vecType floatNormalize(vecType const & v) 10 | { 11 | return vecType(v) / static_cast(std::numeric_limits::max()); 12 | } 13 | 14 | }//namespace glm 15 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | /// @file glm/gtx/handed_coordinate_space.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER bool rightHanded 8 | ( 9 | tvec3 const & tangent, 10 | tvec3 const & binormal, 11 | tvec3 const & normal 12 | ) 13 | { 14 | return dot(cross(normal, tangent), binormal) > T(0); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER bool leftHanded 19 | ( 20 | tvec3 const & tangent, 21 | tvec3 const & binormal, 22 | tvec3 const & normal 23 | ) 24 | { 25 | return dot(cross(normal, tangent), binormal) < T(0); 26 | } 27 | }//namespace glm 28 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base) 8 | { 9 | assert(x != genType(0)); 10 | return glm::log(x) / glm::log(base); 11 | } 12 | 13 | template class vecType> 14 | GLM_FUNC_QUALIFIER vecType log(vecType const & x, vecType const & base) 15 | { 16 | return glm::log(x) / glm::log(base); 17 | } 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T mixedProduct 8 | ( 9 | tvec3 const & v1, 10 | tvec3 const & v2, 11 | tvec3 const & v3 12 | ) 13 | { 14 | return dot(cross(v1, v2), v3); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 triangleNormal 8 | ( 9 | tvec3 const & p1, 10 | tvec3 const & p2, 11 | tvec3 const & p3 12 | ) 13 | { 14 | return normalize(cross(p1 - p2, p1 - p3)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | /// @file glm/gtx/normalize_dot.inl 3 | 4 | namespace glm 5 | { 6 | template class vecType> 7 | GLM_FUNC_QUALIFIER T normalizeDot(vecType const & x, vecType const & y) 8 | { 9 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 10 | } 11 | 12 | template class vecType> 13 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType const & x, vecType const & y) 14 | { 15 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 16 | } 17 | }//namespace glm 18 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | /// @file glm/gtx/number_precision.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType pow2(genType const & x) 8 | { 9 | return x * x; 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER genType pow3(genType const & x) 14 | { 15 | return x * x * x; 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER genType pow4(genType const & x) 20 | { 21 | return (x * x) * (x * x); 22 | } 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 orthonormalize(tmat3x3 const & m) 8 | { 9 | tmat3x3 r = m; 10 | 11 | r[0] = normalize(r[0]); 12 | 13 | T d0 = dot(r[0], r[1]); 14 | r[1] -= r[0] * d0; 15 | r[1] = normalize(r[1]); 16 | 17 | T d1 = dot(r[1], r[2]); 18 | d0 = dot(r[0], r[2]); 19 | r[2] -= r[0] * d0 + r[1] * d1; 20 | r[2] = normalize(r[2]); 21 | 22 | return r; 23 | } 24 | 25 | template 26 | GLM_FUNC_QUALIFIER tvec3 orthonormalize(tvec3 const & x, tvec3 const & y) 27 | { 28 | return normalize(x - y * dot(y, x)); 29 | } 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType perp 8 | ( 9 | vecType const & x, 10 | vecType const & Normal 11 | ) 12 | { 13 | return x - proj(x, Normal); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) 8 | { 9 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 10 | } 11 | }//namespace glm 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.inl 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/scalar_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_scalar_relational 25 | /// @{ 26 | 27 | 28 | 29 | /// @} 30 | }//namespace glm 31 | 32 | #include "scalar_relational.inl" 33 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | /// @file glm/gtx/std_based_type.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | /// @file glm/gtx/transform.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat4x4 translate(tvec3 const & v) 8 | { 9 | return translate(tmat4x4(static_cast(1)), v); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER tmat4x4 rotate(T angle, tvec3 const & v) 14 | { 15 | return rotate(tmat4x4(static_cast(1)), angle, v); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER tmat4x4 scale(tvec3 const & v) 20 | { 21 | return scale(tmat4x4(static_cast(1)), v); 22 | } 23 | 24 | }//namespace glm 25 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | /// @file glm/gtc/type_aligned.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/type_trait.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/gtx/type_trait.inl -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/integer.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/integer.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_integer.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/matrix.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/matrix.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_matrix.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/packing.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/packing.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_packing.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sqrt_lowp(glm_vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sqrt_lowp(glm_vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/trigonometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_trigonometric.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec2.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec3.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec4.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/RhythmGame/third_party/glm/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vector_relational.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_vector_relational.hpp" 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/soundboard_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/SoundBoard/soundboard_image.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #800000 4 | #300000 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | soundboard 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/SoundBoard/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/audio-device/README.md: -------------------------------------------------------------------------------- 1 | ### Audio Device Library 2 | This folder contains a number of classes for working with Audio Devices. See the hello-oboe sample 3 | for usage. 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/audio-device/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 33 5 | defaultConfig { 6 | minSdkVersion 21 7 | targetSdkVersion 33 8 | } 9 | buildTypes { 10 | release { 11 | minifyEnabled false 12 | proguardFiles getDefaultProguardFile('proguard-android.txt') 13 | } 14 | } 15 | } 16 | 17 | dependencies { 18 | implementation 'androidx.appcompat:appcompat:1.0.0-rc02' 19 | } 20 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/audio-device/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/audio-device/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/audio-device/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Device Name 3 | Auto select 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/playstore/DrumSetFeatureImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/playstore/DrumSetFeatureImage.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/playstore/ScreenShotPhone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/playstore/ScreenShotPhone.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/playstore/ScreenShotWithMix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/playstore/ScreenShotWithMix.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/playstore/drumset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/playstore/drumset.jpg -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/CrashCymbal.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/CrashCymbal.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/HiHat_Closed.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/HiHat_Closed.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/HiHat_Open.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/HiHat_Open.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/KickDrum.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/KickDrum.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/LowTom.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/LowTom.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/MidTom.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/MidTom.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/RideCymbal.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/RideCymbal.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/SnareDrum.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/assets/SnareDrum.wav -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-anydpi-v26/_ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-anydpi-v26/_ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DrumThumper 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/drumthumper/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Mar 03 18:52:06 GMT 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/hello-oboe-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/hello-oboe/hello-oboe-screenshot.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/gfan/dev/android-sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/hello-oboe/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/iolib/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/iolib/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/iolib/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | iolib 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/README.md: -------------------------------------------------------------------------------- 1 | # Minimal Oboe 2 | 3 | ## Overview 4 | 5 | This app is a very simple demonstration of turning on audio from buttons. 6 | It uses a low-latency Oboe stream. 7 | 8 | ## Implementation 9 | 10 | The app is written using Kotlin and Jetpack Compose. 11 | 12 | The app state is maintained by subclassing DefaultLifecycleObserver. 13 | Oboe is called through an external native function. 14 | 15 | This app uses shared_ptr for passing callbacks to Oboe. 16 | When the stream is disconnected, it starts a new stream. 17 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/java/com/example/minimaloboe/ui/theme/Color.kt: -------------------------------------------------------------------------------- 1 | package com.example.minimaloboe.ui.theme 2 | 3 | import androidx.compose.ui.graphics.Color 4 | 5 | val Purple200 = Color(0xFFBB86FC) 6 | val Purple500 = Color(0xFF6200EE) 7 | val Purple700 = Color(0xFF3700B3) 8 | val Teal200 = Color(0xFF03DAC5) 9 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/java/com/example/minimaloboe/ui/theme/Shape.kt: -------------------------------------------------------------------------------- 1 | package com.example.minimaloboe.ui.theme 2 | 3 | import androidx.compose.foundation.shape.RoundedCornerShape 4 | import androidx.compose.material.Shapes 5 | import androidx.compose.ui.unit.dp 6 | 7 | val Shapes = Shapes( 8 | small = RoundedCornerShape(4.dp), 9 | medium = RoundedCornerShape(4.dp), 10 | large = RoundedCornerShape(0.dp) 11 | ) 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/java/com/example/minimaloboe/ui/theme/Type.kt: -------------------------------------------------------------------------------- 1 | package com.example.minimaloboe.ui.theme 2 | 3 | import androidx.compose.material.Typography 4 | import androidx.compose.ui.text.TextStyle 5 | import androidx.compose.ui.text.font.FontFamily 6 | import androidx.compose.ui.text.font.FontWeight 7 | import androidx.compose.ui.unit.sp 8 | 9 | // Set of Material typography styles to start with 10 | val Typography = Typography( 11 | body1 = TextStyle( 12 | fontFamily = FontFamily.Default, 13 | fontWeight = FontWeight.Normal, 14 | fontSize = 24.sp 15 | ), 16 | button = TextStyle( 17 | fontFamily = FontFamily.Default, 18 | fontWeight = FontWeight.W500, 19 | fontSize = 20.sp 20 | ) 21 | ) 22 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MinimalOboe 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/minimaloboe/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/parselib/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 33 5 | 6 | defaultConfig { 7 | minSdkVersion 21 8 | targetSdkVersion 33 9 | 10 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 11 | } 12 | 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') 17 | } 18 | } 19 | 20 | externalNativeBuild { 21 | cmake { 22 | path 'src/main/cpp/CMakeLists.txt' 23 | } 24 | } 25 | } 26 | 27 | dependencies { 28 | implementation fileTree(dir: 'libs', include: ['*.jar']) 29 | 30 | implementation 'androidx.appcompat:appcompat:1.1.0' 31 | } 32 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/parselib/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/parselib/src/main/cpp/wav/AudioEncoding.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #include "AudioEncoding.h" 17 | 18 | namespace parselib { 19 | 20 | } // namespace wavlib 21 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/samples/parselib/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | wavlib 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/README: -------------------------------------------------------------------------------- 1 | See run_tests.sh for documentation 2 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches/build_file_checksums.ser 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | .DS_Store 9 | /build 10 | /captures 11 | .externalNativeBuild 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/.gitignore: -------------------------------------------------------------------------------- 1 | /assets 2 | /jniLibs 3 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Unit Test Runner 3 | "This app needs RECORD_AUDIO permission" 4 | Error: Permission for RECORD_AUDIO was denied 5 | RECORD_AUDIO permission granted, touch START to begin 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | mavenCentral() 6 | maven { 7 | url 'https://maven.google.com/' 8 | name 'Google' 9 | } 10 | } 11 | 12 | dependencies { 13 | classpath 'com.android.tools.build:gradle:7.2.1' 14 | } 15 | } 16 | 17 | allprojects { 18 | repositories { 19 | mavenCentral() 20 | maven { 21 | url 'https://maven.google.com/' 22 | name 'Google' 23 | } 24 | } 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/cpp/oboe/tests/UnitTestRunner/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Sep 27 15:12:10 BST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip 7 | -------------------------------------------------------------------------------- /android/app/src/main/cpp/oboe/tests/UnitTestRunner/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/metallic/chiaki/common/ext/RxLiveData.kt: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | package com.metallic.chiaki.common.ext 4 | 5 | import androidx.lifecycle.LiveDataReactiveStreams 6 | import io.reactivex.BackpressureStrategy 7 | import io.reactivex.Observable 8 | import io.reactivex.Single 9 | import org.reactivestreams.Publisher 10 | 11 | fun Publisher.toLiveData() = LiveDataReactiveStreams.fromPublisher(this) 12 | fun Observable.toLiveData() = this.toFlowable(BackpressureStrategy.LATEST).toLiveData() 13 | fun Single.toLiveData() = this.toFlowable().toLiveData() -------------------------------------------------------------------------------- /android/app/src/main/java/com/metallic/chiaki/common/ext/StringHex.kt: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | package com.metallic.chiaki.common.ext 4 | 5 | fun String.hexToByteArray(): ByteArray? = ByteArray(this.length / 2) { 6 | this.substring(it * 2, it * 2 + 2).toIntOrNull(16)?.toByte() ?: return null 7 | } -------------------------------------------------------------------------------- /android/app/src/main/java/com/metallic/chiaki/common/ext/ViewGroupInflate.kt: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | package com.metallic.chiaki.common.ext 4 | 5 | import android.view.LayoutInflater 6 | import android.view.View 7 | import android.view.ViewGroup 8 | import androidx.annotation.LayoutRes 9 | 10 | fun ViewGroup.inflate(@LayoutRes layoutRes: Int, attachToRoot: Boolean = false): View 11 | { 12 | return LayoutInflater.from(context).inflate(layoutRes, this, attachToRoot) 13 | } -------------------------------------------------------------------------------- /android/app/src/main/java/com/metallic/chiaki/common/ext/ViewModelFactory.kt: -------------------------------------------------------------------------------- 1 | package com.metallic.chiaki.common.ext 2 | 3 | import androidx.lifecycle.ViewModel 4 | import androidx.lifecycle.ViewModelProvider 5 | 6 | inline fun viewModelFactory(crossinline f: () -> T) = 7 | object : ViewModelProvider.Factory 8 | { 9 | @Suppress("UNCHECKED_CAST") 10 | override fun create(aClass: Class): T = f() as T 11 | } -------------------------------------------------------------------------------- /android/app/src/main/java/com/metallic/chiaki/regist/RegistViewModel.kt: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | package com.metallic.chiaki.regist 4 | 5 | import androidx.lifecycle.MutableLiveData 6 | import androidx.lifecycle.ViewModel 7 | 8 | class RegistViewModel: ViewModel() 9 | { 10 | enum class ConsoleVersion { 11 | PS5, 12 | PS4_GE_8, 13 | PS4_GE_7, 14 | PS4_LT_7; 15 | 16 | val isPS5 get() = this == PS5 17 | } 18 | 19 | val ps4Version = MutableLiveData(ConsoleVersion.PS5) 20 | } -------------------------------------------------------------------------------- /android/app/src/main/java/com/metallic/chiaki/settings/SettingsViewModel.kt: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | package com.metallic.chiaki.settings 4 | 5 | import androidx.lifecycle.ViewModel 6 | import com.metallic.chiaki.common.AppDatabase 7 | import com.metallic.chiaki.common.Preferences 8 | import com.metallic.chiaki.common.ext.toLiveData 9 | 10 | class SettingsViewModel(val database: AppDatabase, val preferences: Preferences): ViewModel() 11 | { 12 | val registeredHostsCount by lazy { 13 | database.registeredHostDao().count().toLiveData() 14 | } 15 | 16 | val bitrateAuto by lazy { 17 | preferences.bitrateAutoObservable.toLiveData() 18 | } 19 | } -------------------------------------------------------------------------------- /android/app/src/main/java/com/metallic/chiaki/touchcontrols/ControlsBackgroundView.kt: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | package com.metallic.chiaki.touchcontrols 4 | 5 | import android.content.Context 6 | import android.util.AttributeSet 7 | import android.view.MotionEvent 8 | import android.view.View 9 | 10 | class ControlsBackgroundView @JvmOverloads constructor( 11 | context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 12 | ) : View(context, attrs, defStyleAttr) 13 | { 14 | override fun onTouchEvent(event: MotionEvent) = true 15 | } -------------------------------------------------------------------------------- /android/app/src/main/res/color/mage_text_input_box_stroke.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/color/stream_material_button_icon_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_analog_stick_base.xml: -------------------------------------------------------------------------------- 1 | 6 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_analog_stick_handle.xml: -------------------------------------------------------------------------------- 1 | 6 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_cross.xml: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_cross_pressed.xml: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_home.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_home_pressed.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_l1.xml: -------------------------------------------------------------------------------- 1 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_l1_pressed.xml: -------------------------------------------------------------------------------- 1 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_pyramid.xml: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_button_pyramid_pressed.xml: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_touchpad.xml: -------------------------------------------------------------------------------- 1 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/control_touchpad_pressed.xml: -------------------------------------------------------------------------------- 1 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_button_haptic.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_console.xml: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_console_simple.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_delete_row.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_discover_off.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_discover_on.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_discovered_on_secondary.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_display_normal.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_display_stretch.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_display_zoom.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_export.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_gamepad.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_host.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_import.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_log.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_motion.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_overflow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_pin.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_psn_id.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_register.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_resolution.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_rumble.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/ic_triangle.xml: -------------------------------------------------------------------------------- 1 | 6 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon_setting_cutout_mode.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon_touch_key.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon_touch_tap.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/selector_add_fab.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 11 | 12 | 13 | 17 | 18 | 19 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /android/app/src/main/res/layout/dialog_login_pin.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /android/app/src/main/res/layout/dropdown_menu_popup_item.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /android/app/src/main/res/menu/display_host.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/atv_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-xhdpi/atv_banner.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #162d50 4 | #000128 5 | #ffaaee 6 | 7 | @android:color/white 8 | @android:color/black 9 | #77000000 10 | 11 | #fafafa 12 | #333333 13 | 14 | #22ffffff 15 | #88ffffff 16 | 17 | #B71C1C 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 88dp 4 | 176dp 5 | 24dp 6 | 16dp 7 | 64dp 8 | 48dp 9 | 32dp 10 | 48dp 11 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #CFFF0D 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/xml/filepaths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext.kotlin_version = '1.8.0' 5 | repositories { 6 | google() 7 | jcenter() 8 | 9 | } 10 | dependencies { 11 | classpath 'com.android.tools.build:gradle:7.4.1' 12 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 13 | // NOTE: Do not place your application dependencies here; they belong 14 | // in the individual module build.gradle files 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | google() 21 | jcenter() 22 | 23 | } 24 | } 25 | 26 | task clean(type: Delete) { 27 | delete rootProject.buildDir 28 | } 29 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Feb 05 16:25:19 CET 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name='Chiaki' 3 | -------------------------------------------------------------------------------- /assets/.gitignore: -------------------------------------------------------------------------------- 1 | screenshots 2 | chiaki_square.png 3 | chiaki_function.png 4 | -------------------------------------------------------------------------------- /assets/chiaki_wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/assets/chiaki_wide.png -------------------------------------------------------------------------------- /assets/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/assets/ic_launcher-web.png -------------------------------------------------------------------------------- /assets/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/assets/screenshot.png -------------------------------------------------------------------------------- /cli/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | set(SOURCE 3 | include/chiaki-cli.h 4 | src/discover.c 5 | src/wakeup.c) 6 | 7 | add_library(chiaki-cli-lib STATIC ${SOURCE}) 8 | target_include_directories(chiaki-cli-lib PUBLIC "include") 9 | target_link_libraries(chiaki-cli-lib chiaki-lib) 10 | 11 | if(CHIAKI_CLI_ARGP_STANDALONE) 12 | find_package(Argp REQUIRED) 13 | target_link_libraries(chiaki-cli-lib Argp::Argp) 14 | endif() 15 | 16 | add_executable(chiaki-cli src/main.c) 17 | target_link_libraries(chiaki-cli chiaki-cli-lib) 18 | install(TARGETS chiaki-cli) 19 | -------------------------------------------------------------------------------- /cli/include/chiaki-cli.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_CHIAKI_CLI_H 4 | #define CHIAKI_CHIAKI_CLI_H 5 | 6 | #include 7 | #include 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | CHIAKI_EXPORT int chiaki_cli_cmd_discover(ChiakiLog *log, int argc, char *argv[]); 14 | CHIAKI_EXPORT int chiaki_cli_cmd_wakeup(ChiakiLog *log, int argc, char *argv[]); 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | 20 | #endif //CHIAKI_CHIAKI_CLI_H 21 | -------------------------------------------------------------------------------- /cmake/FindArgp.cmake: -------------------------------------------------------------------------------- 1 | # FindArgp 2 | # Will define Target Argp::Argp 3 | 4 | find_path(Argp_INCLUDE_DIR 5 | NAMES argp.h) 6 | 7 | find_library(Argp_LIBRARY 8 | NAMES argp) 9 | 10 | include(FindPackageHandleStandardArgs) 11 | find_package_handle_standard_args(Argp 12 | REQUIRED_VARS Argp_LIBRARY Argp_INCLUDE_DIR) 13 | 14 | if(Argp_FOUND AND NOT TARGET Argp::Argp) 15 | add_library(Argp::Argp UNKNOWN IMPORTED) 16 | set_target_properties(Argp::Argp PROPERTIES 17 | IMPORTED_LOCATION "${Argp_LIBRARY}" 18 | INTERFACE_INCLUDE_DIRECTORIES "${Argp_INCLUDE_DIR}") 19 | endif() 20 | 21 | -------------------------------------------------------------------------------- /cmake/FindNanopb.cmake: -------------------------------------------------------------------------------- 1 | # Provides Nanopb::nanopb and NANOPB_GENERATOR_PY 2 | 3 | find_package(nanopb CONFIG) 4 | find_file(NANOPB_GENERATOR_PY nanopb_generator.py PATH_SUFFIXES bin) 5 | 6 | include(FindPackageHandleStandardArgs) 7 | find_package_handle_standard_args(Nanopb 8 | FOUND_VAR Nanopb_FOUND 9 | REQUIRED_VARS 10 | nanopb_FOUND 11 | NANOPB_GENERATOR_PY 12 | ) 13 | 14 | if(Nanopb_FOUND) 15 | if(NOT TARGET Nanopb::nanopb) 16 | add_library(Nanopb::nanopb ALIAS nanopb::protobuf-nanopb-static) 17 | endif() 18 | endif() 19 | -------------------------------------------------------------------------------- /cmake/FindOpus.cmake: -------------------------------------------------------------------------------- 1 | # Opus_FOUND 2 | # Opus_INCLUDE_DIRS 3 | # Opus_LIBRARIES 4 | 5 | find_path(Opus_INCLUDE_DIRS 6 | NAMES opus/opus.h 7 | PATH_SUFFIXES include 8 | ) 9 | 10 | find_library(Opus_LIBRARIES NAMES opus) 11 | 12 | include(FindPackageHandleStandardArgs) 13 | find_package_handle_standard_args(Opus 14 | DEFAULT_MSG 15 | Opus_INCLUDE_DIRS Opus_LIBRARIES 16 | ) 17 | -------------------------------------------------------------------------------- /gui/chiaki.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Chiaki 4 | Comment=PlayStation Remote Play Client 5 | Exec=chiaki 6 | Icon=chiaki 7 | Categories=Game; 8 | -------------------------------------------------------------------------------- /gui/chiaki.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/gui/chiaki.icns -------------------------------------------------------------------------------- /gui/chiaki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/gui/chiaki.png -------------------------------------------------------------------------------- /gui/include/avopenglframeuploader.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_AVOPENGLFRAMEUPLOADER_H 4 | #define CHIAKI_AVOPENGLFRAMEUPLOADER_H 5 | 6 | #include 7 | #include 8 | 9 | #include 10 | 11 | class StreamSession; 12 | class AVOpenGLWidget; 13 | class QSurface; 14 | 15 | class AVOpenGLFrameUploader: public QObject 16 | { 17 | Q_OBJECT 18 | 19 | private: 20 | StreamSession *session; 21 | AVOpenGLWidget *widget; 22 | QOpenGLContext *context; 23 | QSurface *surface; 24 | 25 | private slots: 26 | void UpdateFrameFromDecoder(); 27 | 28 | public: 29 | AVOpenGLFrameUploader(StreamSession *session, AVOpenGLWidget *widget, QOpenGLContext *context, QSurface *surface); 30 | }; 31 | 32 | #endif // CHIAKI_AVOPENGLFRAMEUPLOADER_H 33 | -------------------------------------------------------------------------------- /gui/include/exception.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_EXCEPTION_H 4 | #define CHIAKI_EXCEPTION_H 5 | 6 | #include 7 | 8 | #include 9 | 10 | class Exception : public std::exception 11 | { 12 | private: 13 | QByteArray msg; 14 | 15 | public: 16 | explicit Exception(const QString &msg) : msg(msg.toLocal8Bit()) {} 17 | const char *what() const noexcept override { return msg.constData(); } 18 | }; 19 | 20 | #endif // CHIAKI_EXCEPTION_H 21 | -------------------------------------------------------------------------------- /gui/include/loginpindialog.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_LOGINPINDIALOG_H 4 | #define CHIAKI_LOGINPINDIALOG_H 5 | 6 | #include 7 | 8 | class QLineEdit; 9 | class QDialogButtonBox; 10 | 11 | class LoginPINDialog : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | private: 16 | QString pin; 17 | 18 | QLineEdit *pin_edit; 19 | QDialogButtonBox *button_box; 20 | 21 | void UpdateButtons(); 22 | 23 | public: 24 | explicit LoginPINDialog(bool incorrect, QWidget *parent = nullptr); 25 | 26 | QString GetPIN() { return pin; } 27 | }; 28 | 29 | #endif // CHIAKI_LOGINPINDIALOG_H 30 | -------------------------------------------------------------------------------- /gui/include/servericonwidget.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_SERVERICONWIDGET_H 4 | #define CHIAKI_SERVERICONWIDGET_H 5 | 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | class ServerIconWidget : public QWidget 12 | { 13 | Q_OBJECT 14 | 15 | private: 16 | bool ps5 = false; 17 | ChiakiDiscoveryHostState state = CHIAKI_DISCOVERY_HOST_STATE_UNKNOWN; 18 | QSvgRenderer svg_renderer; 19 | 20 | void LoadSvg(); 21 | 22 | protected: 23 | void paintEvent(QPaintEvent *event) override; 24 | 25 | public: 26 | explicit ServerIconWidget(QWidget *parent = nullptr); 27 | 28 | void SetState(bool ps5, ChiakiDiscoveryHostState state); 29 | }; 30 | 31 | #endif // CHIAKI_SERVERICONWIDGET_H 32 | -------------------------------------------------------------------------------- /gui/include/sessionlog.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_SESSIONLOG_H 4 | #define CHIAKI_SESSIONLOG_H 5 | 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | class QFile; 13 | class StreamSession; 14 | 15 | class SessionLog 16 | { 17 | friend class SessionLogPrivate; 18 | 19 | private: 20 | StreamSession *session; 21 | ChiakiLog log; 22 | QFile *file; 23 | QMutex file_mutex; 24 | 25 | void Log(ChiakiLogLevel level, const char *msg); 26 | 27 | public: 28 | SessionLog(StreamSession *session, uint32_t level_mask, const QString &filename); 29 | ~SessionLog(); 30 | 31 | ChiakiLog *GetChiakiLog() { return &log; } 32 | }; 33 | 34 | QString GetLogBaseDir(); 35 | QString CreateLogFilename(); 36 | 37 | #endif //CHIAKI_SESSIONLOG_H 38 | -------------------------------------------------------------------------------- /gui/include/settingskeycapturedialog.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_SETTINGSKEYCAPTUREDIALOG_H 4 | #define CHIAKI_SETTINGSKEYCAPTUREDIALOG_H 5 | 6 | #include 7 | 8 | class SettingsKeyCaptureDialog : public QDialog 9 | { 10 | Q_OBJECT 11 | 12 | signals: 13 | void KeyCaptured(Qt::Key); 14 | 15 | protected: 16 | void keyReleaseEvent(QKeyEvent *event) override; 17 | 18 | public: 19 | explicit SettingsKeyCaptureDialog(QWidget *parent = nullptr); 20 | }; 21 | 22 | #endif // CHIAKI_SETTINGSKEYCAPTUREDIALOG_H 23 | -------------------------------------------------------------------------------- /gui/include/transformmode.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_TRANSFORMMODE_H 4 | #define CHIAKI_TRANSFORMMODE_H 5 | 6 | enum class TransformMode { 7 | Fit, 8 | Zoom, 9 | Stretch 10 | }; 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /gui/res/add-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gui/res/discover-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gui/res/discover-off-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gui/res/resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | settings-20px.svg 4 | add-24px.svg 5 | discover-24px.svg 6 | discover-off-24px.svg 7 | chiaki.svg 8 | chiaki_macos.svg 9 | console-ps4.svg 10 | console-ps5.svg 11 | 12 | 13 | -------------------------------------------------------------------------------- /gui/res/settings-20px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/config.h.in: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_CONFIG_H 4 | #define CHIAKI_CONFIG_H 5 | 6 | #cmakedefine01 CHIAKI_LIB_ENABLE_OPUS 7 | #cmakedefine01 CHIAKI_LIB_ENABLE_PI_DECODER 8 | 9 | #endif // CHIAKI_CONFIG_H 10 | -------------------------------------------------------------------------------- /lib/include/chiaki/base64.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_BASE64_H 4 | #define CHIAKI_BASE64_H 5 | 6 | #include "common.h" 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #ifdef __cplusplus 13 | extern "C" { 14 | #endif 15 | 16 | CHIAKI_EXPORT ChiakiErrorCode chiaki_base64_encode(const uint8_t *in, size_t in_size, char *out, size_t out_size); 17 | CHIAKI_EXPORT ChiakiErrorCode chiaki_base64_decode(const char *in, size_t in_size, uint8_t *out, size_t *out_size); 18 | 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | 23 | #endif // CHIAKI_BASE64_H 24 | -------------------------------------------------------------------------------- /lib/include/chiaki/config.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_CONFIG_H 4 | #define CHIAKI_CONFIG_H 5 | 6 | #define CHIAKI_LIB_ENABLE_OPUS 1 7 | #define CHIAKI_LIB_ENABLE_PI_DECODER 0 8 | 9 | #endif // CHIAKI_CONFIG_H 10 | -------------------------------------------------------------------------------- /lib/include/chiaki/fec.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_FEC_H 4 | #define CHIAKI_FEC_H 5 | 6 | #include "common.h" 7 | 8 | #include 9 | #ifndef _WIN32 10 | #include 11 | #endif 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | #define CHIAKI_FEC_WORDSIZE 8 18 | 19 | CHIAKI_EXPORT ChiakiErrorCode chiaki_fec_decode(uint8_t *frame_buf, size_t unit_size, size_t stride, unsigned int k, unsigned int m, const unsigned int *erasures, size_t erasures_count); 20 | 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | 25 | #endif //CHIAKI_FEC_H 26 | -------------------------------------------------------------------------------- /lib/include/chiaki/launchspec.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_LAUNCHSPEC_H 4 | #define CHIAKI_LAUNCHSPEC_H 5 | 6 | #include "common.h" 7 | 8 | #include 9 | #include 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | 15 | typedef struct chiaki_launch_spec_t 16 | { 17 | ChiakiTarget target; 18 | unsigned int mtu; 19 | unsigned int rtt; 20 | uint8_t *handshake_key; 21 | unsigned int width; 22 | unsigned int height; 23 | unsigned int max_fps; 24 | ChiakiCodec codec; 25 | unsigned int bw_kbps_sent; 26 | } ChiakiLaunchSpec; 27 | 28 | CHIAKI_EXPORT int chiaki_launchspec_format(char *buf, size_t buf_size, ChiakiLaunchSpec *launch_spec); 29 | 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | 34 | #endif // CHIAKI_LAUNCHSPEC_H 35 | -------------------------------------------------------------------------------- /lib/include/chiaki/random.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_RANDOM_H 4 | #define CHIAKI_RANDOM_H 5 | 6 | #include "common.h" 7 | 8 | #include 9 | #include 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | 15 | /** 16 | * Random for cryptography 17 | */ 18 | CHIAKI_EXPORT ChiakiErrorCode chiaki_random_bytes_crypt(uint8_t *buf, size_t buf_size); 19 | 20 | CHIAKI_EXPORT uint32_t chiaki_random_32(); 21 | 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | 26 | #endif // CHIAKI_RANDOM_H 27 | -------------------------------------------------------------------------------- /lib/include/chiaki/time.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_TIME_H 4 | #define CHIAKI_TIME_H 5 | 6 | #include "common.h" 7 | 8 | #include 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | CHIAKI_EXPORT uint64_t chiaki_time_now_monotonic_us(); 15 | 16 | static inline uint64_t chiaki_time_now_monotonic_ms() { return chiaki_time_now_monotonic_us() / 1000; } 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif // CHIAKI_TIME_H 23 | -------------------------------------------------------------------------------- /lib/include/chiaki/video.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_VIDEO_H 4 | #define CHIAKI_VIDEO_H 5 | 6 | #include 7 | #include 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | typedef struct chiaki_video_profile_t 14 | { 15 | unsigned int width; 16 | unsigned int height; 17 | size_t header_sz; 18 | uint8_t *header; 19 | } ChiakiVideoProfile; 20 | 21 | /** 22 | * Padding for FFMPEG 23 | */ 24 | #define CHIAKI_VIDEO_BUFFER_PADDING_SIZE 64 25 | 26 | #ifdef __cplusplus 27 | } 28 | #endif 29 | 30 | #endif // CHIAKI_VIDEO_H 31 | -------------------------------------------------------------------------------- /lib/src/sock.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #include 4 | #include 5 | 6 | CHIAKI_EXPORT ChiakiErrorCode chiaki_socket_set_nonblock(chiaki_socket_t sock, bool nonblock) 7 | { 8 | #ifdef _WIN32 9 | u_long nbio = nonblock ? 1 : 0; 10 | if(ioctlsocket(sock, FIONBIO, &nbio) != NO_ERROR) 11 | return CHIAKI_ERR_UNKNOWN; 12 | #else 13 | int flags = fcntl(sock, F_GETFL, 0); 14 | if(flags == -1) 15 | return CHIAKI_ERR_UNKNOWN; 16 | flags = nonblock ? (flags | O_NONBLOCK) : (flags & ~O_NONBLOCK); 17 | if(fcntl(sock, F_SETFL, flags) == -1) 18 | return CHIAKI_ERR_UNKNOWN; 19 | #endif 20 | return CHIAKI_ERR_SUCCESS; 21 | } -------------------------------------------------------------------------------- /lib/src/time.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #include 4 | 5 | #include 6 | 7 | #ifdef _WIN32 8 | #include 9 | #endif 10 | 11 | CHIAKI_EXPORT uint64_t chiaki_time_now_monotonic_us() 12 | { 13 | #if _WIN32 14 | LARGE_INTEGER f; 15 | if(!QueryPerformanceFrequency(&f)) 16 | return 0; 17 | LARGE_INTEGER v; 18 | if(!QueryPerformanceCounter(&v)) 19 | return 0; 20 | v.QuadPart *= 1000000; 21 | v.QuadPart /= f.QuadPart; 22 | return v.QuadPart; 23 | #else 24 | struct timespec time; 25 | clock_gettime(CLOCK_MONOTONIC, &time); 26 | return time.tv_sec * 1000000 + time.tv_nsec / 1000; 27 | #endif 28 | } 29 | -------------------------------------------------------------------------------- /scripts/Dockerfile.bionic: -------------------------------------------------------------------------------- 1 | 2 | FROM ubuntu:bionic 3 | 4 | RUN apt-get update 5 | RUN apt-get install -y software-properties-common gpg wget 6 | RUN add-apt-repository ppa:beineri/opt-qt-5.12.10-bionic 7 | COPY kitware-archive-latest.asc /kitware-archive-latest.asc 8 | RUN cat /kitware-archive-latest.asc | gpg --dearmor > /usr/share/keyrings/kitware-archive-keyring.gpg 9 | RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' > /etc/apt/sources.list.d/kitware.list 10 | RUN apt-get update 11 | RUN apt-get -y install git g++ cmake ninja-build curl pkg-config unzip python3-pip \ 12 | libssl-dev libopus-dev qt512base qt512multimedia qt512svg \ 13 | libgl1-mesa-dev nasm libudev-dev libva-dev fuse libevdev-dev libudev-dev 14 | 15 | CMD [] 16 | 17 | -------------------------------------------------------------------------------- /scripts/Dockerfile.bullseye: -------------------------------------------------------------------------------- 1 | 2 | FROM debian:bullseye 3 | 4 | RUN apt-get update 5 | RUN apt-get -y install git g++ cmake ninja-build pkg-config \ 6 | libjerasure-dev nanopb libnanopb-dev libavcodec-dev libopus-dev \ 7 | libssl-dev protobuf-compiler python3 python3-protobuf \ 8 | libevdev-dev libudev-dev \ 9 | libqt5opengl5-dev libqt5svg5-dev qtmultimedia5-dev libsdl2-dev 10 | 11 | CMD [] 12 | 13 | -------------------------------------------------------------------------------- /scripts/build-common.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # purge leftover proto/nanopb_pb2.py which may have been created with another protobuf version 4 | rm -fv third-party/nanopb/generator/proto/nanopb_pb2.py 5 | 6 | mkdir build && cd build || exit 1 7 | cmake \ 8 | -DCMAKE_BUILD_TYPE=Release \ 9 | -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH \ 10 | -DCHIAKI_ENABLE_TESTS=ON \ 11 | -DCHIAKI_ENABLE_CLI=OFF \ 12 | -DCHIAKI_GUI_ENABLE_SDL_GAMECONTROLLER=ON \ 13 | $CMAKE_EXTRA_ARGS \ 14 | .. || exit 1 15 | make -j4 || exit 1 16 | test/chiaki-unit || exit 1 17 | 18 | -------------------------------------------------------------------------------- /scripts/build-ffmpeg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd $(dirname "${BASH_SOURCE[0]}")/.. 4 | cd "./$1" 5 | shift 6 | ROOT="`pwd`" 7 | 8 | TAG=n4.3.1 9 | 10 | git clone https://git.ffmpeg.org/ffmpeg.git --depth 1 -b $TAG && cd ffmpeg || exit 1 11 | 12 | ./configure --disable-all --enable-avcodec --enable-decoder=h264 --enable-decoder=hevc --enable-hwaccel=h264_vaapi --enable-hwaccel=hevc_vaapi --prefix="$ROOT/ffmpeg-prefix" "$@" || exit 1 13 | make -j4 || exit 1 14 | make install || exit 1 15 | -------------------------------------------------------------------------------- /scripts/docker-run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run \ 4 | -v $HOME/.local/share/Chiaki:/home/ps4/.local/share/Chiaki \ 5 | -v $HOME/.config/Chiaki:/home/ps4/.config/Chiaki \ 6 | -v /tmp/.X11-unix:/tmp/.X11-unix \ 7 | --net host \ 8 | -e DISPLAY=$DISPLAY \ 9 | --device /dev/snd \ 10 | --name chiaki \ 11 | --rm \ 12 | thestr4ng3r/chiaki 13 | 14 | -------------------------------------------------------------------------------- /scripts/fetch-protoc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -xe 4 | 5 | cd $(dirname "${BASH_SOURCE[0]}")/.. 6 | cd "./$1" 7 | ROOT="`pwd`" 8 | 9 | URL=https://github.com/protocolbuffers/protobuf/releases/download/v3.9.1/protoc-3.9.1-linux-x86_64.zip 10 | 11 | curl -L "$URL" -o protoc.zip 12 | unzip protoc.zip -d protoc 13 | 14 | -------------------------------------------------------------------------------- /scripts/macos-dist-local.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Build Chiaki for macOS distribution using dependencies from MacPorts and custom ffmpeg 4 | 5 | set -xe 6 | cd $(dirname "${BASH_SOURCE[0]}")/.. 7 | scripts/build-ffmpeg.sh 8 | export CMAKE_PREFIX_PATH="`pwd`/ffmpeg-prefix" 9 | scripts/build-common.sh 10 | cp -a build/gui/chiaki.app Chiaki.app 11 | /opt/local/libexec/qt5/bin/macdeployqt Chiaki.app 12 | 13 | # Remove all LC_RPATH load commands that have absolute paths of the build machine 14 | RPATHS=$(otool -l Chiaki.app/Contents/MacOS/chiaki | grep -A 2 LC_RPATH | grep 'path /' | awk '{print $2}') 15 | for p in ${RPATHS}; do install_name_tool -delete_rpath "$p" Chiaki.app/Contents/MacOS/chiaki; done 16 | 17 | # This may warn because we already ran macdeployqt above 18 | /opt/local/libexec/qt5/bin/macdeployqt Chiaki.app -dmg 19 | -------------------------------------------------------------------------------- /scripts/run-podman-build-appimage.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -xe 4 | cd "`dirname $(readlink -f ${0})`" 5 | 6 | podman build -t chiaki-bionic . -f Dockerfile.bionic 7 | cd .. 8 | podman run --rm \ 9 | -v "`pwd`:/build/chiaki" \ 10 | -w "/build/chiaki" \ 11 | --device /dev/fuse \ 12 | --cap-add SYS_ADMIN \ 13 | -t chiaki-bionic \ 14 | /bin/bash -c "scripts/build-appimage.sh /build/appdir" 15 | 16 | -------------------------------------------------------------------------------- /scripts/run-podman-build-bullseye.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -xe 4 | cd "`dirname $(readlink -f ${0})`" 5 | 6 | podman build -t chiaki-bullseye . -f Dockerfile.bullseye 7 | cd .. 8 | podman run --rm -v "`pwd`:/build" chiaki-bullseye /bin/bash -c " 9 | cd /build && 10 | rm -fv third-party/nanopb/generator/proto/nanopb_pb2.py && 11 | mkdir build_bullseye && 12 | cmake -Bbuild_bullseye -GNinja -DCHIAKI_USE_SYSTEM_JERASURE=ON -DCHIAKI_USE_SYSTEM_NANOPB=ON && 13 | ninja -C build_bullseye && 14 | ninja -C build_bullseye test" 15 | 16 | -------------------------------------------------------------------------------- /scripts/switch/push-podman-build-chiaki.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd "`dirname $(readlink -f ${0})`/../.." 4 | 5 | docker run \ 6 | -v "`pwd`:/build/chiaki" \ 7 | -w "/build/chiaki" \ 8 | -ti -p 28771:28771 \ 9 | --entrypoint /opt/devkitpro/tools/bin/nxlink \ 10 | thestr4ng3r/chiaki-build-switch \ 11 | "$@" -s /build/chiaki/build_switch/switch/chiaki.nro 12 | 13 | -------------------------------------------------------------------------------- /scripts/switch/run-podman-build-chiaki.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd "`dirname $(readlink -f ${0})`/../.." 4 | 5 | podman run --rm \ 6 | -v "`pwd`:/build/chiaki" \ 7 | -w "/build/chiaki" \ 8 | -it \ 9 | thestr4ng3r/chiaki-build-switch:v2 \ 10 | ${1:-/bin/bash -c "scripts/switch/build.sh"} 11 | -------------------------------------------------------------------------------- /setsu/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.2) 3 | 4 | project(libsetsu) 5 | 6 | option(SETSU_BUILD_DEMOS "Build testing executables for libsetsu" OFF) 7 | 8 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 9 | 10 | add_library(setsu 11 | include/setsu.h 12 | src/setsu.c) 13 | 14 | target_include_directories(setsu PUBLIC include) 15 | 16 | find_package(Udev REQUIRED) 17 | find_package(Evdev REQUIRED) 18 | target_link_libraries(setsu Udev::libudev Evdev::libevdev) 19 | 20 | if(SETSU_BUILD_DEMOS) 21 | add_executable(setsu-demo-touchpad demo/touchpad.c) 22 | target_link_libraries(setsu-demo-touchpad setsu) 23 | add_executable(setsu-demo-motion demo/motion.c) 24 | target_link_libraries(setsu-demo-motion setsu) 25 | endif() 26 | 27 | -------------------------------------------------------------------------------- /switch/include/exception.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_EXCEPTION_H 4 | #define CHIAKI_EXCEPTION_H 5 | 6 | #include 7 | 8 | #include 9 | 10 | class Exception : public std::exception 11 | { 12 | private: 13 | const char *msg; 14 | 15 | public: 16 | explicit Exception(const char *msg) : msg(msg) {} 17 | const char *what() const noexcept override { return msg; } 18 | }; 19 | 20 | #endif // CHIAKI_EXCEPTION_H 21 | -------------------------------------------------------------------------------- /switch/nro_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/switch/nro_icon.jpg -------------------------------------------------------------------------------- /switch/nro_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/switch/nro_icon.png -------------------------------------------------------------------------------- /switch/res/add-24px.svg: -------------------------------------------------------------------------------- 1 | ../../gui/res/add-24px.svg -------------------------------------------------------------------------------- /switch/res/console.svg: -------------------------------------------------------------------------------- 1 | ../../assets/console.svg -------------------------------------------------------------------------------- /switch/res/discover-24px.svg: -------------------------------------------------------------------------------- 1 | ../../gui/res/discover-24px.svg -------------------------------------------------------------------------------- /switch/res/discover-off-24px.svg: -------------------------------------------------------------------------------- 1 | ../../gui/res/discover-off-24px.svg -------------------------------------------------------------------------------- /switch/res/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Axixi2233/chiaki-android/ac69b4cf6909afc23b448c91a5ddffe2c6f9c3ac/switch/res/icon.png -------------------------------------------------------------------------------- /switch/res/settings-20px.svg: -------------------------------------------------------------------------------- 1 | ../../gui/res/settings-20px.svg -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | add_library(munit "${CMAKE_CURRENT_SOURCE_DIR}/munit/munit.c") 3 | target_include_directories(munit PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/munit") 4 | 5 | add_executable(chiaki-unit 6 | main.c 7 | http.c 8 | rpcrypt.c 9 | gkcrypt.c 10 | takion.c 11 | seqnum.c 12 | keystate.c 13 | reorderqueue.c 14 | fec.c 15 | test_log.c 16 | test_log.h 17 | regist.c) 18 | 19 | target_link_libraries(chiaki-unit chiaki-lib munit) 20 | 21 | add_test(unit chiaki-unit) 22 | -------------------------------------------------------------------------------- /test/test_log.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #include "test_log.h" 4 | 5 | #include 6 | 7 | static bool initialized = false; 8 | static ChiakiLog log_quiet; 9 | 10 | ChiakiLog *get_test_log() 11 | { 12 | if(!initialized) 13 | chiaki_log_init(&log_quiet, 0, NULL, NULL); 14 | return &log_quiet; 15 | } -------------------------------------------------------------------------------- /test/test_log.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL 2 | 3 | #ifndef CHIAKI_TEST_LOG_H 4 | #define CHIAKI_TEST_LOG_H 5 | 6 | #include 7 | 8 | ChiakiLog *get_test_log(); 9 | 10 | #endif // CHIAKI_LOG_QUIET_H 11 | --------------------------------------------------------------------------------