├── .htaccess ├── README.md ├── stutter-android ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── scorelab │ │ │ └── stutterAid │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── scorelab │ │ │ └── stutterAid │ │ │ ├── MainActivity.java │ │ │ ├── TestDataActivity.java │ │ │ └── UploadHandler.java │ │ ├── jni │ │ ├── Android.mk │ │ ├── Application.mk │ │ ├── FrequencyDomain.cpp │ │ └── Superpowered │ │ │ ├── Superpowered3BandEQ.h │ │ │ ├── SuperpoweredAdvancedAudioPlayer.h │ │ │ ├── SuperpoweredAnalyzer.h │ │ │ ├── SuperpoweredAndroidAudioIO.cpp │ │ │ ├── SuperpoweredAndroidAudioIO.h │ │ │ ├── SuperpoweredAudioBuffers.h │ │ │ ├── SuperpoweredBandpassFilterbank.h │ │ │ ├── SuperpoweredDecoder.h │ │ │ ├── SuperpoweredEcho.h │ │ │ ├── SuperpoweredFFT.h │ │ │ ├── SuperpoweredFX.h │ │ │ ├── SuperpoweredFilter.h │ │ │ ├── SuperpoweredFlanger.h │ │ │ ├── SuperpoweredFrequencyDomain.h │ │ │ ├── SuperpoweredGate.h │ │ │ ├── SuperpoweredIOSAudioOutput.h │ │ │ ├── SuperpoweredIOSAudioOutput.mm │ │ │ ├── SuperpoweredMixer.h │ │ │ ├── SuperpoweredOSXAudioIO.h │ │ │ ├── SuperpoweredOSXAudioIO.mm │ │ │ ├── SuperpoweredRecorder.h │ │ │ ├── SuperpoweredResampler.h │ │ │ ├── SuperpoweredReverb.h │ │ │ ├── SuperpoweredRoll.h │ │ │ ├── SuperpoweredSimple.h │ │ │ ├── SuperpoweredTimeStretching.h │ │ │ ├── SuperpoweredWhoosh.h │ │ │ ├── libSuperpoweredARM.a │ │ │ ├── libSuperpoweredARM64.a │ │ │ ├── libSuperpoweredAudio.a │ │ │ └── libSuperpoweredX86.a │ │ └── res │ │ ├── layout │ │ ├── activity_main.xml │ │ └── activity_test_data.xml │ │ ├── menu │ │ ├── menu_main.xml │ │ └── menu_test_data.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── stutter-android.iml └── stutter-web ├── .gitignore ├── .htaccess ├── README.md ├── application ├── .htaccess ├── cache │ ├── .htaccess │ └── index.html ├── config │ ├── autoload.php │ ├── config.php │ ├── constants.php │ ├── database.php │ ├── doctypes.php │ ├── foreign_chars.php │ ├── hooks.php │ ├── index.html │ ├── memcached.php │ ├── migration.php │ ├── mimes.php │ ├── profiler.php │ ├── routes.php │ ├── smileys.php │ └── user_agents.php ├── controllers │ ├── Api.php │ ├── Home.php │ ├── Uploads.php │ ├── Users.php │ └── index.html ├── core │ └── index.html ├── helpers │ └── index.html ├── hooks │ └── index.html ├── index.html ├── language │ ├── english │ │ └── index.html │ └── index.html ├── libraries │ └── index.html ├── logs │ └── index.html ├── models │ ├── Upload.php │ ├── User.php │ └── index.html ├── third_party │ └── index.html └── views │ ├── errors │ ├── cli │ │ ├── error_404.php │ │ ├── error_db.php │ │ ├── error_exception.php │ │ ├── error_general.php │ │ ├── error_php.php │ │ └── index.html │ ├── html │ │ ├── error_404.php │ │ ├── error_db.php │ │ ├── error_exception.php │ │ ├── error_general.php │ │ ├── error_php.php │ │ └── index.html │ └── index.html │ ├── footer.php │ ├── header.php │ ├── index.html │ ├── login.php │ ├── navbar.php │ ├── welcome_message.php │ └── welcome_page.php ├── composer.json ├── contributing.md ├── index.php ├── license.txt ├── public ├── css │ └── bootstrap.css └── img │ └── favicon-96x96.png ├── readme.rst ├── stutter-aid.sql ├── system ├── .htaccess ├── core │ ├── Benchmark.php │ ├── CodeIgniter.php │ ├── Common.php │ ├── Config.php │ ├── Controller.php │ ├── Exceptions.php │ ├── Hooks.php │ ├── Input.php │ ├── Lang.php │ ├── Loader.php │ ├── Log.php │ ├── Model.php │ ├── Output.php │ ├── Router.php │ ├── Security.php │ ├── URI.php │ ├── Utf8.php │ ├── compat │ │ ├── hash.php │ │ ├── index.html │ │ ├── mbstring.php │ │ ├── password.php │ │ └── standard.php │ └── index.html ├── database │ ├── DB.php │ ├── DB_cache.php │ ├── DB_driver.php │ ├── DB_forge.php │ ├── DB_query_builder.php │ ├── DB_result.php │ ├── DB_utility.php │ ├── drivers │ │ ├── cubrid │ │ │ ├── cubrid_driver.php │ │ │ ├── cubrid_forge.php │ │ │ ├── cubrid_result.php │ │ │ ├── cubrid_utility.php │ │ │ └── index.html │ │ ├── ibase │ │ │ ├── ibase_driver.php │ │ │ ├── ibase_forge.php │ │ │ ├── ibase_result.php │ │ │ ├── ibase_utility.php │ │ │ └── index.html │ │ ├── index.html │ │ ├── mssql │ │ │ ├── index.html │ │ │ ├── mssql_driver.php │ │ │ ├── mssql_forge.php │ │ │ ├── mssql_result.php │ │ │ └── mssql_utility.php │ │ ├── mysql │ │ │ ├── index.html │ │ │ ├── mysql_driver.php │ │ │ ├── mysql_forge.php │ │ │ ├── mysql_result.php │ │ │ └── mysql_utility.php │ │ ├── mysqli │ │ │ ├── index.html │ │ │ ├── mysqli_driver.php │ │ │ ├── mysqli_forge.php │ │ │ ├── mysqli_result.php │ │ │ └── mysqli_utility.php │ │ ├── oci8 │ │ │ ├── index.html │ │ │ ├── oci8_driver.php │ │ │ ├── oci8_forge.php │ │ │ ├── oci8_result.php │ │ │ └── oci8_utility.php │ │ ├── odbc │ │ │ ├── index.html │ │ │ ├── odbc_driver.php │ │ │ ├── odbc_forge.php │ │ │ ├── odbc_result.php │ │ │ └── odbc_utility.php │ │ ├── pdo │ │ │ ├── index.html │ │ │ ├── pdo_driver.php │ │ │ ├── pdo_forge.php │ │ │ ├── pdo_result.php │ │ │ ├── pdo_utility.php │ │ │ └── subdrivers │ │ │ │ ├── index.html │ │ │ │ ├── pdo_4d_driver.php │ │ │ │ ├── pdo_4d_forge.php │ │ │ │ ├── pdo_cubrid_driver.php │ │ │ │ ├── pdo_cubrid_forge.php │ │ │ │ ├── pdo_dblib_driver.php │ │ │ │ ├── pdo_dblib_forge.php │ │ │ │ ├── pdo_firebird_driver.php │ │ │ │ ├── pdo_firebird_forge.php │ │ │ │ ├── pdo_ibm_driver.php │ │ │ │ ├── pdo_ibm_forge.php │ │ │ │ ├── pdo_informix_driver.php │ │ │ │ ├── pdo_informix_forge.php │ │ │ │ ├── pdo_mysql_driver.php │ │ │ │ ├── pdo_mysql_forge.php │ │ │ │ ├── pdo_oci_driver.php │ │ │ │ ├── pdo_oci_forge.php │ │ │ │ ├── pdo_odbc_driver.php │ │ │ │ ├── pdo_odbc_forge.php │ │ │ │ ├── pdo_pgsql_driver.php │ │ │ │ ├── pdo_pgsql_forge.php │ │ │ │ ├── pdo_sqlite_driver.php │ │ │ │ ├── pdo_sqlite_forge.php │ │ │ │ ├── pdo_sqlsrv_driver.php │ │ │ │ └── pdo_sqlsrv_forge.php │ │ ├── postgre │ │ │ ├── index.html │ │ │ ├── postgre_driver.php │ │ │ ├── postgre_forge.php │ │ │ ├── postgre_result.php │ │ │ └── postgre_utility.php │ │ ├── sqlite │ │ │ ├── index.html │ │ │ ├── sqlite_driver.php │ │ │ ├── sqlite_forge.php │ │ │ ├── sqlite_result.php │ │ │ └── sqlite_utility.php │ │ ├── sqlite3 │ │ │ ├── index.html │ │ │ ├── sqlite3_driver.php │ │ │ ├── sqlite3_forge.php │ │ │ ├── sqlite3_result.php │ │ │ └── sqlite3_utility.php │ │ └── sqlsrv │ │ │ ├── index.html │ │ │ ├── sqlsrv_driver.php │ │ │ ├── sqlsrv_forge.php │ │ │ ├── sqlsrv_result.php │ │ │ └── sqlsrv_utility.php │ └── index.html ├── fonts │ ├── index.html │ └── texb.ttf ├── helpers │ ├── array_helper.php │ ├── captcha_helper.php │ ├── cookie_helper.php │ ├── date_helper.php │ ├── directory_helper.php │ ├── download_helper.php │ ├── email_helper.php │ ├── file_helper.php │ ├── form_helper.php │ ├── html_helper.php │ ├── index.html │ ├── inflector_helper.php │ ├── language_helper.php │ ├── number_helper.php │ ├── path_helper.php │ ├── security_helper.php │ ├── smiley_helper.php │ ├── string_helper.php │ ├── text_helper.php │ ├── typography_helper.php │ ├── url_helper.php │ └── xml_helper.php ├── index.html ├── language │ ├── english │ │ ├── calendar_lang.php │ │ ├── date_lang.php │ │ ├── db_lang.php │ │ ├── email_lang.php │ │ ├── form_validation_lang.php │ │ ├── ftp_lang.php │ │ ├── imglib_lang.php │ │ ├── index.html │ │ ├── migration_lang.php │ │ ├── number_lang.php │ │ ├── pagination_lang.php │ │ ├── profiler_lang.php │ │ ├── unit_test_lang.php │ │ └── upload_lang.php │ └── index.html └── libraries │ ├── Cache │ ├── Cache.php │ ├── drivers │ │ ├── Cache_apc.php │ │ ├── Cache_dummy.php │ │ ├── Cache_file.php │ │ ├── Cache_memcached.php │ │ ├── Cache_redis.php │ │ ├── Cache_wincache.php │ │ └── index.html │ └── index.html │ ├── Calendar.php │ ├── Cart.php │ ├── Driver.php │ ├── Email.php │ ├── Encrypt.php │ ├── Encryption.php │ ├── Form_validation.php │ ├── Ftp.php │ ├── Image_lib.php │ ├── Javascript.php │ ├── Javascript │ ├── Jquery.php │ └── index.html │ ├── Migration.php │ ├── Pagination.php │ ├── Parser.php │ ├── Profiler.php │ ├── Session │ ├── Session.php │ ├── SessionHandlerInterface.php │ ├── Session_driver.php │ ├── drivers │ │ ├── Session_database_driver.php │ │ ├── Session_files_driver.php │ │ ├── Session_memcached_driver.php │ │ ├── Session_redis_driver.php │ │ └── index.html │ └── index.html │ ├── Table.php │ ├── Trackback.php │ ├── Typography.php │ ├── Unit_test.php │ ├── Upload.php │ ├── User_agent.php │ ├── Xmlrpc.php │ ├── Xmlrpcs.php │ ├── Zip.php │ └── index.html ├── uploads ├── .htaccess ├── abcd.mp3 ├── abffcd.mp3 ├── audioFile.mp3 └── fffggg.mp3 └── user_guide ├── .buildinfo ├── DCO.html ├── _downloads └── ELDocs.tmbundle.zip ├── _images ├── appflowchart.gif └── smile.gif ├── _static ├── ajax-loader.gif ├── basic.css ├── ci-icon.ico ├── comment-bright.png ├── comment-close.png ├── comment.png ├── css │ ├── badge_only.css │ ├── citheme.css │ └── theme.css ├── doctools.js ├── down-pressed.png ├── down.png ├── file.png ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ └── fontawesome-webfont.woff ├── jquery.js ├── js │ ├── oldtheme.js │ └── theme.js ├── minus.png ├── plus.png ├── pygments.css ├── searchtools.js ├── underscore.js ├── up-pressed.png ├── up.png └── websupport.js ├── changelog.html ├── contributing └── index.html ├── database ├── caching.html ├── call_function.html ├── configuration.html ├── connecting.html ├── db_driver_reference.html ├── examples.html ├── forge.html ├── helpers.html ├── index.html ├── metadata.html ├── queries.html ├── query_builder.html ├── results.html ├── transactions.html └── utilities.html ├── documentation └── index.html ├── general ├── alternative_php.html ├── ancillary_classes.html ├── autoloader.html ├── caching.html ├── cli.html ├── common_functions.html ├── compatibility_functions.html ├── controllers.html ├── core_classes.html ├── creating_drivers.html ├── creating_libraries.html ├── credits.html ├── drivers.html ├── environments.html ├── errors.html ├── helpers.html ├── hooks.html ├── index.html ├── libraries.html ├── managing_apps.html ├── models.html ├── profiling.html ├── requirements.html ├── reserved_names.html ├── routing.html ├── security.html ├── styleguide.html ├── urls.html ├── views.html └── welcome.html ├── genindex.html ├── helpers ├── array_helper.html ├── captcha_helper.html ├── cookie_helper.html ├── date_helper.html ├── directory_helper.html ├── download_helper.html ├── email_helper.html ├── file_helper.html ├── form_helper.html ├── html_helper.html ├── index.html ├── inflector_helper.html ├── language_helper.html ├── number_helper.html ├── path_helper.html ├── security_helper.html ├── smiley_helper.html ├── string_helper.html ├── text_helper.html ├── typography_helper.html ├── url_helper.html └── xml_helper.html ├── index.html ├── installation ├── downloads.html ├── index.html ├── troubleshooting.html ├── upgrade_120.html ├── upgrade_130.html ├── upgrade_131.html ├── upgrade_132.html ├── upgrade_133.html ├── upgrade_140.html ├── upgrade_141.html ├── upgrade_150.html ├── upgrade_152.html ├── upgrade_153.html ├── upgrade_154.html ├── upgrade_160.html ├── upgrade_161.html ├── upgrade_162.html ├── upgrade_163.html ├── upgrade_170.html ├── upgrade_171.html ├── upgrade_172.html ├── upgrade_200.html ├── upgrade_201.html ├── upgrade_202.html ├── upgrade_203.html ├── upgrade_210.html ├── upgrade_211.html ├── upgrade_212.html ├── upgrade_213.html ├── upgrade_214.html ├── upgrade_220.html ├── upgrade_221.html ├── upgrade_222.html ├── upgrade_223.html ├── upgrade_300.html ├── upgrade_301.html ├── upgrade_b11.html └── upgrading.html ├── libraries ├── benchmark.html ├── caching.html ├── calendar.html ├── cart.html ├── config.html ├── email.html ├── encrypt.html ├── encryption.html ├── file_uploading.html ├── form_validation.html ├── ftp.html ├── image_lib.html ├── index.html ├── input.html ├── javascript.html ├── language.html ├── loader.html ├── migration.html ├── output.html ├── pagination.html ├── parser.html ├── security.html ├── sessions.html ├── table.html ├── trackback.html ├── typography.html ├── unit_testing.html ├── uri.html ├── user_agent.html ├── xmlrpc.html └── zip.html ├── license.html ├── objects.inv ├── overview ├── appflow.html ├── at_a_glance.html ├── features.html ├── getting_started.html ├── goals.html ├── index.html └── mvc.html ├── search.html ├── searchindex.js └── tutorial ├── conclusion.html ├── create_news_items.html ├── index.html ├── news_section.html └── static_pages.html /.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | RewriteCond %{REQUEST_FILENAME} !-f 3 | RewriteCond %{REQUEST_FILENAME} !-d 4 | RewriteRule .* index.php/$0 [PT,L] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Stutter Aid is an android project where it's aim is to help people who stutter by Delayed Auditory Feedback. Future implementations will also feature frequency shift + Delayed audio feedback. 2 | 3 | ####Building the stutter-android app 4 | 5 | * You need to have your Android ndk and sdk downloaded and setup correctly. 6 | * Add your sdk and ndk paths to your system variables 7 | * Open the app in Android studio and go to File->Project Structure->Add your ndk path and sdk paths correctly 8 | * If you have correctlty set these up, your paths will show in the local.properties file as below 9 | 10 | **For Windows** 11 | ``` 12 | ndk.dir=MYPATH\\AppData\\Local\\Android\\android-ndk-r10e 13 | sdk.dir=MYPATH\\AppData\\Local\\Android\\sdk 14 | ``` 15 | 16 | **For OS X ** 17 | ``` 18 | ndk.dir=/Users/usr/Library/Android/sdk/ndk-bundle 19 | sdk.dir=/Users/usr/Library/Android/sdk 20 | ``` 21 | 22 | * You can even run the ` ndk-build ` command through a terminal from the ` stutter-android ` project folder and build the jni files 23 | 24 | If the ndk-build command does not work, you need to do this: 25 | Go to 26 | ``` 27 | project -> app -> build.gradle 28 | ``` 29 | 30 | There, you will see something like this: 31 | 32 | ``` 33 | commandLine 'ndk-build', '-B', '-C', file('src/main/jni').absolutePath 34 | ``` 35 | or 36 | ``` 37 | commandLine 'ndk-build.cmd', '-B', '-C', file('src/main/jni').absolutePath 38 | ``` 39 | 40 | You have to change ` ndk-build ` to your ndk path in your system variable. Add a .cmd in the end only if you're on Windows. 41 | So finally it will look like: 42 | 43 | ``` 44 | commandLine '/Users/usr/Library/Android/sdk/ndk-bundle/ndk-build', '-B', '-C', file('src/main/jni').absolutePath 45 | ``` 46 | -------------------------------------------------------------------------------- /stutter-android/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /stutter-android/.idea/.name: -------------------------------------------------------------------------------- 1 | stutter-android -------------------------------------------------------------------------------- /stutter-android/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /stutter-android/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /stutter-android/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /stutter-android/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /stutter-android/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | -------------------------------------------------------------------------------- /stutter-android/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /stutter-android/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-android/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /stutter-android/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /src/main/obj 3 | /src/main/libs -------------------------------------------------------------------------------- /stutter-android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | 7 | packagingOptions { 8 | exclude 'META-INF/DEPENDENCIES.txt' 9 | exclude 'META-INF/DEPENDENCIES' 10 | exclude 'META-INF/dependencies.txt' 11 | exclude 'META-INF/LICENSE.txt' 12 | exclude 'META-INF/LICENSE' 13 | exclude 'META-INF/license.txt' 14 | exclude 'META-INF/LGPL2.1' 15 | exclude 'META-INF/NOTICE.txt' 16 | exclude 'META-INF/NOTICE' 17 | exclude 'META-INF/notice.txt' 18 | } 19 | 20 | defaultConfig { 21 | applicationId "com.scorelab.stutteraid" 22 | minSdkVersion 15 23 | targetSdkVersion 22 24 | versionCode 1 25 | versionName "1.0" 26 | 27 | sourceSets.main { 28 | jniLibs.srcDir 'src/main/libs' 29 | jni.srcDirs = [] 30 | } 31 | } 32 | 33 | task ndkBuild(type: Exec) { 34 | commandLine 'ndk-build.cmd', '-B', '-C', file('src/main/jni').absolutePath 35 | } 36 | tasks.withType(JavaCompile) { 37 | compileTask -> compileTask.dependsOn ndkBuild 38 | } 39 | 40 | 41 | buildTypes { 42 | release { 43 | minifyEnabled false 44 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 45 | } 46 | } 47 | } 48 | 49 | 50 | 51 | 52 | 53 | dependencies { 54 | compile fileTree(dir: 'libs', include: ['*.jar']) 55 | compile 'com.android.support:appcompat-v7:22.2.1' 56 | } 57 | -------------------------------------------------------------------------------- /stutter-android/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 E:\Android\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 | -------------------------------------------------------------------------------- /stutter-android/app/src/androidTest/java/com/scorelab/stutterAid/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.scorelab.stutteraid; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /stutter-android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | SUPERPOWERED_PATH := ./Superpowered 3 | 4 | include $(CLEAR_VARS) 5 | LOCAL_MODULE := Superpowered 6 | ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) 7 | LOCAL_SRC_FILES := $(SUPERPOWERED_PATH)/libSuperpoweredARM.a 8 | else 9 | ifeq ($(TARGET_ARCH_ABI),arm64-v8a) 10 | LOCAL_SRC_FILES := $(SUPERPOWERED_PATH)/libSuperpoweredARM64.a 11 | else 12 | LOCAL_SRC_FILES := $(SUPERPOWERED_PATH)/libSuperpoweredX86.a 13 | endif 14 | endif 15 | include $(PREBUILT_STATIC_LIBRARY) 16 | 17 | include $(CLEAR_VARS) 18 | LOCAL_MODULE := FrequencyDomain 19 | 20 | LOCAL_SRC_FILES := \ 21 | $(SUPERPOWERED_PATH)/SuperpoweredAndroidAudioIO.cpp \ 22 | FrequencyDomain.cpp 23 | LOCAL_C_INCLUDES += $(SUPERPOWERED_PATH) 24 | 25 | LOCAL_LDLIBS := -llog -landroid -lOpenSLES 26 | LOCAL_STATIC_LIBRARIES := Superpowered 27 | LOCAL_CFLAGS = -O3 28 | include $(BUILD_SHARED_LIBRARY) 29 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_PLATFORM := android-11 2 | APP_ABI := arm64-v8a armeabi-v7a x86 3 | NDK_TOOLCHAIN_VERSION := clang 4 | APP_OPTIM := release 5 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/Superpowered3BandEQ.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_Superpowered3BandEQ 2 | #define Header_Superpowered3BandEQ 3 | 4 | #include "SuperpoweredFX.h" 5 | struct eqInternals; 6 | 7 | /** 8 | @brief Classic three-band equalizer with unique characteristics and total kills. 9 | 10 | It doesn't allocate any internal buffers and needs just a few bytes of memory. 11 | 12 | @param bands Low/mid/high gain. Read-write. 1.0f is "flat", 2.0f is +6db. Kill is enabled under -40 db (0.01f). 13 | @param enabled True if the effect is enabled (processing audio). Read only. Use the enable() method to set. 14 | */ 15 | class Superpowered3BandEQ: public SuperpoweredFX { 16 | public: 17 | float bands[3]; // READ-WRITE parameter. 18 | 19 | /** 20 | @brief Turns the effect on/off. 21 | */ 22 | void enable(bool flag); 23 | 24 | /** 25 | @brief Create an eq instance with the current sample rate value. 26 | 27 | Enabled is false by default, use enable(true) to enable. Example: Superpowered3BandEQ eq = new Superpowered3BandEQ(44100); 28 | */ 29 | Superpowered3BandEQ(unsigned int samplerate); 30 | ~Superpowered3BandEQ(); 31 | 32 | /** 33 | @brief Sets the sample rate. 34 | 35 | @param samplerate 44100, 48000, etc. 36 | */ 37 | void setSamplerate(unsigned int samplerate); 38 | /** 39 | @brief Reset all internals, sets the instance as good as new and turns it off. 40 | */ 41 | void reset(); 42 | 43 | /** 44 | @brief Processes the audio. 45 | 46 | It's not locked when you call other methods from other threads, and they not interfere with process() at all. 47 | 48 | @return Put something into output or not. 49 | 50 | @param input 32-bit interleaved stereo input buffer. Can point to the same location with output (in-place processing). 51 | @param output 32-bit interleaved stereo output buffer. Can point to the same location with input (in-place processing). 52 | @param numberOfSamples Should be 20 minimum. 53 | */ 54 | bool process(float *input, float *output, unsigned int numberOfSamples); 55 | 56 | private: 57 | eqInternals *internals; 58 | Superpowered3BandEQ(const Superpowered3BandEQ&); 59 | Superpowered3BandEQ& operator=(const Superpowered3BandEQ&); 60 | }; 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredAndroidAudioIO.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredAndroidAudioIO 2 | #define Header_SuperpoweredAndroidAudioIO 3 | 4 | struct SuperpoweredAndroidAudioIOInternals; 5 | 6 | /** 7 | @brief This is the prototype of an audio processing callback function. 8 | 9 | If the application requires both audio input and audio output, this callback is called once (there is no separate audio input and audio output callback). Audio input is available in audioIO, and the application should change it's contents for audio output. 10 | 11 | @param clientdata A custom pointer your callback receives. 12 | @param audioIO 16-bit stereo interleaved audio input and/or output. 13 | @param numberOfSamples The number of samples received and/or requested. 14 | @param samplerate The current sample rate in Hz. 15 | */ 16 | typedef bool (*audioProcessingCallback) (void *clientdata, short int *audioIO, int numberOfSamples, int samplerate); 17 | 18 | /** 19 | @brief Easy handling of OpenSL ES audio input and/or output. 20 | */ 21 | class SuperpoweredAndroidAudioIO { 22 | public: 23 | /** 24 | @brief Creates an audio I/O instance. Audio input and/or output immediately starts after calling this. 25 | 26 | @param samplerate The requested sample rate in Hz. 27 | @param buffersize The requested buffer size (number of samples). 28 | @param enableInput Enable audio input. 29 | @param enableOutput Enable audio output. 30 | @param callback The audio processing callback function to call periodically. 31 | @param clientdata A custom pointer the callback receives. 32 | @param latencySamples How many samples to have in the internal fifo buffer minimum. Works only when both input and output are enabled. Might help if you have many dropouts. 33 | */ 34 | SuperpoweredAndroidAudioIO(int samplerate, int buffersize, bool enableInput, bool enableOutput, audioProcessingCallback callback, void *clientdata, int latencySamples = 0); 35 | ~SuperpoweredAndroidAudioIO(); 36 | 37 | /* 38 | @brief Call this in the main activity's onResume() method. 39 | 40 | Calling this is important if you'd like to save battery. When there is no audio playing and the app goes to the background, it will automatically stop audio input and/or output. 41 | */ 42 | void onForeground(); 43 | /* 44 | @brief Call this in the main activity's onPause() method. 45 | 46 | Calling this is important if you'd like to save battery. When there is no audio playing and the app goes to the background, it will automatically stop audio input and/or output. 47 | */ 48 | void onBackground(); 49 | /* 50 | @brief Starts audio input and/or output. 51 | */ 52 | void start(); 53 | /* 54 | @brief Stops audio input and/or output. 55 | */ 56 | void stop(); 57 | 58 | private: 59 | SuperpoweredAndroidAudioIOInternals *internals; 60 | SuperpoweredAndroidAudioIO(const SuperpoweredAndroidAudioIO&); 61 | SuperpoweredAndroidAudioIO& operator=(const SuperpoweredAndroidAudioIO&); 62 | }; 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredBandpassFilterbank.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredBandpassFilterBank 2 | #define Header_SuperpoweredBandpassFilterBank 3 | 4 | struct bandpassFilterbankInternals; 5 | 6 | /** 7 | @brief Efficient bandpass filter bank for real-time, zero latency frequency analysation. 8 | */ 9 | class SuperpoweredBandpassFilterbank { 10 | public: 11 | 12 | /** 13 | Create a filterbank instance. 14 | 15 | @param numBands The number of bands. Must be a multiply of 8. 16 | @param frequencies The center frequencies of the bands. 17 | @param widths The width of the bands. 1.0f is one octave, 1.0f / 12.0f is one halfnote. 18 | @param samplerate The initial sample rate. 19 | */ 20 | SuperpoweredBandpassFilterbank(int numBands, float *frequencies, float *widths, unsigned int samplerate); 21 | ~SuperpoweredBandpassFilterbank(); 22 | 23 | /** 24 | @brief Sets the sample rate. 25 | 26 | @param samplerate 44100, 48000, etc. 27 | */ 28 | void setSamplerate(unsigned int samplerate); 29 | 30 | /** 31 | @brief Processes the audio. 32 | 33 | @param input 32-bit interleaved stereo input buffer. 34 | @param bands Frequency band results (magnitudes) will be ADDED to these. For example: bands[0] += result[0] If you divide each with the number of samples, the result will be between 0.0f and 1.0f. 35 | @param peak Maximum absolute peak value. Will compare against the input value of peak too. For example: peak = max(peak, fabsf(all samples)) 36 | @param sum The cumulated absolute value will be ADDED to this. For example: sum += (sum of all fabsf(samples)) 37 | @param numberOfSamples The number of samples to process. 38 | */ 39 | void process(float *input, float *bands, float *peak, float *sum, unsigned int numberOfSamples); 40 | 41 | private: 42 | bandpassFilterbankInternals *internals; 43 | SuperpoweredBandpassFilterbank(const SuperpoweredBandpassFilterbank&); 44 | SuperpoweredBandpassFilterbank& operator=(const SuperpoweredBandpassFilterbank&); 45 | }; 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredEcho.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredEcho 2 | #define Header_SuperpoweredEcho 3 | 4 | #include "SuperpoweredFX.h" 5 | struct echoInternals; 6 | 7 | /** 8 | @brief Simple echo. 9 | 10 | One instance allocates around 770 kb memory. 11 | 12 | @param dry >= 0.0f and <= 1.0f. Read only. 13 | @param wet >= 0.0f and <= 1.0f. Read only. 14 | @param bpm >= 60.0f and <= 240.0f. Read-write. 15 | @param beats Delay in beats, >= 0.125f and <= 2.0f. Read-write. 16 | @param decay >= 0.0f and <= 1.0f. Read-write. 17 | */ 18 | class SuperpoweredEcho: public SuperpoweredFX { 19 | public: 20 | // READ ONLY parameters, don't set them directly, use the methods below. 21 | float dry, wet; 22 | 23 | // READ-WRITE PARAMETERS: 24 | float bpm; 25 | float beats; 26 | float decay; 27 | 28 | /** 29 | @brief Wet is always == mix, but dry changes with a nice curve for a good echo/dry balance. 30 | 31 | @param mix >= 0.0f and <= 1.0f. 32 | */ 33 | void setMix(float mix); 34 | /** 35 | @brief Turns the effect on/off. 36 | */ 37 | void enable(bool flag); 38 | 39 | /** 40 | @brief Create an echo instance with the current sample rate value. 41 | 42 | Enabled is false by default, use enable(true) to enable. 43 | */ 44 | SuperpoweredEcho(unsigned int samplerate); 45 | ~SuperpoweredEcho(); 46 | 47 | /** 48 | @brief Sets the sample rate. 49 | 50 | @param samplerate 44100, 48000, etc. 51 | */ 52 | void setSamplerate(unsigned int samplerate); // 44100, 48000, etc. 53 | /** 54 | @brief Reset all internals, sets the instance as good as new and turns it off. 55 | */ 56 | void reset(); 57 | 58 | /** 59 | @brief Processes the audio. 60 | 61 | It's not locked when you call other methods from other threads, and they not interfere with process() at all. 62 | 63 | @return Put something into output or not. 64 | 65 | @param input 32-bit interleaved stereo input buffer. Can point to the same location with output (in-place processing). Special case: input can be NULL, echo will output the tail only this case. 66 | @param output 32-bit interleaved stereo output buffer. Can point to the same location with input (in-place processing). 67 | @param numberOfSamples Should be 16 minimum, and a multiply of 8. 68 | */ 69 | bool process(float *input, float *output, unsigned int numberOfSamples); 70 | 71 | private: 72 | echoInternals *internals; 73 | SuperpoweredEcho(const SuperpoweredEcho&); 74 | SuperpoweredEcho& operator=(const SuperpoweredEcho&); 75 | }; 76 | 77 | #endif 78 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredFFT.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredFFT 2 | #define Header_SuperpoweredFFT 3 | 4 | /** 5 | @file SuperpoweredFFT.h 6 | @brief Super fast FFT. 7 | 8 | Single threaded, not thread safe. 9 | 10 | @remark Superpowered FFT benefits from ideas in Construction of a High-Performance FFT by Eric Postpischil (http://edp.org/resume.htm). 11 | */ 12 | 13 | /** 14 | @fn SuperpoweredFFTComplex(float *real, float *imag, int logSize, bool forward); 15 | @brief Complex in-place FFT. 16 | 17 | Data packing is same as Apple's vDSP. Check the "Using Fourier Transforms" page of Apple's vDSP documentation ("Data Packing for Real FFTs"). 18 | 19 | @param real Real part. 20 | @param imag Imaginary part. 21 | @param logSize Should be 4 - 12 (FFT sizes 16 - 4096). 22 | @param forward Forward or inverse. 23 | */ 24 | void SuperpoweredFFTComplex(float *real, float *imag, int logSize, bool forward); 25 | 26 | 27 | /** 28 | @fn SuperpoweredFFTReal(float *real, float *imag, int logSize, bool forward); 29 | @brief Real in-place FFT. 30 | 31 | Data packing is same as Apple's vDSP. Check the "Using Fourier Transforms" page of Apple's vDSP documentation ("Data Packing for Real FFTs"). 32 | 33 | @param real Real part. 34 | @param imag Imaginary part. 35 | @param logSize Should be 5 - 13 (FFT sizes 32 - 8192). 36 | @param forward Forward or inverse. 37 | */ 38 | void SuperpoweredFFTReal(float *real, float *imag, int logSize, bool forward); 39 | 40 | 41 | /** 42 | @fn SuperpoweredPolarFFT(float *mag, float *phase, int logSize, bool forward); 43 | @brief Polar FFT. 44 | 45 | Data packing is same as Apple's vDSP. Check the "Using Fourier Transforms" page of Apple's vDSP documentation ("Data Packing for Real FFTs"). 46 | 47 | @param mag Input: split real part. Output: magnitudes. 48 | @param phase Input: split real part. Output: phases. 49 | @param logSize Should be 5 - 13 (FFT sizes 32 - 8192). 50 | @param forward Forward or inverse. 51 | @param valueOfPi The function can translate pi to any value (Google: the tau manifesto). Leave it at 0 for M_PI. 52 | */ 53 | void SuperpoweredPolarFFT(float *mag, float *phase, int logSize, bool forward, float valueOfPi = 0); 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredFX.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredFX 2 | #define Header_SuperpoweredFX 3 | 4 | /** 5 | @brief This is the base class for Superpowered effects. 6 | 7 | @param enabled Indicates if the effect is enabled (processing audio). 8 | 9 | */ 10 | class SuperpoweredFX { 11 | public: 12 | bool enabled; 13 | 14 | /** 15 | @brief Turns the effect on/off. 16 | */ 17 | virtual void enable(bool flag) = 0; // Use this to turn it on/off. 18 | 19 | /** 20 | @brief Sets the sample rate. 21 | 22 | @param samplerate 44100, 48000, etc. 23 | */ 24 | virtual void setSamplerate(unsigned int samplerate) = 0; 25 | 26 | /** 27 | @brief Reset all internals, sets the instance as good as new and turns it off. 28 | */ 29 | virtual void reset() = 0; 30 | 31 | /** 32 | @brief Processes the audio. 33 | 34 | It's not locked when you call other methods from other threads, and they not interfere with process() at all. 35 | Check the process() documentation of each fx for the minimum number of samples and an optional vector size limitation. For maximum compatibility with all Superpowered effects, numberOfSamples should be minimum 32 and a multiply of 8. 36 | 37 | @return Put something into output or not. 38 | 39 | @param input 32-bit interleaved stereo input buffer. 40 | @param output 32-bit interleaved stereo output buffer. 41 | @param numberOfSamples Number of samples to process. 42 | */ 43 | virtual bool process(float *input, float *output, unsigned int numberOfSamples) = 0; 44 | 45 | virtual ~SuperpoweredFX() {}; 46 | }; 47 | 48 | /** 49 | \mainpage Superpowered Audio SDK 50 | 51 | The Superpowered Audio SDK is a software development kit based on Superpowered Inc’s digital signal processing (DSP) technology. 52 | 53 | Superpowered technology allows developers to build computationally intensive audio apps and embedded applications that process more quickly and use less power than other comparable solutions. 54 | 55 | Superpowered DSP is designed and optimized, from scratch, to run on low-power mobile processors. Specifically, any device running ARM with the NEON extension (which covers 99% of all mobile devices manufactured). Intel CPU is supported too. 56 | 57 | Details of the latest version can be found at http://superpowered.com/superpowered-audio-sdk/ 58 | */ 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredFlanger.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredFlanger 2 | #define Header_SuperpoweredFlanger 3 | 4 | #include "SuperpoweredFX.h" 5 | struct flangerInternals; 6 | 7 | /** 8 | @brief Flanger with aggressive sound ("jet"). 9 | 10 | One instance allocates around 80 kb memory. 11 | 12 | @param wet 0.0f to 1.0f. Read only. 13 | @param depthMs Depth in milliseconds, 0.3f to 8.0f (0.3 ms to 8 ms). Read only. 14 | @param depth 0.0f to 1.0f (0.0 is 0.3 ms, 1.0 is 8 ms). Read only. 15 | @param lfoBeats The length in beats between the "lowest" and the "highest" jet sound, >= 0.25f and <= 64.0f. Read only. 16 | @param bpm Set this right for a nice sounding lfo. Limited to >= 60.0f and <= 240.0f. Read-write. 17 | @param limitLevel The flanger has a hard-knee limiter inside to prevent overdrive. The default value of 1.0f means hard knee limiting to 0.0 db. Threshold is fixed at -3.0 db below the limit level. Valid range is 0.1f to 1.0f. 18 | @param stereo Stereo/mono switch. Read-write. 19 | */ 20 | class SuperpoweredFlanger: public SuperpoweredFX { 21 | public: 22 | // READ ONLY parameters, don't set them directly, use the methods below. 23 | float wet; 24 | float depthMs; 25 | float depth; 26 | float lfoBeats; 27 | 28 | // READ-WRITE parameters, thread safe (change from any thread) 29 | float bpm; 30 | float limitLevel; 31 | bool stereo; 32 | 33 | /** 34 | @brief Set wet. 35 | 36 | @param value 0.0f to 1.0f 37 | */ 38 | void setWet(float value); 39 | /** 40 | @brief Set depth. 41 | 42 | @param value 0.0f to 1.0f 43 | */ 44 | void setDepth(float value); 45 | /** 46 | @brief Set LFO, adjustable with beats. 47 | 48 | @param beats >= 0.25f and <= 64.0f 49 | */ 50 | void setLFOBeats(float beats); 51 | /** 52 | @brief Turns the effect on/off. 53 | */ 54 | void enable(bool flag); 55 | 56 | /** 57 | @brief Create a flanger instance with the current sample rate value. 58 | 59 | Enabled is false by default, use enable(true) to enable. 60 | */ 61 | SuperpoweredFlanger(unsigned int samplerate); 62 | ~SuperpoweredFlanger(); 63 | 64 | /** 65 | @brief Sets the sample rate. 66 | 67 | @param samplerate 44100, 48000, etc. 68 | */ 69 | void setSamplerate(unsigned int samplerate); 70 | /** 71 | @brief Reset all internals, sets the instance as good as new and turns it off. 72 | */ 73 | void reset(); 74 | 75 | /** 76 | @brief Processes the audio. 77 | 78 | It's not locked when you call other methods from other threads, and they not interfere with process() at all. 79 | 80 | @return Put something into output or not. 81 | 82 | @param input 32-bit interleaved stereo input buffer. Can point to the same location with output (in-place processing). 83 | @param output 32-bit interleaved stereo output buffer. Can point to the same location with input (in-place processing). 84 | @param numberOfSamples Should be 16 minimum. 85 | */ 86 | bool process(float *input, float *output, unsigned int numberOfSamples); 87 | 88 | private: 89 | flangerInternals *internals; 90 | SuperpoweredFlanger(const SuperpoweredFlanger&); 91 | SuperpoweredFlanger& operator=(const SuperpoweredFlanger&); 92 | }; 93 | 94 | #endif 95 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredGate.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredGate 2 | #define Header_SuperpoweredGate 3 | 4 | #include "SuperpoweredFX.h" 5 | struct gateInternals; 6 | 7 | /** 8 | @brief Simple gate effect. 9 | 10 | It doesn't allocate any internal buffers and needs just a few bytes of memory. 11 | 12 | @param wet Limited to >= 0.0f and <= 1.0f. 13 | @param bpm Limited to >= 60.0f and <= 240.0f 14 | @param beats The rhythm in beats to open/close the "gate". From 1/64 beats to 4 beats. (>= 0.015625f and <= 4.0f) 15 | */ 16 | class SuperpoweredGate: public SuperpoweredFX { 17 | public: 18 | // READ-WRITE parameters, thread safe (change from any thread) 19 | float wet; 20 | float bpm; 21 | float beats; 22 | 23 | /** 24 | @brief Turns the effect on/off. 25 | */ 26 | void enable(bool flag); 27 | 28 | /** 29 | @brief Create a gate instance with the current sample rate value. 30 | 31 | Enabled is false by default, use enable(true) to enable. 32 | */ 33 | SuperpoweredGate(unsigned int samplerate); 34 | ~SuperpoweredGate(); 35 | 36 | /** 37 | @brief Sets the sample rate. 38 | 39 | @param samplerate 44100, 48000, etc. 40 | */ 41 | void setSamplerate(unsigned int samplerate); 42 | /** 43 | @brief Reset all internals, sets the instance as good as new and turns it off. 44 | */ 45 | void reset(); 46 | 47 | /** 48 | @brief Processes the audio. 49 | 50 | It's not locked when you call other methods from other threads, and they not interfere with process() at all. 51 | 52 | @return Put something into output or not. 53 | 54 | @param input 32-bit interleaved stereo input buffer. Can point to the same location with output (in-place processing). 55 | @param output 32-bit interleaved stereo output buffer. Can point to the same location with input (in-place processing). 56 | @param numberOfSamples Should be 16 minimum. 57 | */ 58 | bool process(float *input, float *output, unsigned int numberOfSamples); 59 | 60 | private: 61 | gateInternals *internals; 62 | SuperpoweredGate(const SuperpoweredGate&); 63 | SuperpoweredGate& operator=(const SuperpoweredGate&); 64 | }; 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredResampler.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredResampler 2 | #define Header_SuperpoweredResampler 3 | 4 | struct resamplerInternals; 5 | 6 | /** 7 | @brief Linear or 6-point resampler, audio reverser and 16-bit to 32-bit audio converter. 8 | 9 | It doesn't allocate any internal buffers and needs just a few bytes of memory. 10 | 11 | @param rate Read-write. Default: 1.0f. 12 | */ 13 | class SuperpoweredResampler { 14 | public: 15 | float rate; 16 | 17 | SuperpoweredResampler(); 18 | ~SuperpoweredResampler(); 19 | /** 20 | @brief Reset all internals. Doesn't change rate. 21 | */ 22 | void reset(); 23 | 24 | /** 25 | @brief Processes the audio. 26 | 27 | @return The number of output frames (samples). 28 | 29 | @param input 16-bit stereo input. Should be numberOfSamples * 2 + 64 big. 30 | @param output 32-bit floating point stereo output. Should be numberOfSamples * 2 + 64 big. 31 | @param numberOfSamples Number of samples to process. 32 | @param reverse Plays backwards. 33 | @param highQuality Enables more sophisticated processing to reduce interpolation noise. Good for scratching for example, but not recommended for continous music playback above 0.5f rate. 34 | @param rateAdd Changes rate during process(), good for scratching or super smooth rate changes. After process(), rate will be near the desired value. 35 | */ 36 | int process(short int *input, float *output, int numberOfSamples, bool reverse = false, bool highQuality = false, float rateAdd = 0.0f); 37 | 38 | /** 39 | @brief Processes the audio. 40 | 41 | @return The number of output frames (samples). 42 | 43 | @param input 16-bit stereo input. Should be numberOfSamples * 2 + 64 big. 44 | @param temp Temporary buffer. Should be numberOfSamples * 2 + 64 big. 45 | @param output 16-bit stereo output. Should be numberOfSamples * 2 + 64 big. 46 | @param numberOfSamples Number of samples to process. 47 | @param reverse Plays backwards. 48 | @param highQuality Enables more sophisticated processing to reduce interpolation noise. Good for scratching for example, but not recommended for continous music playback above 0.5f rate. 49 | @param rateAdd Changes rate during process(), good for scratching or super smooth rate changes. After process(), rate will be near the desired value. 50 | */ 51 | int process(short int *input, float *temp, short int *output, int numberOfSamples, bool reverse = false, bool highQuality = false, float rateAdd = 0.0f); 52 | 53 | private: 54 | resamplerInternals *internals; 55 | SuperpoweredResampler(const SuperpoweredResampler&); 56 | SuperpoweredResampler& operator=(const SuperpoweredResampler&); 57 | }; 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredRoll.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredRoll 2 | #define Header_SuperpoweredRoll 3 | 4 | #include "SuperpoweredFX.h" 5 | struct rollInternals; 6 | 7 | /** 8 | @brief Bpm/beat based loop roll effect. 9 | 10 | One instance allocates around 1600 kb memory. 11 | 12 | @param wet Limited to >= 0.0f and <= 1.0f. 13 | @param bpm Limited to >= 60.0f and <= 240.0f 14 | @param beats Limit: 1/64 beats to 4 beats. (>= 0.015625f and <= 4.0f) 15 | */ 16 | class SuperpoweredRoll: public SuperpoweredFX { 17 | public: 18 | // READ-WRITE parameters, thread safe (change from any thread) 19 | float wet; 20 | float bpm; 21 | float beats; 22 | 23 | /** 24 | @brief Turns the effect on/off. 25 | */ 26 | void enable(bool flag); 27 | 28 | /** 29 | @brief Create a roll instance with the current sample rate value. 30 | 31 | Enabled is false by default, use enable(true) to enable. 32 | */ 33 | SuperpoweredRoll(unsigned int samplerate); 34 | ~SuperpoweredRoll(); 35 | 36 | /** 37 | @brief Sets the sample rate. 38 | 39 | @param samplerate 44100, 48000, etc. 40 | */ 41 | void setSamplerate(unsigned int samplerate); 42 | /** 43 | @brief Reset all internals, sets the instance as good as new and turns it off. 44 | */ 45 | void reset(); 46 | 47 | /** 48 | @brief Processes the audio. 49 | 50 | It's not locked when you call other methods from other threads, and they not interfere with process() at all. 51 | 52 | @return Put something into output or not. 53 | 54 | @param input 32-bit interleaved stereo input buffer. Can point to the same location with output (in-place processing). Special case: can be NULL, roll will loop what's "recorded" before. 55 | @param output 32-bit interleaved stereo output buffer. Can point to the same location with input (in-place processing). 56 | @param numberOfSamples Should be 16 minimum. 57 | */ 58 | bool process(float *input, float *output, unsigned int numberOfSamples); 59 | 60 | private: 61 | rollInternals *internals; 62 | SuperpoweredRoll(const SuperpoweredRoll&); 63 | SuperpoweredRoll& operator=(const SuperpoweredRoll&); 64 | }; 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredTimeStretching.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredTimeStretching 2 | #define Header_SuperpoweredTimeStretching 3 | 4 | #include "SuperpoweredAudioBuffers.h" 5 | struct stretchInternals; 6 | 7 | /** 8 | @brief Time stretching and pitch shifting. 9 | 10 | One instance allocates around 220 kb. Check the SuperpoweredOfflineProcessingExample project on how to use. 11 | 12 | @param rate 1.0f means no time stretching. Read only. 13 | @param pitchShift Pitch shift notes, from -12 (one octave down) to 12 (one octave up). 0 means no pitch shift. Read only. 14 | @param pitchShiftCents Pitch shift cents, from -2400 (two octaves down) to 2400 (two octaves up). 0 means no pitch shift. Read only. 15 | @param numberOfInputSamplesNeeded How many samples required to some output. Read only. 16 | */ 17 | class SuperpoweredTimeStretching { 18 | public: 19 | float rate; 20 | int pitchShift; 21 | int pitchShiftCents; 22 | int numberOfInputSamplesNeeded; 23 | 24 | /** 25 | @brief Set rate and pitch shift. This method executes very quickly, in a few CPU cycles. 26 | 27 | @param newRate Limited to >= 0.01f and <= 4.0f. Values above 2.0f or below 0.5f are not recommended on mobile devices with low latency audio. 28 | @param newShift Limited to >= -12 and <= 12. 29 | */ 30 | bool setRateAndPitchShift(float newRate, int newShift); 31 | 32 | /** 33 | @brief Set rate and pitch shift with greater precision. Calling this method requires magnitudes more CPU than setRateAndPitchShift. 34 | 35 | @param newRate Limited to >= 0.01f and <= 4.0f. Values above 2.0f or below 0.5f are not recommended on mobile devices with low latency audio. 36 | @param newShiftCents Limited to >= -2400 and <= 2400. 37 | */ 38 | bool setRateAndPitchShiftCents(float newRate, int newShiftCents); 39 | 40 | /** 41 | @brief Create a time-stretching instance with an audio buffer pool and the current sample rate. 42 | 43 | @see @c SuperpoweredAudiobufferPool 44 | */ 45 | SuperpoweredTimeStretching(SuperpoweredAudiobufferPool *p, unsigned int samplerate); 46 | ~SuperpoweredTimeStretching(); 47 | 48 | /** 49 | @brief Sets the sample rate. 50 | 51 | @param samplerate 44100, 48000, etc. 52 | */ 53 | void setSampleRate(unsigned int samplerate); 54 | /** 55 | @brief Reset all internals, sets the instance as good as new. 56 | */ 57 | void reset(); 58 | /** 59 | @brief Removes samples from the input buffer (good for looping for example). 60 | 61 | @param samples The number of samples to remove. 62 | */ 63 | void removeSamplesFromInputBuffersEnd(unsigned int samples); 64 | 65 | /** 66 | @brief Processes the audio. 67 | 68 | @param input The input buffer. 69 | @param outputList The output buffer list. 70 | 71 | @see @c SuperpoweredAudiopointerList 72 | */ 73 | void process(SuperpoweredAudiobufferlistElement *input, SuperpoweredAudiopointerList *outputList); 74 | 75 | private: 76 | stretchInternals *internals; 77 | SuperpoweredTimeStretching(const SuperpoweredTimeStretching&); 78 | SuperpoweredTimeStretching& operator=(const SuperpoweredTimeStretching&); 79 | }; 80 | 81 | #endif 82 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/SuperpoweredWhoosh.h: -------------------------------------------------------------------------------- 1 | #ifndef Header_SuperpoweredWhoosh 2 | #define Header_SuperpoweredWhoosh 3 | 4 | #include "SuperpoweredFX.h" 5 | struct whooshInternals; 6 | 7 | /** 8 | @brief White noise + filter. 9 | 10 | One whoosh instance allocates around 4 kb memory. 11 | 12 | @param wet Limited to >= 0.0f and <= 1.0f. Read-write, thread-safe. 13 | @param frequency Limited to >= 20.0f and <= 20000.0f. Read only. 14 | */ 15 | class SuperpoweredWhoosh: public SuperpoweredFX { 16 | public: 17 | float wet; 18 | float frequency; 19 | 20 | /** 21 | @brief Sets the low pass filter's frequency. 22 | */ 23 | void setFrequency(float hz); 24 | /** 25 | @brief Turns the effect on/off. 26 | */ 27 | void enable(bool flag); 28 | 29 | /** 30 | @brief Create a whoosh instance with the current sample rate value. 31 | Enabled is false by default, use enable(true) to enable. 32 | */ 33 | SuperpoweredWhoosh(unsigned int samplerate); 34 | ~SuperpoweredWhoosh(); 35 | /** 36 | @brief Sets the sample rate. 37 | 38 | @param samplerate 44100, 48000, etc. 39 | */ 40 | void setSamplerate(unsigned int samplerate); 41 | /** 42 | @brief Reset all internals, sets the instance as good as new and turns it off. 43 | */ 44 | void reset(); 45 | 46 | /** 47 | @brief Processes the audio. 48 | 49 | It's not locked when you call other methods from other threads, and they not interfere with process() at all. 50 | 51 | @return Put something into output or not. 52 | 53 | @param input 32-bit interleaved stereo input buffer. Can point to the same location with output (in-place processing). 54 | @param output 32-bit interleaved stereo output buffer. Can point to the same location with input (in-place processing). 55 | @param numberOfSamples Should be 16 minimum. 56 | */ 57 | bool process(float *input, float *output, unsigned int numberOfSamples); 58 | 59 | private: 60 | whooshInternals *internals; 61 | SuperpoweredWhoosh(const SuperpoweredWhoosh&); 62 | SuperpoweredWhoosh& operator=(const SuperpoweredWhoosh&); 63 | }; 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/libSuperpoweredARM.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-android/app/src/main/jni/Superpowered/libSuperpoweredARM.a -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/libSuperpoweredARM64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-android/app/src/main/jni/Superpowered/libSuperpoweredARM64.a -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/libSuperpoweredAudio.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-android/app/src/main/jni/Superpowered/libSuperpoweredAudio.a -------------------------------------------------------------------------------- /stutter-android/app/src/main/jni/Superpowered/libSuperpoweredX86.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-android/app/src/main/jni/Superpowered/libSuperpoweredX86.a -------------------------------------------------------------------------------- /stutter-android/app/src/main/res/layout/activity_test_data.xml: -------------------------------------------------------------------------------- 1 | 8 | 16 | 17 | 20 | 21 | 27 | 28 | 29 | 30 | 38 | 39 | 42 | 43 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /stutter-web/application/views/navbar.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /stutter-web/application/views/welcome_message.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | Welcome to CodeIgniter 8 | 9 | 67 | 68 | 69 | 70 |
71 |

