summaryrefslogtreecommitdiffstats
path: root/jni
diff options
context:
space:
mode:
authorTom Marshall <tdm@cyngn.com>2014-12-31 14:42:11 -0800
committerTom Marshall <tdm@cyngn.com>2014-12-31 14:42:11 -0800
commitb424b73e40ad5a6dd2f167ed8d5f6493cebb5473 (patch)
tree923957d0e037eee861c9f0187d7140de96472d48 /jni
parentbb6bb3f5e7e67d1ed734c3abc0d9303a6ed63021 (diff)
downloadandroid_packages_apps_Terminal-b424b73e40ad5a6dd2f167ed8d5f6493cebb5473.tar.gz
android_packages_apps_Terminal-b424b73e40ad5a6dd2f167ed8d5f6493cebb5473.tar.bz2
android_packages_apps_Terminal-b424b73e40ad5a6dd2f167ed8d5f6493cebb5473.zip
Add settings for fullscreen, orientation, font size, color
Change-Id: Id631fce7fc6a40a8f982097e3b90e7c58c2cd889
Diffstat (limited to 'jni')
-rw-r--r--jni/com_android_terminal_Terminal.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/jni/com_android_terminal_Terminal.cpp b/jni/com_android_terminal_Terminal.cpp
index 15e57a3..131912f 100644
--- a/jni/com_android_terminal_Terminal.cpp
+++ b/jni/com_android_terminal_Terminal.cpp
@@ -121,6 +121,7 @@ public:
bool flushInput();
status_t resize(dimen_t rows, dimen_t cols, dimen_t scrollRows);
+ status_t setColors(int fg, int bg);
status_t onPushline(dimen_t cols, const VTermScreenCell* cells);
status_t onPopline(dimen_t cols, VTermScreenCell* cells);
@@ -433,6 +434,24 @@ status_t Terminal::resize(dimen_t rows, dimen_t cols, dimen_t scrollRows) {
return 0;
}
+status_t Terminal::setColors(int fg, int bg) {
+ Mutex::Autolock lock(mLock);
+
+ ALOGD("setColors(%d, %d)", fg, bg);
+
+ VTermState* state = vterm_obtain_state(mVt);
+ VTermColor fg_color = { (uint8_t)((fg>>16)&0xff),
+ (uint8_t)((fg>>8)&0xff),
+ (uint8_t)(fg&0xff) };
+ VTermColor bg_color = { (uint8_t)((bg>>16)&0xff),
+ (uint8_t)((bg>>8)&0xff),
+ (uint8_t)(bg&0xff) };
+ vterm_state_set_default_colors(state, &fg_color, &bg_color);
+ vterm_state_reset(state, 0);
+
+ return 0;
+}
+
status_t Terminal::onPushline(dimen_t cols, const VTermScreenCell* cells) {
ScrollbackLine* line = NULL;
if (mScrollCur == mScrollSize) {
@@ -571,6 +590,12 @@ static jint com_android_terminal_Terminal_nativeResize(JNIEnv* env,
return term->resize(rows, cols, scrollRows);
}
+static jint com_android_terminal_Terminal_nativeSetColors(JNIEnv* env,
+ jclass clazz, jlong ptr, jint fg, jint bg) {
+ Terminal* term = reinterpret_cast<Terminal*>(ptr);
+ return term->setColors(fg, bg);
+}
+
static inline int toArgb(const VTermColor& color) {
return (0xff << 24 | color.red << 16 | color.green << 8 | color.blue);
}
@@ -684,6 +709,7 @@ static JNINativeMethod gMethods[] = {
{ "nativeDestroy", "(J)I", (void*)com_android_terminal_Terminal_nativeDestroy },
{ "nativeRun", "(J)I", (void*)com_android_terminal_Terminal_nativeRun },
{ "nativeResize", "(JIII)I", (void*)com_android_terminal_Terminal_nativeResize },
+ { "nativeSetColors", "(JII)I", (void*)com_android_terminal_Terminal_nativeSetColors },
{ "nativeGetCellRun", "(JIILcom/android/terminal/Terminal$CellRun;)I", (void*)com_android_terminal_Terminal_nativeGetCellRun },
{ "nativeGetRows", "(J)I", (void*)com_android_terminal_Terminal_nativeGetRows },
{ "nativeGetCols", "(J)I", (void*)com_android_terminal_Terminal_nativeGetCols },