}
JNIEXPORT void JNICALL jni_freerdp_set_sound_redirection(JNIEnv *env,
- jclass cls, jint instance, jboolean enable)
+ jclass cls, jint instance, jint redirect)
{
char** p;
int count = 1;
freerdp* inst = (freerdp*)instance;
rdpSettings * settings = inst->settings;
- DEBUG_ANDROID("sound redirect: %s", enable ? "TRUE" : "FALSE");
+ DEBUG_ANDROID("sound: %s",
+ redirect ? ((redirect == 1) ? "Server" : "Redirect") : "None");
- p = malloc(sizeof(char*));
- p[0] = "rdpsnd";
+ settings->AudioPlayback = (redirect == 2) ? TRUE : FALSE;
+ settings->RemoteConsoleAudio = (redirect == 1) ? TRUE : FALSE;
+ if (settings->AudioPlayback)
+ {
+ p = malloc(sizeof(char*));
+ p[0] = "rdpsnd";
- freerdp_client_add_static_channel(settings, count, p);
+ freerdp_client_add_static_channel(settings, count, p);
- free(p);
+ free(p);
+ }
}
JNIEXPORT void JNICALL jni_freerdp_set_microphone_redirection(JNIEnv *env,
DEBUG_ANDROID("microphone redirect: %s", enable ? "TRUE" : "FALSE");
- p = malloc(sizeof(char*));
- p[0] = "audin";
+ settings->AudioCapture = enable;
+ if (enable)
+ {
+ p = malloc(sizeof(char*));
+ p[0] = "audin";
- freerdp_client_add_dynamic_channel(settings, count, p);
+ freerdp_client_add_dynamic_channel(settings, count, p);
- free(p);
+ free(p);
+ }
}
JNIEXPORT void JNICALL jni_freerdp_set_clipboard_redirection(JNIEnv *env, jclass cls, jint instance, jboolean enable)
jboolean disableMenuAnimations, jboolean disableTheming, jboolean enableFontSmoothing, jboolean enableDesktopComposition);
JNIEXPORT void JNICALL jni_freerdp_set_advanced_settings(JNIEnv *env, jclass cls, jint instance, jstring jRemoteProgram, jstring jWorkDir);
JNIEXPORT void JNICALL jni_freerdp_set_drive_redirection(JNIEnv *env, jclass cls, jint instance, jstring jpath);
-JNIEXPORT void JNICALL jni_freerdp_set_sound_redirection(JNIEnv *env, jclass cls, jint instance, jboolean enable);
+JNIEXPORT void JNICALL jni_freerdp_set_sound_redirection(JNIEnv *env, jclass cls, jint instance, jint redirect);
JNIEXPORT void JNICALL jni_freerdp_set_microphone_redirection(JNIEnv *env, jclass cls, jint instance, jboolean enable);
JNIEXPORT void JNICALL jni_freerdp_set_clipboard_redirection(JNIEnv *env, jclass cls, jint instance, jboolean enable);
JNIEXPORT void JNICALL jni_freerdp_set_gateway_info(JNIEnv *env, jclass cls, jint instance, jstring jgatewayhostname, jint port, jstring jgatewayusername, jstring jgatewaypassword, jstring jgatewaydomain);
}
JNIEXPORT void JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1set_1sound_1redirection
- (JNIEnv *env, jclass cls, jint inst, jboolean redirect)
+ (JNIEnv *env, jclass cls, jint inst, jint redirect)
{
jni_freerdp_set_sound_redirection(env, cls, inst, redirect);
}
* Signature: (IZ)V
*/
JNIEXPORT void JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1set_1sound_1redirection
- (JNIEnv *, jclass, jint, jboolean);
+ (JNIEnv *, jclass, jint, jint);
/*
* Class: com_freerdp_freerdpcore_services_LibFreeRDP
<string name="settings_gateway_settings">Gateway Settings</string> \r
<string name="settings_redirect_sdcard">Redirect SDCard</string>\r
<string name="settings_redirect_sound">Redirect Sound</string>\r
+ <string-array name="redirect_sound_array">\r
+ <item>None</item>\r
+ <item>Server</item>\r
+ <item>Client</item>\r
+ </string-array>\r
+ <string-array name="redirect_sound_values_array">\r
+ <item>0</item>\r
+ <item>1</item>\r
+ <item>2</item>\r
+ </string-array>\r
<string name="settings_redirect_microphone">Redirect Microphone</string>\r
<string name="settings_security">Seguridad</string>\r
<string-array name="security_array">\r
<string name="settings_gateway_settings">Gateway Settings</string>
<string name="settings_redirect_sdcard">"Redirect SDCard"</string>
<string name="settings_redirect_sound">Redirect Sound</string>
+ <string-array name="redirect_sound_array">
+ <item>None</item>
+ <item>Server</item>
+ <item>Client</item>
+ </string-array>
+ <string-array name="redirect_sound_values_array">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ </string-array>
<string name="settings_redirect_microphone">Redirect Microphone</string>
<string name="settings_security">"Securité"</string>
<string-array name="security_array">
<string name="settings_gateway_settings">Gateway instellingen</string>
<string name="settings_redirect_sdcard">SDCard aankoppelen</string>
<string name="settings_redirect_sound">Redirect Sound</string>
+ <string-array name="redirect_sound_array">
+ <item>None</item>
+ <item>Server</item>
+ <item>Client</item>
+ </string-array>
+ <string-array name="redirect_sound_values_array">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ </string-array>
<string name="settings_redirect_microphone">Redirect Microphone</string>
<string name="settings_security">Beveiliging</string>
<string-array name="security_array">
<string name="settings_enable_gateway_settings">Enable Gateway</string>
<string name="settings_gateway_settings">Gateway Settings</string>
<string name="settings_redirect_sdcard">Redirect SDCard</string>
- <string name="settings_redirect_sound">Redirect Sound</string>
+ <string name="settings_redirect_sound">Redirect Sound</string>
+ <string-array name="redirect_sound_array">
+ <item>None</item>
+ <item>Server</item>
+ <item>Client</item>
+ </string-array>
+ <string-array name="redirect_sound_values_array">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ </string-array>
<string name="settings_redirect_microphone">Redirect Microphone</string>
<string name="settings_security">Security</string>
<string-array name="security_array">
</PreferenceScreen>
<CheckBoxPreference android:key="bookmark.redirect_sdcard" android:title="@string/settings_redirect_sdcard"/>
- <CheckBoxPreference android:key="bookmark.redirect_sound" android:title="@string/settings_redirect_sound"/>
+ <com.freerdp.freerdpcore.utils.IntListPreference android:key="bookmark.redirect_sound" android:title="@string/settings_redirect_sound" android:entries="@array/redirect_sound_array" android:entryValues="@array/redirect_sound_values_array" />
<CheckBoxPreference android:key="bookmark.redirect_microphone" android:title="@string/settings_redirect_microphone"/>
<com.freerdp.freerdpcore.utils.IntListPreference android:key="bookmark.security" android:title="@string/settings_security" android:entries="@array/security_array" android:entryValues="@array/security_values_array" />
<EditTextPreference android:key="bookmark.remote_program" android:title="@string/settings_remote_program" android:summary="notepad.exe"/>
private ScreenSettings screen3G;
private PerformanceFlags performance3G;
private boolean redirectSDCard;
- private boolean redirectSound;
+ private int redirectSound;
private boolean redirectMicrophone;
private int security;
private boolean consoleMode;
screen3G = parcel.readParcelable(ScreenSettings.class.getClassLoader());
performance3G = parcel.readParcelable(PerformanceFlags.class.getClassLoader());
redirectSDCard = (parcel.readInt() == 1) ? true : false;
- redirectSound = (parcel.readInt() == 1) ? true : false;
+ redirectSound = parcel.readInt();
redirectMicrophone = (parcel.readInt() == 1) ? true : false;
security = parcel.readInt();
consoleMode = (parcel.readInt() == 1) ? true : false;
screen3G = new ScreenSettings();
performance3G = new PerformanceFlags();
redirectSDCard = false;
- redirectSound = false;
+ redirectSound = 0;
redirectMicrophone = false;
security = 0;
consoleMode = false;
return redirectSDCard;
}
- public void setRedirectSound(boolean redirect) {
+ public void setRedirectSound(int redirect) {
this.redirectSound = redirect;
}
- public boolean getRedirectSound() {
+ public int getRedirectSound() {
return redirectSound;
}
out.writeParcelable(screen3G, flags);
out.writeParcelable(performance3G, flags);
out.writeInt(redirectSDCard ? 1 : 0);
- out.writeInt(redirectSound ? 1 : 0);
+ out.writeInt(redirectSound);
out.writeInt(redirectMicrophone ? 1 : 0);
out.writeInt(security);
out.writeInt(consoleMode ? 1 : 0);
editor.putBoolean("bookmark.perf_themes_3g", advancedSettings.getPerformance3G().getTheming());
editor.putBoolean("bookmark.redirect_sdcard", advancedSettings.getRedirectSDCard());
- editor.putBoolean("bookmark.redirect_sound", advancedSettings.getRedirectSound());
+ editor.putInt("bookmark.redirect_sound", advancedSettings.getRedirectSound());
editor.putBoolean("bookmark.redirect_microphone", advancedSettings.getRedirectMicrophone());
editor.putInt("bookmark.security", advancedSettings.getSecurity());
editor.putString("bookmark.remote_program", advancedSettings.getRemoteProgram());
advancedSettings.getPerformance3G().setTheming(sharedPrefs.getBoolean("bookmark.perf_themes_3g", false));
advancedSettings.setRedirectSDCard(sharedPrefs.getBoolean("bookmark.redirect_sdcard", false));
- advancedSettings.setRedirectSound(sharedPrefs.getBoolean("bookmark.redirect_sound", false));
+ advancedSettings.setRedirectSound(sharedPrefs.getInt("bookmark.redirect_sound", 0));
advancedSettings.setRedirectMicrophone(sharedPrefs.getBoolean("bookmark.redirect_microphone", false));
advancedSettings.setSecurity(sharedPrefs.getInt("bookmark.security", 0));
advancedSettings.setRemoteProgram(sharedPrefs.getString("bookmark.remote_program", ""));
readScreenSettings3G(bookmark, cursor);
readPerformanceFlags3G(bookmark, cursor);
bookmark.getAdvancedSettings().setRedirectSDCard(cursor.getInt(cursor.getColumnIndex("redirect_sdcard")) == 0 ? false : true);
- bookmark.getAdvancedSettings().setRedirectSound(cursor.getInt(cursor.getColumnIndex("redirect_sound")) == 0 ? false : true);
+ bookmark.getAdvancedSettings().setRedirectSound(cursor.getInt(cursor.getColumnIndex("redirect_sound")));
bookmark.getAdvancedSettings().setRedirectMicrophone(cursor.getInt(cursor.getColumnIndex("redirect_microphone")) == 0 ? false : true);
bookmark.getAdvancedSettings().setSecurity(cursor.getInt(cursor.getColumnIndex("security")));
bookmark.getAdvancedSettings().setConsoleMode(cursor.getInt(cursor.getColumnIndex("console_mode")) == 0 ? false : true);
private static native void freerdp_set_data_directory(int inst, String directory);
private static native void freerdp_set_clipboard_redirection(int inst, boolean enable);
- private static native void freerdp_set_sound_redirection(int inst, boolean enable);
+ private static native void freerdp_set_sound_redirection(int inst, int redirect);
private static native void freerdp_set_microphone_redirection(int inst, boolean enable);
private static native void freerdp_set_drive_redirection(int inst, String path);
}
// Sound redirection
- if (advancedSettings.getRedirectSound())
- freerdp_set_sound_redirection(inst, true);
+ freerdp_set_sound_redirection(inst,
+ advancedSettings.getRedirectSound());
// Microphone redirection
- if (advancedSettings.getRedirectMicrophone())
- freerdp_set_microphone_redirection(inst, true);
+ freerdp_set_microphone_redirection(inst,
+ advancedSettings.getRedirectMicrophone());
return true;
}