Welcome to CodeIgniter!

72 | 73 |
74 |

The page you are looking at is being generated dynamically by CodeIgniter.

75 | 76 |

If you would like to edit this page you'll find it located at:

77 | application/views/welcome_message.php 78 | 79 |

The corresponding controller for this page is found at:

80 | application/controllers/Welcome.php 81 | 82 |

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.

83 |
84 | 85 | 86 |
87 | 88 | 89 | -------------------------------------------------------------------------------- /stutter-web/application/views/welcome_page.php: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 |
7 |

My Uploaded Files

8 |
9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 |
Audio ClipUpload Date
file_name;?>time_stamp;?> 26 | 27 | delete
33 |
34 |
35 |
36 | -------------------------------------------------------------------------------- /stutter-web/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "The CodeIgniter framework", 3 | "name": "codeigniter/framework", 4 | "type": "project", 5 | "homepage": "http://codeigniter.com", 6 | "license": "MIT", 7 | "support": { 8 | "forum": "http://forum.codeigniter.com/", 9 | "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", 10 | "irc": "irc://irc.freenode.net/codeigniter", 11 | "source": "https://github.com/bcit-ci/CodeIgniter" 12 | }, 13 | "require": { 14 | "php": ">=5.2.4" 15 | }, 16 | "require-dev": { 17 | "mikey179/vfsStream": "1.1.*" 18 | } 19 | } -------------------------------------------------------------------------------- /stutter-web/license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 - 2015, British Columbia Institute of Technology 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /stutter-web/public/img/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/public/img/favicon-96x96.png -------------------------------------------------------------------------------- /stutter-web/readme.rst: -------------------------------------------------------------------------------- 1 | ################### 2 | What is CodeIgniter 3 | ################### 4 | 5 | CodeIgniter is an Application Development Framework - a toolkit - for people 6 | who build web sites using PHP. Its goal is to enable you to develop projects 7 | much faster than you could if you were writing code from scratch, by providing 8 | a rich set of libraries for commonly needed tasks, as well as a simple 9 | interface and logical structure to access these libraries. CodeIgniter lets 10 | you creatively focus on your project by minimizing the amount of code needed 11 | for a given task. 12 | 13 | ******************* 14 | Release Information 15 | ******************* 16 | 17 | This repo contains in-development code for future releases. To download the 18 | latest stable release please visit the `CodeIgniter Downloads 19 | `_ page. 20 | 21 | ************************** 22 | Changelog and New Features 23 | ************************** 24 | 25 | You can find a list of all changes for each release in the `user 26 | guide change log `_. 27 | 28 | ******************* 29 | Server Requirements 30 | ******************* 31 | 32 | PHP version 5.4 or newer is recommended. 33 | 34 | It should work on 5.2.4 as well, but we strongly advise you NOT to run 35 | such old versions of PHP, because of potential security and performance 36 | issues, as well as missing features. 37 | 38 | ************ 39 | Installation 40 | ************ 41 | 42 | Please see the `installation section `_ 43 | of the CodeIgniter User Guide. 44 | 45 | ******* 46 | License 47 | ******* 48 | 49 | Please see the `license 50 | agreement `_. 51 | 52 | ********* 53 | Resources 54 | ********* 55 | 56 | - `User Guide `_ 57 | - `Language File Translations `_ 58 | - `Community Forums `_ 59 | - `Community Wiki `_ 60 | - `Community IRC `_ 61 | 62 | Report security issues to our `Security Panel `_, thank you. 63 | 64 | *************** 65 | Acknowledgement 66 | *************** 67 | 68 | The CodeIgniter team would like to thank EllisLab, all the 69 | contributors to the CodeIgniter project and you, the CodeIgniter user. -------------------------------------------------------------------------------- /stutter-web/stutter-aid.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 4.1.14 3 | -- http://www.phpmyadmin.net 4 | -- 5 | -- Host: 127.0.0.1 6 | -- Generation Time: Sep 04, 2015 at 02:14 PM 7 | -- Server version: 5.6.17 8 | -- PHP Version: 5.5.12 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | SET time_zone = "+00:00"; 12 | 13 | 14 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 15 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 16 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 17 | /*!40101 SET NAMES utf8 */; 18 | 19 | -- 20 | -- Database: `stutter-aid` 21 | -- 22 | 23 | -- -------------------------------------------------------- 24 | 25 | -- 26 | -- Table structure for table `uploads` 27 | -- 28 | 29 | CREATE TABLE IF NOT EXISTS `uploads` ( 30 | `id` int(11) NOT NULL AUTO_INCREMENT, 31 | `uploader_id` int(11) NOT NULL, 32 | `file_name` varchar(60) NOT NULL, 33 | `time_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 34 | PRIMARY KEY (`id`), 35 | UNIQUE KEY `file_name` (`file_name`) 36 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; 37 | 38 | -- 39 | -- Dumping data for table `uploads` 40 | -- 41 | 42 | INSERT INTO `uploads` (`id`, `uploader_id`, `file_name`, `time_stamp`) VALUES 43 | (2, 2, 'audioFile.mp3', '2015-09-04 09:38:39'), 44 | (3, 2, 'abcd.mp3', '2015-09-04 09:39:33'), 45 | (4, 1, 'abffcd.mp3', '2015-09-04 10:45:54'), 46 | (5, 1, 'fffggg.mp3', '2015-09-04 11:35:49'); 47 | 48 | -- -------------------------------------------------------- 49 | 50 | -- 51 | -- Table structure for table `users` 52 | -- 53 | 54 | CREATE TABLE IF NOT EXISTS `users` ( 55 | `id` int(11) NOT NULL AUTO_INCREMENT, 56 | `user_name` varchar(50) NOT NULL, 57 | `password` varchar(50) NOT NULL, 58 | `imei` varchar(17) NOT NULL, 59 | `email` varchar(50) NOT NULL, 60 | `time_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 61 | PRIMARY KEY (`id`), 62 | UNIQUE KEY `user_name` (`user_name`) 63 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 64 | 65 | -- 66 | -- Dumping data for table `users` 67 | -- 68 | 69 | INSERT INTO `users` (`id`, `user_name`, `password`, `imei`, `email`, `time_stamp`) VALUES 70 | (1, 'raveenperera', 'abcdefg', '1234567890abcd', 'harith9127@gmail.com', '2015-09-04 04:30:05'), 71 | (2, 'charitha', 'abcdefg', '1234567890abcd', 'carithaccmc@gmail.com', '2015-09-04 04:30:53'); 72 | 73 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 74 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 75 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 76 | -------------------------------------------------------------------------------- /stutter-web/system/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | -------------------------------------------------------------------------------- /stutter-web/system/core/Controller.php: -------------------------------------------------------------------------------- 1 | $class) 74 | { 75 | $this->$var =& load_class($class); 76 | } 77 | 78 | $this->load =& load_class('Loader', 'core'); 79 | $this->load->initialize(); 80 | log_message('info', 'Controller Class Initialized'); 81 | } 82 | 83 | // -------------------------------------------------------------------- 84 | 85 | /** 86 | * Get the CI singleton 87 | * 88 | * @static 89 | * @return object 90 | */ 91 | public static function &get_instance() 92 | { 93 | return self::$instance; 94 | } 95 | 96 | } 97 | -------------------------------------------------------------------------------- /stutter-web/system/core/Model.php: -------------------------------------------------------------------------------- 1 | $key; 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /stutter-web/system/core/compat/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/core/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/cubrid/cubrid_utility.php: -------------------------------------------------------------------------------- 1 | db->data_cache['db_names'])) 57 | { 58 | return $this->db->data_cache['db_names']; 59 | } 60 | 61 | return $this->db->data_cache['db_names'] = cubrid_list_dbs($this->db->conn_id); 62 | } 63 | 64 | // -------------------------------------------------------------------- 65 | 66 | /** 67 | * CUBRID Export 68 | * 69 | * @param array Preferences 70 | * @return mixed 71 | */ 72 | protected function _backup($params = array()) 73 | { 74 | // No SQL based support in CUBRID as of version 8.4.0. Database or 75 | // table backup can be performed using CUBRID Manager 76 | // database administration tool. 77 | return $this->db->display_error('db_unsupported_feature'); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/cubrid/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/ibase/ibase_utility.php: -------------------------------------------------------------------------------- 1 | db->hostname, $this->db->username, $this->db->password)) 58 | { 59 | $res = ibase_backup($service, $this->db->database, $filename.'.fbk'); 60 | 61 | // Close the service connection 62 | ibase_service_detach($service); 63 | return $res; 64 | } 65 | 66 | return FALSE; 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/ibase/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/mssql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/mssql/mssql_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/mysql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/mysqli/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/oci8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/oci8/oci8_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/odbc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/odbc/odbc_forge.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/pdo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/pdo/pdo_forge.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/pdo/subdrivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/postgre/postgre_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/sqlite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/sqlite/sqlite_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/sqlite3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/sqlite3/sqlite3_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/sqlsrv/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/database/drivers/sqlsrv/sqlsrv_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /stutter-web/system/database/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/fonts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/fonts/texb.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/system/fonts/texb.ttf -------------------------------------------------------------------------------- /stutter-web/system/helpers/email_helper.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/helpers/language_helper.php: -------------------------------------------------------------------------------- 1 | lang->line($line); 67 | 68 | if ($for !== '') 69 | { 70 | $line = ''; 71 | } 72 | 73 | return $line; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /stutter-web/system/helpers/number_helper.php: -------------------------------------------------------------------------------- 1 | lang->load('number'); 65 | 66 | if ($num >= 1000000000000) 67 | { 68 | $num = round($num / 1099511627776, $precision); 69 | $unit = $CI->lang->line('terabyte_abbr'); 70 | } 71 | elseif ($num >= 1000000000) 72 | { 73 | $num = round($num / 1073741824, $precision); 74 | $unit = $CI->lang->line('gigabyte_abbr'); 75 | } 76 | elseif ($num >= 1000000) 77 | { 78 | $num = round($num / 1048576, $precision); 79 | $unit = $CI->lang->line('megabyte_abbr'); 80 | } 81 | elseif ($num >= 1000) 82 | { 83 | $num = round($num / 1024, $precision); 84 | $unit = $CI->lang->line('kilobyte_abbr'); 85 | } 86 | else 87 | { 88 | $unit = $CI->lang->line('bytes'); 89 | return number_format($num).' '.$unit; 90 | } 91 | 92 | return number_format($num, $precision).' '.$unit; 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /stutter-web/system/helpers/path_helper.php: -------------------------------------------------------------------------------- 1 | ', '"', "'", '-'), 76 | array('&', '<', '>', '"', ''', '-'), 77 | $str 78 | ); 79 | 80 | // Decode the temp markers back to entities 81 | $str = preg_replace('/'.$temp.'(\d+);/', '&#\\1;', $str); 82 | 83 | if ($protect_all === TRUE) 84 | { 85 | return preg_replace('/'.$temp.'(\w+);/', '&\\1;', $str); 86 | } 87 | 88 | return $str; 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /stutter-web/system/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/language/english/calendar_lang.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/language/english/migration_lang.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/libraries/Cache/drivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/libraries/Cache/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/libraries/Javascript/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/libraries/Session/SessionHandlerInterface.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/libraries/Session/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/system/libraries/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stutter-web/uploads/.htaccess: -------------------------------------------------------------------------------- 1 | Deny from all -------------------------------------------------------------------------------- /stutter-web/uploads/abcd.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/uploads/abcd.mp3 -------------------------------------------------------------------------------- /stutter-web/uploads/abffcd.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/uploads/abffcd.mp3 -------------------------------------------------------------------------------- /stutter-web/uploads/audioFile.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/uploads/audioFile.mp3 -------------------------------------------------------------------------------- /stutter-web/uploads/fffggg.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/uploads/fffggg.mp3 -------------------------------------------------------------------------------- /stutter-web/user_guide/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: ccd7d5d240d0c609b3a6187080637d16 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /stutter-web/user_guide/_downloads/ELDocs.tmbundle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_downloads/ELDocs.tmbundle.zip -------------------------------------------------------------------------------- /stutter-web/user_guide/_images/appflowchart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_images/appflowchart.gif -------------------------------------------------------------------------------- /stutter-web/user_guide/_images/smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_images/smile.gif -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/ajax-loader.gif -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/ci-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/ci-icon.ico -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/comment-bright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/comment-bright.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/comment-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/comment-close.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/comment.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/css/badge_only.css: -------------------------------------------------------------------------------- 1 | .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../font/fontawesome_webfont.eot");src:url("../font/fontawesome_webfont.eot?#iefix") format("embedded-opentype"),url("../font/fontawesome_webfont.woff") format("woff"),url("../font/fontawesome_webfont.ttf") format("truetype"),url("../font/fontawesome_webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:0.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}} 2 | /*# sourceMappingURL=badge_only.css.map */ 3 | -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/css/citheme.css: -------------------------------------------------------------------------------- 1 | @import 'theme.css'; 2 | 3 | .highlighted { 4 | padding: 0px !important; 5 | font-weight: inherit !important; 6 | background-color: #f1d40f !important; 7 | } -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/down-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/down-pressed.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/down.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/file.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/js/oldtheme.js: -------------------------------------------------------------------------------- 1 | $( document ).ready(function() { 2 | // Shift nav in mobile when clicking the menu. 3 | $(document).on('click', "[data-toggle='wy-nav-top']", function() { 4 | $("[data-toggle='wy-nav-shift']").toggleClass("shift"); 5 | $("[data-toggle='rst-versions']").toggleClass("shift"); 6 | }); 7 | // Close menu when you click a link. 8 | $(document).on('click', ".wy-menu-vertical .current ul li a", function() { 9 | $("[data-toggle='wy-nav-shift']").removeClass("shift"); 10 | $("[data-toggle='rst-versions']").toggleClass("shift"); 11 | }); 12 | $(document).on('click', "[data-toggle='rst-current-version']", function() { 13 | $("[data-toggle='rst-versions']").toggleClass("shift-up"); 14 | }); 15 | // Make tables responsive 16 | $("table.docutils:not(.field-list)").wrap("
"); 17 | }); 18 | 19 | window.SphinxRtdTheme = (function (jquery) { 20 | var stickyNav = (function () { 21 | var navBar, 22 | win, 23 | stickyNavCssClass = 'stickynav', 24 | applyStickNav = function () { 25 | if (navBar.height() <= win.height()) { 26 | navBar.addClass(stickyNavCssClass); 27 | } else { 28 | navBar.removeClass(stickyNavCssClass); 29 | } 30 | }, 31 | enable = function () { 32 | applyStickNav(); 33 | win.on('resize', applyStickNav); 34 | }, 35 | init = function () { 36 | navBar = jquery('nav.wy-nav-side:first'); 37 | win = jquery(window); 38 | }; 39 | jquery(init); 40 | return { 41 | enable : enable 42 | }; 43 | }()); 44 | return { 45 | StickyNav : stickyNav 46 | }; 47 | }($)); 48 | -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/minus.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/plus.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/up-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/up-pressed.png -------------------------------------------------------------------------------- /stutter-web/user_guide/_static/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/_static/up.png -------------------------------------------------------------------------------- /stutter-web/user_guide/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scorelab/stutter/0deca40ddc020dc4e5f7172d5f77b7d785926e38/stutter-web/user_guide/objects.inv --------------------------------------------------------------------------------