summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCindy Zhou <zhouci@google.com>2020-01-15 13:19:26 -0800
committerCindy Zhou <zhouci@google.com>2020-01-27 13:26:14 -0800
commit1942e277f8267a6c55e9261a11166fd509670dfb (patch)
tree23cd5fc3c8108ed4b17c4eefc2ff92eea030e776
parentd179091ba1d6bbde7730b74bd65008ec05206ac9 (diff)
downloadteeui-1942e277f8267a6c55e9261a11166fd509670dfb.tar.gz
Add translation selection feature in java ui
Add feature in GUI to display different translations. Test: make -j 55 TeeuiFramebufferizer && LD_LIBRARY_PATH=./out/host/linux-x86/lib64 TeeuiFramebufferizer Change-Id: If8660aa233846e6398abd328978834a0043d8fc5
-rw-r--r--tools/framebufferizer/Android.bp3
-rw-r--r--tools/framebufferizer/src/com/android/framebufferizer/Main.java2
-rw-r--r--tools/framebufferizer/src/com/android/framebufferizer/NativeRenderer.java2
-rw-r--r--tools/framebufferizer/src/com/android/framebufferizer/utils/FrameBufferBuffer.java68
4 files changed, 44 insertions, 31 deletions
diff --git a/tools/framebufferizer/Android.bp b/tools/framebufferizer/Android.bp
index 0ed202d..96ea4ae 100644
--- a/tools/framebufferizer/Android.bp
+++ b/tools/framebufferizer/Android.bp
@@ -3,10 +3,9 @@
java_binary_host {
name: "TeeuiFramebufferizer",
- srcs: ["src/**/*.java"],
+ srcs: ["src/com/android/framebufferizer/**/*.java"],
manifest: "manifest-teeui-framebufferizer.mf",
required: [
"libteeui_jni",
]
}
-
diff --git a/tools/framebufferizer/src/com/android/framebufferizer/Main.java b/tools/framebufferizer/src/com/android/framebufferizer/Main.java
index 7d81fd3..8bd76dd 100644
--- a/tools/framebufferizer/src/com/android/framebufferizer/Main.java
+++ b/tools/framebufferizer/src/com/android/framebufferizer/Main.java
@@ -38,12 +38,14 @@ public class Main {
theFramebuffer.setFrame(theFrame);
FrameBufferBuffer.MagnifiedView magnifiedView = theFramebuffer.getMagnifiedView();
FrameBufferBuffer.DeviceSelector deviceSelector = theFramebuffer.getDeviceSelector();
+ FrameBufferBuffer.LanguageSelector languageSelector = theFramebuffer.getLanguageSelector();
magnifiedView.setPreferredSize(new Dimension(100, 100));
magnifiedView.setMinimumSize(new Dimension(100, 100));
magnifiedView.setMaximumSize(new Dimension(100, 100));
theFrame.getContentPane().add(magnifiedView, BorderLayout.EAST);
theFrame.getContentPane().add(theFramebuffer, BorderLayout.CENTER);
theFrame.getContentPane().add(deviceSelector, BorderLayout.NORTH);
+ theFrame.getContentPane().add(languageSelector, BorderLayout.SOUTH);
theFrame.pack();
theFrame.setVisible(true);
deviceSelector.refreshSelections();
diff --git a/tools/framebufferizer/src/com/android/framebufferizer/NativeRenderer.java b/tools/framebufferizer/src/com/android/framebufferizer/NativeRenderer.java
index e670123..0198892 100644
--- a/tools/framebufferizer/src/com/android/framebufferizer/NativeRenderer.java
+++ b/tools/framebufferizer/src/com/android/framebufferizer/NativeRenderer.java
@@ -25,4 +25,6 @@ public class NativeRenderer {
public static native int setDeviceInfo(DeviceInfo deviceInfo, boolean magnified);
public static native int renderBuffer(int x, int y, int width, int height, int lineStride, int[] buffer);
+ public static native void setLanguage(String language_id);
+ public static native String[] getLanguageIdList();
}
diff --git a/tools/framebufferizer/src/com/android/framebufferizer/utils/FrameBufferBuffer.java b/tools/framebufferizer/src/com/android/framebufferizer/utils/FrameBufferBuffer.java
index aefa8dc..a1104f1 100644
--- a/tools/framebufferizer/src/com/android/framebufferizer/utils/FrameBufferBuffer.java
+++ b/tools/framebufferizer/src/com/android/framebufferizer/utils/FrameBufferBuffer.java
@@ -87,7 +87,6 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
}
- public static enum Devices { CORAL, BONITO, SARGO, CROSSHATCH, BLUELINE;}
public class DeviceSelector extends JPanel implements ActionListener {
private JComboBox<String> dropDownMenu = new JComboBox(DeviceInfoDB.Device.values());
@@ -107,7 +106,7 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
}
public void refreshSelections(){
- dropDownMenu.setSelectedItem(Devices.CORAL);
+ dropDownMenu.setSelectedItem(DeviceInfoDB.Device.CORAL);
}
public DeviceInfoDB.Device currentDevice() {
@@ -119,11 +118,33 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
}
}
+ public class LanguageSelector extends JPanel implements ActionListener {
+ String languages [] = NativeRenderer.getLanguageIdList();
+
+ private JComboBox<String> dropDownMenu;
+
+ protected LanguageSelector() {
+ dropDownMenu = new JComboBox(languages);
+ dropDownMenu.addActionListener(this);
+ this.add(dropDownMenu);
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ synchronized (this) {
+ String language = (String) dropDownMenu.getSelectedItem();
+ NativeRenderer.setLanguage(language);
+ FrameBufferBuffer.this.calibrateNativeBuffer();
+ }
+ }
+
+ }
+
private BufferedImage mImage;
private DataBufferInt mBuffer;
private MagnifiedView mMagnifiedView;
private DeviceSelector mDeviceSelector;
+ private LanguageSelector mLanguageSelector;
private JFrame mFrame;
public MagnifiedView getMagnifiedView() {
@@ -140,6 +161,13 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
return mDeviceSelector;
}
+ public LanguageSelector getLanguageSelector(){
+ if (mLanguageSelector == null){
+ mLanguageSelector = new LanguageSelector();
+ }
+ return mLanguageSelector;
+ }
+
@Override
public void mouseDragged(MouseEvent e) {
@@ -186,29 +214,6 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
public void componentResized(ComponentEvent e) {
calibrateNativeBuffer();
repaint();
- /* get set values and then let it resize based off of the values passed through this */
- // int w = getWidth();
- // int h = getHeight();
- // System.out.println( "width=" + getWidth() + " height=" + getHeight());
- // final int linestride = w;
- // final int rMask = 0xff;
- // final int gMask = 0xff00;
- // final int bMask = 0xff0000;
- // final int bpp = 24;
- // synchronized (this) {
- // mBuffer = new DataBufferInt(h * linestride);
- // WritableRaster raster = Raster.createPackedRaster(mBuffer, w, h, linestride,
- // new int[]{rMask, gMask, bMask}, null);
- // ColorModel colorModel = new DirectColorModel(bpp, rMask, gMask, bMask);
- // mDeviceSelector.mImage = new BufferedImage(colorModel, raster, true, null);
- // NativeRenderer.setDeviceInfo(w, h, -1, w/412.0, 5.5);
- // int error = NativeRenderer.renderBuffer(0, 0, w, h, linestride, mBuffer.getData());
- // if (error != 0) {
- // System.out.println("Error rendering native buffer " + error);
- // }
- // }
- // repaint();
- // how to resize within ratio of everything
}
@Override
public void componentMoved(ComponentEvent e) {
@@ -237,8 +242,12 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
}
public void calibrateNativeBuffer(){
- DeviceInfo deviceInfo = DeviceInfoDB.getDeviceInfo(getDeviceSelector().currentDevice());
- boolean magnified = getDeviceSelector().magnified();
+ DeviceInfo deviceInfo = DeviceInfoDB.getDeviceInfo(getDeviceSelector().currentDevice());
+ boolean magnified = getDeviceSelector().magnified();
+ renderNativeBuffer(deviceInfo, magnified);
+ repaint();
+ }
+ public int renderNativeBuffer(DeviceInfo deviceInfo, boolean magnified){
int w = deviceInfo.getWidthPx();
int h = deviceInfo.getHeightPx();
final int linestride = w;
@@ -246,6 +255,7 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
final int gMask = 0xff00;
final int bMask = 0xff0000;
final int bpp = 24;
+ int error = 0;
synchronized (this) {
mBuffer = new DataBufferInt(h * linestride);
WritableRaster raster = Raster.createPackedRaster(mBuffer, w, h, linestride,
@@ -253,7 +263,7 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
ColorModel colorModel = new DirectColorModel(bpp, rMask, gMask, bMask);
BufferedImage image = new BufferedImage(colorModel, raster, true, null);
NativeRenderer.setDeviceInfo(deviceInfo, magnified);
- int error = NativeRenderer.renderBuffer(0, 0, w, h, linestride, mBuffer.getData());
+ error = NativeRenderer.renderBuffer(0, 0, w, h, linestride, mBuffer.getData());
if (error != 0) {
System.out.println("Error rendering native buffer " + error);
}
@@ -266,6 +276,6 @@ public class FrameBufferBuffer extends JPanel implements ComponentListener, Mous
gc.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
gc.drawRenderedImage(image, AffineTransform.getScaleInstance(scale, scale));
}
- repaint();
+ return error;
}
}