mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
Remove async-input from clients
This commit is contained in:
@@ -282,7 +282,6 @@ public class BookmarkBase implements Parcelable, Cloneable
|
||||
editor.putBoolean("bookmark.console_mode", advancedSettings.getConsoleMode());
|
||||
|
||||
editor.putBoolean("bookmark.async_channel", debugSettings.getAsyncChannel());
|
||||
editor.putBoolean("bookmark.async_input", debugSettings.getAsyncInput());
|
||||
editor.putBoolean("bookmark.async_update", debugSettings.getAsyncUpdate());
|
||||
editor.putString("bookmark.debug_level", debugSettings.getDebugLevel());
|
||||
|
||||
@@ -355,7 +354,6 @@ public class BookmarkBase implements Parcelable, Cloneable
|
||||
advancedSettings.setConsoleMode(sharedPrefs.getBoolean("bookmark.console_mode", false));
|
||||
|
||||
debugSettings.setAsyncChannel(sharedPrefs.getBoolean("bookmark.async_channel", true));
|
||||
debugSettings.setAsyncInput(sharedPrefs.getBoolean("bookmark.async_input", true));
|
||||
debugSettings.setAsyncUpdate(sharedPrefs.getBoolean("bookmark.async_update", true));
|
||||
debugSettings.setDebugLevel(sharedPrefs.getString("bookmark.debug_level", "INFO"));
|
||||
}
|
||||
@@ -756,7 +754,6 @@ public class BookmarkBase implements Parcelable, Cloneable
|
||||
private String debug;
|
||||
private boolean asyncChannel;
|
||||
private boolean asyncTransport;
|
||||
private boolean asyncInput;
|
||||
private boolean asyncUpdate;
|
||||
|
||||
public DebugSettings()
|
||||
@@ -769,7 +766,6 @@ public class BookmarkBase implements Parcelable, Cloneable
|
||||
{
|
||||
asyncChannel = parcel.readInt() == 1;
|
||||
asyncTransport = parcel.readInt() == 1;
|
||||
asyncInput = parcel.readInt() == 1;
|
||||
asyncUpdate = parcel.readInt() == 1;
|
||||
debug = parcel.readString();
|
||||
}
|
||||
@@ -779,7 +775,6 @@ public class BookmarkBase implements Parcelable, Cloneable
|
||||
debug = "INFO";
|
||||
asyncChannel = true;
|
||||
asyncTransport = false;
|
||||
asyncInput = true;
|
||||
asyncUpdate = true;
|
||||
}
|
||||
|
||||
@@ -819,16 +814,6 @@ public class BookmarkBase implements Parcelable, Cloneable
|
||||
asyncUpdate = enabled;
|
||||
}
|
||||
|
||||
public boolean getAsyncInput()
|
||||
{
|
||||
return asyncInput;
|
||||
}
|
||||
|
||||
public void setAsyncInput(boolean enabled)
|
||||
{
|
||||
asyncInput = enabled;
|
||||
}
|
||||
|
||||
public boolean getAsyncChannel()
|
||||
{
|
||||
return asyncChannel;
|
||||
@@ -848,7 +833,6 @@ public class BookmarkBase implements Parcelable, Cloneable
|
||||
{
|
||||
out.writeInt(asyncChannel ? 1 : 0);
|
||||
out.writeInt(asyncTransport ? 1 : 0);
|
||||
out.writeInt(asyncInput ? 1 : 0);
|
||||
out.writeInt(asyncUpdate ? 1 : 0);
|
||||
out.writeString(debug);
|
||||
}
|
||||
|
||||
@@ -546,7 +546,6 @@ public class BookmarkActivity extends PreferenceActivity implements OnSharedPref
|
||||
debugSettingsChanged(sharedPreferences, "bookmark.debug_level");
|
||||
debugSettingsChanged(sharedPreferences, "bookmark.async_channel");
|
||||
debugSettingsChanged(sharedPreferences, "bookmark.async_update");
|
||||
debugSettingsChanged(sharedPreferences, "bookmark.async_input");
|
||||
}
|
||||
|
||||
private void initGatewaySettings(SharedPreferences sharedPreferences)
|
||||
@@ -578,12 +577,6 @@ public class BookmarkActivity extends PreferenceActivity implements OnSharedPref
|
||||
Preference pref = findPreference("bookmark.async_update");
|
||||
pref.setDefaultValue(enabled);
|
||||
}
|
||||
else if (key.equals("bookmark.async_input"))
|
||||
{
|
||||
boolean enabled = sharedPreferences.getBoolean(key, false);
|
||||
Preference pref = findPreference("bookmark.async_input");
|
||||
pref.setDefaultValue(enabled);
|
||||
}
|
||||
}
|
||||
|
||||
private void gatewaySettingsChanged(SharedPreferences sharedPreferences, String key)
|
||||
|
||||
@@ -117,8 +117,6 @@ public abstract class BookmarkBaseGateway
|
||||
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
|
||||
bookmark.getDebugSettings().getAsyncChannel());
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT,
|
||||
bookmark.getDebugSettings().getAsyncInput());
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
|
||||
bookmark.getDebugSettings().getAsyncUpdate());
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
|
||||
@@ -172,8 +170,6 @@ public abstract class BookmarkBaseGateway
|
||||
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
|
||||
bookmark.getDebugSettings().getAsyncChannel());
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT,
|
||||
bookmark.getDebugSettings().getAsyncInput());
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
|
||||
bookmark.getDebugSettings().getAsyncUpdate());
|
||||
values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
|
||||
@@ -327,7 +323,6 @@ public abstract class BookmarkBaseGateway
|
||||
columns.add(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL);
|
||||
columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL);
|
||||
columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE);
|
||||
columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT);
|
||||
|
||||
addBookmarkSpecificColumns(columns);
|
||||
}
|
||||
@@ -442,8 +437,6 @@ public abstract class BookmarkBaseGateway
|
||||
|
||||
bookmark.getDebugSettings().setAsyncChannel(
|
||||
cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL)) == 1);
|
||||
bookmark.getDebugSettings().setAsyncInput(
|
||||
cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT)) == 1);
|
||||
bookmark.getDebugSettings().setAsyncUpdate(
|
||||
cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE)) == 1);
|
||||
bookmark.getDebugSettings().setDebugLevel(
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.List;
|
||||
public class BookmarkDB extends SQLiteOpenHelper
|
||||
{
|
||||
public static final String ID = BaseColumns._ID;
|
||||
private static final int DB_VERSION = 9;
|
||||
private static final int DB_VERSION = 10;
|
||||
private static final String DB_BACKUP_PREFIX = "temp_";
|
||||
private static final String DB_NAME = "bookmarks.db";
|
||||
static final String DB_TABLE_BOOKMARK = "tbl_manual_bookmarks";
|
||||
@@ -68,7 +68,6 @@ public class BookmarkDB extends SQLiteOpenHelper
|
||||
static final String DB_KEY_BOOKMARK_REMOTE_PROGRAM = "remote_program";
|
||||
static final String DB_KEY_BOOKMARK_WORK_DIR = "work_dir";
|
||||
static final String DB_KEY_BOOKMARK_ASYNC_CHANNEL = "async_channel";
|
||||
static final String DB_KEY_BOOKMARK_ASYNC_INPUT = "async_input";
|
||||
static final String DB_KEY_BOOKMARK_ASYNC_UPDATE = "async_update";
|
||||
static final String DB_KEY_BOOKMARK_CONSOLE_MODE = "console_mode";
|
||||
static final String DB_KEY_BOOKMARK_DEBUG_LEVEL = "debug_level";
|
||||
@@ -282,7 +281,6 @@ public class BookmarkDB extends SQLiteOpenHelper
|
||||
bookmarkValues.put(DB_KEY_BOOKMARK_REMOTE_PROGRAM, "");
|
||||
bookmarkValues.put(DB_KEY_BOOKMARK_WORK_DIR, "");
|
||||
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_CHANNEL, 1);
|
||||
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_INPUT, 1);
|
||||
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_UPDATE, 1);
|
||||
bookmarkValues.put(DB_KEY_BOOKMARK_CONSOLE_MODE, 0);
|
||||
bookmarkValues.put(DB_KEY_BOOKMARK_DEBUG_LEVEL, "INFO");
|
||||
@@ -317,8 +315,7 @@ public class BookmarkDB extends SQLiteOpenHelper
|
||||
DB_KEY_BOOKMARK_REDIRECT_MICROPHONE + " INTEGER DEFAULT 0, " +
|
||||
DB_KEY_BOOKMARK_SECURITY + " INTEGER, " + DB_KEY_BOOKMARK_REMOTE_PROGRAM +
|
||||
" TEXT, " + DB_KEY_BOOKMARK_WORK_DIR + " TEXT, " + DB_KEY_BOOKMARK_ASYNC_CHANNEL +
|
||||
" INTEGER DEFAULT 0, " + DB_KEY_BOOKMARK_ASYNC_INPUT + " INTEGER DEFAULT 0, " +
|
||||
DB_KEY_BOOKMARK_ASYNC_UPDATE + " INTEGER DEFAULT 0, " +
|
||||
" INTEGER DEFAULT 0, " + DB_KEY_BOOKMARK_ASYNC_UPDATE + " INTEGER DEFAULT 0, " +
|
||||
DB_KEY_BOOKMARK_CONSOLE_MODE + " INTEGER, " + DB_KEY_BOOKMARK_DEBUG_LEVEL +
|
||||
" TEXT DEFAULT 'INFO', "
|
||||
|
||||
|
||||
@@ -333,7 +333,6 @@ public class LibFreeRDP
|
||||
}
|
||||
|
||||
args.add(addFlag("async-channels", debug.getAsyncChannel()));
|
||||
args.add(addFlag("async-input", debug.getAsyncInput()));
|
||||
args.add(addFlag("async-update", debug.getAsyncUpdate()));
|
||||
|
||||
if (advanced.getRedirectSDCard())
|
||||
|
||||
@@ -113,7 +113,6 @@
|
||||
<string name="settings_remote_program">Remote Program</string>
|
||||
<string name="settings_work_dir">Arbeitsverzeichnis</string>
|
||||
<string name="settings_async_channel">Async channel</string>
|
||||
<string name="settings_async_input">Async input</string>
|
||||
<string name="settings_async_update">Async update</string>
|
||||
<string name="settings_console_mode">Konsolenmodus</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -114,7 +114,6 @@
|
||||
<string name="settings_remote_program">Programa Remoto</string>
|
||||
<string name="settings_work_dir">Directorio de trabajo</string>
|
||||
<string name="settings_async_channel">Async channel</string>
|
||||
<string name="settings_async_input">Async input</string>
|
||||
<string name="settings_async_update">Async update</string>
|
||||
<string name="settings_console_mode">Modo Consola</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -113,7 +113,6 @@
|
||||
<string name="settings_remote_program">"Lancement de programme"</string>
|
||||
<string name="settings_work_dir">"Répertoire de travail"</string>
|
||||
<string name="settings_async_channel">Async channel</string>
|
||||
<string name="settings_async_input">Async input</string>
|
||||
<string name="settings_async_update">Async update</string>
|
||||
<string name="settings_console_mode">"Mode console"</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -115,7 +115,6 @@
|
||||
<string name="settings_remote_program">遠隔実行するプログラム</string>
|
||||
<string name="settings_work_dir">作業フォルダ</string>
|
||||
<string name="settings_async_channel">Async channel</string>
|
||||
<string name="settings_async_input">Async input</string>
|
||||
<string name="settings_async_update">Async update</string>
|
||||
<string name="settings_console_mode">コンソールモード</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
<string name="settings_remote_program">리모트 프로그램</string>
|
||||
<string name="settings_work_dir">작업 디렉터리</string>
|
||||
<string name="settings_async_channel">비동기 채널</string>
|
||||
<string name="settings_async_input">비동기 입력</string>
|
||||
<string name="settings_async_update">비동기 갱신</string>
|
||||
<string name="settings_console_mode">콘솔 모드</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
<string name="settings_remote_program">Fjernprogram</string>
|
||||
<string name="settings_work_dir">Arbeidsmappe</string>
|
||||
<string name="settings_async_channel">Asynk-kanal</string>
|
||||
<string name="settings_async_input">Asynk-inndata</string>
|
||||
<string name="settings_async_update">Asynk-oppdatering</string>
|
||||
<string name="settings_console_mode">Konsollmodus</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -114,7 +114,6 @@
|
||||
<string name="settings_remote_program">Extern programma</string>
|
||||
<string name="settings_work_dir">Werkmap</string>
|
||||
<string name="settings_async_channel">Async channel</string>
|
||||
<string name="settings_async_input">Async input</string>
|
||||
<string name="settings_async_update">Async update</string>
|
||||
<string name="settings_console_mode">Console modus</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
<string name="settings_remote_program">Programa remoto</string>
|
||||
<string name="settings_work_dir">Pasta de trabalho</string>
|
||||
<string name="settings_async_channel">Canal Async</string>
|
||||
<string name="settings_async_input">Async input</string>
|
||||
<string name="settings_async_update">Atualização Async</string>
|
||||
<string name="settings_console_mode">Modo Console</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -119,7 +119,6 @@
|
||||
<string name="settings_remote_program">远程程序</string>
|
||||
<string name="settings_work_dir">工作目录</string>
|
||||
<string name="settings_async_channel">异步通道</string>
|
||||
<string name="settings_async_input">异步输入</string>
|
||||
<string name="settings_async_update">异步更新</string>
|
||||
<string name="settings_console_mode">控制台模式</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
<string name="settings_remote_program">Remote Program</string>
|
||||
<string name="settings_work_dir">Working Directory</string>
|
||||
<string name="settings_async_channel">Async channel</string>
|
||||
<string name="settings_async_input">Async input</string>
|
||||
<string name="settings_async_update">Async update</string>
|
||||
<string name="settings_console_mode">Console Mode</string>
|
||||
<!-- App settings strings -->
|
||||
|
||||
@@ -31,8 +31,5 @@
|
||||
<CheckBoxPreference
|
||||
android:key="bookmark.async_update"
|
||||
android:title="@string/settings_async_update" />
|
||||
<CheckBoxPreference
|
||||
android:key="bookmark.async_input"
|
||||
android:title="@string/settings_async_input" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
@@ -419,80 +419,22 @@ static DWORD android_verify_changed_certificate_ex(freerdp* instance, const char
|
||||
return res;
|
||||
}
|
||||
|
||||
static DWORD WINAPI jni_input_thread(LPVOID arg)
|
||||
{
|
||||
HANDLE event[2];
|
||||
wMessageQueue* queue;
|
||||
freerdp* instance = (freerdp*)arg;
|
||||
WLog_DBG(TAG, "input_thread Start.");
|
||||
|
||||
if (!(queue = freerdp_get_message_queue(instance, FREERDP_INPUT_MESSAGE_QUEUE)))
|
||||
goto disconnect;
|
||||
|
||||
if (!(event[0] = android_get_handle(instance)))
|
||||
goto disconnect;
|
||||
|
||||
if (!(event[1] = freerdp_get_message_queue_event_handle(instance, FREERDP_INPUT_MESSAGE_QUEUE)))
|
||||
goto disconnect;
|
||||
|
||||
do
|
||||
{
|
||||
DWORD rc = WaitForMultipleObjects(2, event, FALSE, INFINITE);
|
||||
|
||||
if ((rc < WAIT_OBJECT_0) || (rc > WAIT_OBJECT_0 + 1))
|
||||
continue;
|
||||
|
||||
if (rc == WAIT_OBJECT_0 + 1)
|
||||
{
|
||||
wMessage msg;
|
||||
MessageQueue_Peek(queue, &msg, FALSE);
|
||||
|
||||
if (msg.id == WMQ_QUIT)
|
||||
break;
|
||||
}
|
||||
|
||||
if (android_check_handle(instance) != TRUE)
|
||||
break;
|
||||
} while (1);
|
||||
|
||||
WLog_DBG(TAG, "input_thread Quit.");
|
||||
disconnect:
|
||||
MessageQueue_PostQuit(queue, 0);
|
||||
ExitThread(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int android_freerdp_run(freerdp* instance)
|
||||
{
|
||||
DWORD count;
|
||||
DWORD status = WAIT_FAILED;
|
||||
HANDLE handles[64];
|
||||
HANDLE handles[MAXIMUM_WAIT_OBJECTS];
|
||||
HANDLE inputEvent = NULL;
|
||||
HANDLE inputThread = NULL;
|
||||
const rdpSettings* settings = instance->context->settings;
|
||||
rdpContext* context = instance->context;
|
||||
BOOL async_input = settings->AsyncInput;
|
||||
WLog_DBG(TAG, "AsyncInput=%" PRIu8 "", settings->AsyncInput);
|
||||
|
||||
if (async_input)
|
||||
{
|
||||
if (!(inputThread = CreateThread(NULL, 0, jni_input_thread, instance, 0, NULL)))
|
||||
{
|
||||
WLog_ERR(TAG, "async input: failed to create input thread");
|
||||
goto disconnect;
|
||||
}
|
||||
}
|
||||
else
|
||||
inputEvent = android_get_handle(instance);
|
||||
inputEvent = android_get_handle(instance);
|
||||
|
||||
while (!freerdp_shall_disconnect(instance))
|
||||
{
|
||||
DWORD tmp;
|
||||
count = 0;
|
||||
|
||||
if (inputThread)
|
||||
handles[count++] = inputThread;
|
||||
else
|
||||
handles[count++] = inputEvent;
|
||||
|
||||
tmp = freerdp_get_event_handles(context, &handles[count], 64 - count);
|
||||
@@ -527,29 +469,17 @@ static int android_freerdp_run(freerdp* instance)
|
||||
if (freerdp_shall_disconnect(instance))
|
||||
break;
|
||||
|
||||
if (!async_input)
|
||||
{
|
||||
if (android_check_handle(instance) != TRUE)
|
||||
{
|
||||
WLog_ERR(TAG, "Failed to check android file descriptor");
|
||||
status = GetLastError();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
disconnect:
|
||||
WLog_INFO(TAG, "Prepare shutdown...");
|
||||
|
||||
if (async_input && inputThread)
|
||||
{
|
||||
wMessageQueue* input_queue =
|
||||
freerdp_get_message_queue(instance, FREERDP_INPUT_MESSAGE_QUEUE);
|
||||
MessageQueue_PostQuit(input_queue, 0);
|
||||
WaitForSingleObject(inputThread, INFINITE);
|
||||
CloseHandle(inputThread);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user