Hi,in fact,I&#39;m not sure of where the bug comes,for it&#39;s said glib works well on ARM. Are you familiar with Android NDK devel.(It&#39;s rather diff. from the common ARM cross compiling.)?Do you have Android SDK/NDK and Android device that you can test the native program?<br>

   You can recreate it by these:<br>1.I use the android NDK provided by Mozzila which has nearly full C++ support:<br><span style="font-size: medium;"><span style="color: rgb(0, 0, 255);"><span style="color: rgb(136, 136, 136);"><span style="color: rgb(0, 0, 0);"></span></span></span></span><a href="http://ftp.mozilla.org/pub/mozilla.org/mobile/source/android-ndk-r4c-0moz3.tar.bz2" target="_blank">http://ftp.mozilla.org/pub/mozilla.org/mobile/source/android-ndk-r4c-0moz3.tar.bz2</a><br>

and I have modified <span><span>Andrew Ross&#39;s agcc to partner with this NDK:<br><a href="http://blog.csdn.net/rozenix/archive/2011/02/28/6212994.aspx" target="_blank">http://blog.csdn.net/rozenix/archive/2011/02/28/6212994.aspx</a><br>

2. Then I cross compile glib2.28.1 onto Android in this order:<br>libbind-6.0.tar.gz       libiconv-1.13.1.tar.gz    <br>gettext-0.18.1.1.tar.gz   glib-2.28.1.tar.gz<br>  Also I port pixman and openssl onto android.<br>3. So I disable the audio channels and build snappy onto android with this script under spice-gtk/gtk:<br>
#!/bin/bash<br>COMMON_DIR=../common<br>SPICE_GLIB_SRC=&quot;coroutine_gthread.c spice-util.c spice-session.c spice-channel.c spice-glib-enums.c spice-marshal.c generated_demarshallers.c generated_demarshallers1.c generated_marshallers.c generated_marshallers1.c gio-coroutine.c channel-base.c channel-main.c channel-display.c channel-display-mjpeg.c channel-cursor.c channel-inputs.c decode-glz.c decode-jpeg.c decode-zlib.c $COMMON_DIR/mem.c $COMMON_DIR/marshaller.c $COMMON_DIR/canvas_utils.c $COMMON_DIR/sw_canvas.c $COMMON_DIR/pixman_utils.c $COMMON_DIR/lines.c $COMMON_DIR/rop3.c $COMMON_DIR/quic.c $COMMON_DIR/lz.c $COMMON_DIR/region.c $COMMON_DIR/ssl_verify.c&quot;<br>
CPP_FLAGS=&quot;-DHAVE_CONFIG_H -DSW_CANVAS_CACHE  -D_REENTRANT -I. -I.. -I../common -I/data/local/include/spice-1 -I/data/local/include/pixman-1 -I/data/local/include -I/data/local/include/glib-2.0 -I/data/local/lib/glib-2.0/include&quot;<br>
C_FLAGS=&quot;-std=gnu99 -Wall -Wno-sign-compare -Wno-deprecated-declarations -Wl,--no-undefined -fPIC -DPIC &quot;<br>LD_FLAGS=&quot;-L/data/local/lib/ -lpixman-1 -lm  -lssl -lcrypto -ljpeg -lz -lglib-2.0  -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 &quot;<br>
echo &quot;agcc -shared -o libspicec_glib.so $SPICE_GLIB_SRC $CPP_FLAGS $C_FLAGS $LD_FLAGS&quot;<br>agcc -shared -o libspicec.so  $SPICE_GLIB_SRC $CPP_FLAGS $C_FLAGS $LD_FLAGS<br>agcc -o snappy spice-cmdline.c snappy.c -DG_LOG_DOMAIN=\&quot;GSpice\&quot; -DSW_CANVAS_CACHE -DSPICE_GTK_LOCALEDIR=\&quot;/usr/local/share/locale\&quot; $CPP_FLAGS $C_FLAGS $LD_FLAGS -lspicec -lintl -liconv -L./<br>
   then I copy lib*.so libspicec.so and snappy onto Android device and run,thus come the endless SIGBUS and SIGFAULT.<br>   Can you help me on this? Thank you forward!<br>   Rgrds.<br>   <br>
</span></span><div class="gmail_quote">On Fri, Mar 18, 2011 at 6:52 PM, Alon Levy <span dir="ltr">&lt;<a href="mailto:alevy@redhat.com" target="_blank">alevy@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div>On Fri, Mar 18, 2011 at 06:26:09PM +0800, Shuxiang Lim wrote:<br>
&gt; Hi,<br>
</div><div>&gt;   I have to say I cannot solve the glib bugs on Android &#39;cause it&#39;s too<br>
&gt; arcane and too huge for me now. e.g such a statement will cause a segfault:<br>
&gt; gobject/gtype.c :<br>
&gt;       return static_fundamental_type_nodes[utype &gt;&gt;<br>
&gt; G_TYPE_FUNDAMENTAL_SHIFT];<br>
&gt; when utype==0; for why, I never know and can get no help..<br>
&gt;   So I shall face the decision again, return to C++? No! STL and class<br>
&gt; hierarchies etc. is even more horrible! I have only one choice: remove the<br>
&gt; glib from the spice-gtk now.<br>
&gt;   Anybody can give some suggestions on this?<br>
&gt;   Good weekend.<br>
<br>
</div>Can I recreate this in qemu-arm? can you give instructions?<br>
<br>
Regarding converting to no glib, I don&#39;t know how hard it would be.<br>
<div><div></div><div><br>
&gt; On Fri, Mar 18, 2011 at 5:15 PM, Alon Levy &lt;<a href="mailto:alevy@redhat.com" target="_blank">alevy@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On Fri, Mar 18, 2011 at 02:09:38PM +0800, Shuxiang Lim wrote:<br>
&gt; &gt; &gt; Ok,my prediction is right, this segfault is solved by disabling NLS (the<br>
&gt; &gt; use<br>
&gt; &gt; &gt; of gettext(). etc..)in glib.<br>
&gt; &gt; &gt; Yet then Bus Error comes: I know,it&#39;s mainly caused by the typecast for<br>
&gt; &gt; ARM<br>
&gt; &gt; &gt; has no same alignment style as x86.The question is: is there a way to fix<br>
&gt; &gt; &gt; this in the arm-gcc option other than rewrite the typecast statements<br>
&gt; &gt; into<br>
&gt; &gt; &gt; memcpy()?(There are huge amount of such statements in glib.). The -O0<br>
&gt; &gt; option<br>
&gt; &gt; &gt; doesnot work.<br>
&gt; &gt; &gt;   Rgrds.<br>
&gt; &gt;<br>
&gt; &gt; This is strange, as I know glib is used by maemo, running on n900, which is<br>
&gt; &gt; an arm.<br>
&gt; &gt;<br>
&gt; &gt; No idea, sorry.<br>
&gt; &gt;<br>
&gt; &gt; &gt; On Fri, Mar 18, 2011 at 11:52 AM, Shuxiang Lim &lt;<a href="mailto:shohyanglim@gmail.com" target="_blank">shohyanglim@gmail.com</a><br>
&gt; &gt; &gt;wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hi,all,caution of the radioactive rays!<br>
&gt; &gt; &gt; &gt;   I feel rather frustrated though...Now I have ported libglib2.0 and<br>
&gt; &gt; its<br>
&gt; &gt; &gt; &gt; deps(libintl,libiconv...) onto android as well as libspicec-glib.so and<br>
&gt; &gt; &gt; &gt; snappy.<br>
&gt; &gt; &gt; &gt; But when run,the snappy  got only SEGFAULT and killed.<br>
&gt; &gt; &gt; &gt; *#LD_LIBRARY_PATH=/data/local/lib ./snappy -h 192.168.1.31 -p 5900 -o<br>
&gt; &gt; &gt; &gt; ahoo.ppm*<br>
&gt; &gt; &gt; &gt; *[1] + Stopped (signal)        LD_LIBRARY_PATH=/data/local/lib ./snappy<br>
&gt; &gt; -h<br>
&gt; &gt; &gt; &gt; 192.168.1.31 -p 5900 -o ahoo.ppm<br>
&gt; &gt; &gt; &gt; [1]   Segmentation fault      LD_LIBRARY_PATH=/data/local/lib ./snappy<br>
&gt; &gt; -h<br>
&gt; &gt; &gt; &gt; 192.168.1.31 -p 5900 -o ahoo.ppm*<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Tracing the process,I found the SEGFAULT came from the<br>
&gt; &gt; &gt; &gt; glib:g_object_new()!:<br>
&gt; &gt; &gt; &gt; gtk/spice-session.c:<br>
&gt; &gt; &gt; &gt; addr = g_object_new (G_TYPE_NETWORK_ADDRESS, &quot;hostname&quot;, s-&gt;host,<br>
&gt; &gt; &quot;port&quot;,<br>
&gt; &gt; &gt; &gt; port, NULL);<br>
&gt; &gt; &gt; &gt; --&gt;libgobject:gobject/gtype.c<br>
&gt; &gt; &gt; &gt; g_object_new()--&gt;g_type_class_ref()--&gt;type_class_init_Wm()<br>
&gt; &gt; &gt; &gt; --&gt;libgio:gio/gnetworkaddress.c<br>
&gt; &gt; &gt; &gt; g_network_address_class_init()--&gt;CRASSSSHHHH.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Now I&#39;m still tracing the bug... It may come from the i18n string ops,<br>
&gt; &gt; but<br>
&gt; &gt; &gt; &gt; if other bug occurs in glib,the future is dim... For I really has no<br>
&gt; &gt; time<br>
&gt; &gt; &gt; &gt; and energy to hack the arcane and exotic glib(or it&#39;s caused by the<br>
&gt; &gt; &gt; &gt; incorrect use of glib method in spicec?).(forgive such adjectives,to<br>
&gt; &gt; me,it&#39;s<br>
&gt; &gt; &gt; &gt; true)<br>
&gt; &gt; &gt; &gt;  I really yearn for the spicec in PURE C and Modularized:<br>
&gt; &gt; &gt; &gt; 1.Offer the switch to disable (do not POSIX-likedly depend on) locale,<br>
&gt; &gt; &gt; &gt; libiconv, libintl, sys/shm.h, pwd.h, pthread,i18n,<br>
&gt; &gt; wchar_t,regex,gettext,...<br>
&gt; &gt; &gt; &gt; for none of them can be found in android!<br>
&gt; &gt; &gt; &gt; 2. Be as far away as we can from the other libs like the<br>
&gt; &gt; &gt; &gt; glib/gtk,pulseaudio/alsalib...<br>
&gt; &gt; &gt; &gt; 3. Completely modularize spicec into libspicec and  spicec (this is<br>
&gt; &gt; what I<br>
&gt; &gt; &gt; &gt; am working for)<br>
&gt; &gt; &gt; &gt; as the data layer and the UI layer to ease the porting.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;   Is there any plan about these now? Can anybody help to do the step 1<br>
&gt; &gt; or<br>
&gt; &gt; &gt; &gt; step 2 above?<br>
&gt; &gt; &gt; &gt;   Or, the simplest: the way to safely turn off locale and i18n in glib?<br>
&gt; &gt; &gt; &gt;     Pardon my whining and wish me Goodluck!<br>
&gt; &gt; &gt; &gt;     And again I shall desperately curse Android and bless Meego!<br>
&gt; &gt; &gt; &gt;   Regards.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Thu, Mar 10, 2011 at 9:07 AM, Shuxiang Lim &lt;<a href="mailto:shohyanglim@gmail.com" target="_blank">shohyanglim@gmail.com</a><br>
&gt; &gt; &gt;wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; That&#39;s true. But the audio output as well as the image output is<br>
&gt; &gt; unexposed<br>
&gt; &gt; &gt; &gt;&gt; or disabled for C/C++ apps in Android.So I plan to dwindle the work to<br>
&gt; &gt; &gt; &gt;&gt; implement the image first,if success, the audio work will be easy to<br>
&gt; &gt; follow.<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; Regards.<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; On Wed, Mar 9, 2011 at 6:22 PM, Attila Sukosd &lt;<br>
&gt; &gt; <a href="mailto:attila.sukosd@gmail.com" target="_blank">attila.sukosd@gmail.com</a>&gt;wrote:<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt; Could you maybe give access to other devs to aid the development?<br>
&gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt; Rgrds,<br>
&gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt; Attila<br>
&gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt; On Wed, Mar 9, 2011 at 11:18 AM, Shuxiang Lim &lt;<a href="mailto:shohyanglim@gmail.com" target="_blank">shohyanglim@gmail.com</a><br>
&gt; &gt; &gt;wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; Yep, I walked around this but to face more chored and nasty troubles<br>
&gt; &gt; in<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; porting Pulseaudio lib, time limited, so I decided to DISABLE the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; audio(playback/record) channels first. Thus the porting of<br>
&gt; &gt; libspicec_glib.so<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; is finished(along with all its dependences) and<br>
&gt; &gt; androidVNCViewer(whose UI<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; will be peeled to become spicec&#39;s) proj. has been built:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; *#file libspicec_glib.so *<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; libspicec_glib.so: ELF 32-bit LSB shared object, ARM, version 1<br>
&gt; &gt; (SYSV),<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; dynamically linked, not stripped<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; *#arm-eabi-readelf -d libspicec_glib.so *<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; Dynamic section at offset 0x774a4 contains 27 entries:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;   Tag        Type                         Name/Value<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library: [libc.so]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library: [libm.so]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libpixman-1.so.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libssl.so.1.0.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libcrypto.so.1.0.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; [libjpeg.so.62]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library: [libz.so]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libglib-2.0.so.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libgio-2.0.so.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libgobject-2.0.so.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libgmodule-2.0.so.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000001 (NEEDED)                     Shared library:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; [libgthread-2.0.so.0]<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  0x00000010 (SYMBOLIC)                   0x0<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  ....<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; Now comes the last adventure of Native interfaces exposing and UI<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; building!<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;  Regards.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; On Wed, Mar 9, 2011 at 3:57 PM, Shuxiang Lim &lt;<a href="mailto:shohyanglim@gmail.com" target="_blank">shohyanglim@gmail.com</a><br>
&gt; &gt; &gt;wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; Well, I think I may try the &quot;--with-coroutine=gthread&quot; in spice-gtk<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; configuring to walk around that...<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt; On Wed, Mar 9, 2011 at 11:10 AM, Shuxiang Lim &lt;<br>
&gt; &gt; <a href="mailto:shohyanglim@gmail.com" target="_blank">shohyanglim@gmail.com</a>&gt;wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; Hi,I need help!<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;   Now I&#39;ve managed to divided spicec-gtk into two parts<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; libspicec.so(based on libpixman.so,libglib-2.0.so...No relation to<br>
&gt; &gt; X11 at<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; all) and spicec(based on libspicec.so and libgtk.so...). And the<br>
&gt; &gt; glib2.0<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; porting to Android is also completed. But I&#39;m blocked in compiling<br>
&gt; &gt; libspicec<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; onto Android at the begining for the continuation.c uses the<br>
&gt; &gt; functions in<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; &lt;ucontext.h&gt; :setcontext(),getcontext()..., which are some<br>
&gt; &gt; thread-related<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; funcs as I know,and, definitely unsuprisingly, Android libc<br>
&gt; &gt; doesn&#39;t have<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; them! Is there a way to drop or replace the use of such funcs? Or<br>
&gt; &gt; should I<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; manually write setcontext from scratch?<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;   RGRDs.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt; On Mon, Mar 7, 2011 at 5:14 PM, Alon Levy &lt;<a href="mailto:alevy@redhat.com" target="_blank">alevy@redhat.com</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; On Mon, Mar 07, 2011 at 09:08:28AM +0800, Shuxiang Lim wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Option 1: use spice-gtk with a gtk android backend<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; a) compiling gtk for it would be possible.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; b) write a partial gtk backend, good enough for spice-gtk.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; c) no changes to spice-gtk.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;    Yep,that&#39;s really a good hope,but it&#39;s another project(too<br>
&gt; &gt; huge<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; and far<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; away for me now):<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Project:&quot;GTK for Android.&quot;. So now I can use only the Android<br>
&gt; &gt; SDK<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; to finish<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; the UI(the new native UI APIs in NDK is not reliable in<br>
&gt; &gt; versions).<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; Yeah, I think you&#39;re right, I can&#39;t find anyone already working<br>
&gt; &gt; on<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; this by<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; simple web search. Maybe spice-gtk&#39;s non ui objects are dependent<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; only on<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; gobject / stuff that is easy to just drop in (ugly, but still<br>
&gt; &gt; more<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; maintainable<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; then basing your work on spicec, long term).<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;    And also you&#39;ve referred that &quot;spicec is already platform<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; independent&quot;,<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; that&#39;s true to Linux and Windows,but not to Android,for such<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; independence is<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; based on the C++ independence over the os which cannot stand<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; through the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; JAVA UIed android.So there is no way to just add a subdir<br>
&gt; &gt; ./android<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; under<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; spice/client along with ./x11 and ./windows. It should be a<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; combined proj.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; of C/C++ and Java. (That&#39;s why I hate Android and yearn for<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; Maemo/Meego.)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; Definitely easier to port to Maemo :)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;    Regards.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; On Fri, Mar 4, 2011 at 7:04 PM, Alon Levy &lt;<a href="mailto:alevy@redhat.com" target="_blank">alevy@redhat.com</a>&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; On Fri, Mar 04, 2011 at 06:21:19PM +0800, Shuxiang Lim wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;  Hi, friends,<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;     Thanks for your replies. It&#39;s definitely right till now<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; I&#39;ve been<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; working a tougher way compared to spice-gtk.And actually<br>
&gt; &gt; I&#39;ve<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; considered<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; to<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; steer my way to the latter in fear of the troublesome and<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; crippled C++<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; support in Android NDK:C is more &quot;simple and safe&quot; in<br>
&gt; &gt; Android<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; than C++.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; But,AFAIK,there is no gtk port for Android yet. And the<br>
&gt; &gt; biggest<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; obstacle<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; is<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; the framework of Android:in its design,all UI should be<br>
&gt; &gt; done in<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; JAVA<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; powered<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; by SKIA libs.Therefore the port of UI libs(GTK,etc) will be<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; choked by the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; I/O level because Android don&#39;t completely expose them  at<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; all!(I once<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; managed to port Xfbdev onto it,but that&#39;s not commercially<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; practical at<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; all,<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; it&#39;s just a geeky trick maybe,an app in Android SHOULD NOT<br>
&gt; &gt; do<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; this.) Only<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; the algorithm/data computing-related C/C++ libs are<br>
&gt; &gt; welcomed to<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; be the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; JNI<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; servants to JAVA UI apps in Android.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;    You see, in such aspect, there is not too much diff<br>
&gt; &gt; between<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; the C++<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; way<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; and gtk way in the porting of UI part.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; I&#39;m going to try to prove that wrong by grepping hoping it<br>
&gt; &gt; makes<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; sense, I<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; never<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; actually coded in gtk:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; $ git grep GObjectClass<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/channel-cursor.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/channel-display.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/channel-inputs.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/channel-main.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/channel-playback.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/channel-record.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-audio.h:    GObjectClass parent_class;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-channel.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; G_OBJECT_CLASS<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; (klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-channel.h:    GObjectClass parent_class;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-gstaudio.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-pulse.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-session.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-session.h:    GObjectClass parent_class;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-widget.c:    GObjectClass *gobject_class =<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; G_OBJECT_CLASS(klass);<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; otoh:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; U playa:spice-gtk alon (master)$ git grep --name-only<br>
&gt; &gt; GdkWindow<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-widget-cairo.c<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; gtk/spice-widget.c<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; (if you grep Window you get false negatives because of the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; compression<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; window).<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; Anyway, this is a lame attempt to prove the gtk stuff that<br>
&gt; &gt; does<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; ui (read:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; uses X)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; is separated in the code/architecture level :)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;    So for me the shining light of spicec-gtk is not in<br>
&gt; &gt; &quot;GTK&quot;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; but in &quot;C&quot;.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;  I<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; dare not to say I&#39;m clear about every nook in spicec at<br>
&gt; &gt; all. My<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; best hope<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; is<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; that the IO in spicec shall be straight and succinct ,the<br>
&gt; &gt; inner<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; graphic/sound computing(decompress,etc) shall have NO<br>
&gt; &gt; relation<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; with upper<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; UI<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; libs at all, so I can pipe the Finished image flow into UI<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; through JNI<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; interfaces and direct the user input backward.  (That&#39;s why<br>
&gt; &gt; I<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; can borrow<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; UI from AndroidVNCViewer)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; Yeah, I think it is generally so, but again, it&#39;s so in<br>
&gt; &gt; spice-gtk<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; too, and<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; that&#39;s<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; our only future supported client (*).<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; (*) plans do change.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;  libspicec.so(do most jobs)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &lt;==finishedimages/audio&gt;&gt;===&lt;&lt;inputs==&gt;spicec.java.ui(only<br>
&gt; &gt; UI)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; Am I right? Is there any design that will frustrate this in<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; spicec or<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; spice-gtk?<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; spicec is already separated at the platform level, since it<br>
&gt; &gt; uses<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; low level<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; libraries directly, unlike spice-gtk (X and GDI). So you<br>
&gt; &gt; would<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; basically<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; be adding a platform/android.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; In gtk I really haven&#39;t done android development, ever, at<br>
&gt; &gt; least<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; not in the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; C level, but I was hoping:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; Option 1: use spice-gtk with a gtk android backend<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; a) compiling gtk for it would be possible.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; b) write a partial gtk backend, good enough for spice-gtk.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; c) no changes to spice-gtk.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; Option 2 is of course to make spice-gtk also have platform<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; separation,<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; while<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; still using gtk/gobject for all stuff that would Just Work<br>
&gt; &gt; when<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; doing 1.a<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; (the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; data structures, the signals, the macros, the<br>
&gt; &gt; introspection?).<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;   Regards.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; On Fri, Mar 4, 2011 at 4:36 PM, Alon Levy &lt;<br>
&gt; &gt; <a href="mailto:alevy@redhat.com" target="_blank">alevy@redhat.com</a>&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; On Fri, Mar 04, 2011 at 03:38:51PM +0800, Shuxiang Lim<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; Hi all,<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;    I&#39;m trying these days to port spicec into<br>
&gt; &gt; Android.But<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; it&#39;s a<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; rather<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; TOUGH<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; way to go because the structure of spicec and android<br>
&gt; &gt; are<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; desperately<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; inappropriate:the linux version of spicec is based on<br>
&gt; &gt; the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; X11,which<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; is<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; not<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; available in Android,thus the UI of spicec should be<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; rewritten from<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; scratch...More troublesome is that the UI part and data<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; part in<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; current<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; Haven&#39;t looked at your proposal below yet, but did you<br>
&gt; &gt; check<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; spice-gtk<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; work? maybe it is easier to start from that? are gtk<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; libraries<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; available on<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; android? not talking about X. spice-gtk has objects for<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; connection and<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; channels<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; that afaik don&#39;t do any output, that&#39;s separate from the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; actual widget<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; that<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; uses X. Also, gtk 3 has backends - did anyone do a<br>
&gt; &gt; backend<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; for android?<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; Since going forward we plan to ditch the spicec client,<br>
&gt; &gt; that<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; would be<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; really<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; preffered. Now that I see what you have planned it sounds<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; good, but<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; better<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; to use spice-gtk.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; of course that&#39;s not to say we won&#39;t love to see this<br>
&gt; &gt; working<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; anyway :)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; spicec is entangled in the hierarchical system in C++!<br>
&gt; &gt; So<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; my plan is<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; this:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; first split the spicec into two parts,data and<br>
&gt; &gt; UI,transform<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; the data<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; part<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; into libspicec.so;then rewrite the UI part in JAVA.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; Besides, I should<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; also<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; tinker some problems caused by the Crippled NDK C++<br>
&gt; &gt; support<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; and the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; Lamed<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; bionic c lib in android .<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;    And now the first step is roughly done,hence the<br>
&gt; &gt; change<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; of the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; spicec<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; structure:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;    From<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; |--&gt;playback<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; |--&gt;cursor<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; spicec:spicec process(application process)--&gt;main<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; thread-&gt;|--&gt;*record<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; thread<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; *<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; |--&gt;inputs<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; |--&gt;display<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; To:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; ===========================&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |--&gt;libspicec.so:application<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; thread--&gt;main<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread------&gt;|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |              |&lt;--display<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; thread&lt;--|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;      |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |         |---&gt;|&lt;--cursor<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread&lt;---|&lt;------------------|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |         |    |&lt;--inputs<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; thread&lt;---|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; spicec:spicec process---&gt;|         |    |&lt;--playback<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; thread&lt;-|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |         |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |         |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |         |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; &lt;---------------------------------------------|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;       |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;       |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                          |--&gt;spicec:platform<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread------------------------------&gt;|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; The hierarchical relationship has been unleashed with<br>
&gt; &gt; one<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; thread(record<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; channel) deleted and two new threads (app and platform)<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;  created. The<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; first<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; as the &quot;data thread&quot;,the other as the &quot;work thread&quot;<br>
&gt; &gt; which<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; is driven<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; by<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; signals from the first thread as well as its sub<br>
&gt; &gt; threads<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; and<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; requested to<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; do<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; the UI-related work:<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; platform thread:------------&gt;blocked and waiting:--&gt;job<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; request-&lt;--------------|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                           |           |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                         |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                           ^           |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                         |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                           |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; |                         |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; |&lt;----------|-&lt;-|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                     |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                                       |<br>
&gt; &gt;   |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                 |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;         platform thread over&lt;----------if(job==die)&lt;--|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; send req.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; blocked<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; and waiting<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                               |<br>
&gt; &gt;   ^<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;     |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                               |<br>
&gt; &gt;   |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;        ^<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                               |<br>
&gt; &gt;   |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; _________|_________<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;                                               |<br>
&gt; &gt;   |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; | app/plbk/cusor<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thd<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;              |&lt;---job done----dojob()&lt;--else--|<br>
&gt; &gt;   |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; |-&gt;go<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; on-&gt;|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; __________________<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;              |<br>
&gt; &gt;    |<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;              |-------------------------------&gt;feed<br>
&gt; &gt; back--&gt;|<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; So the next work is to expose the native JNI interface<br>
&gt; &gt; in<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; platform<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; thread<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; to<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; the UI written in Android SDK. I try to use the UI<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; frame of AndroidVNCViewer in<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; <a href="http://code.google.com/p/*android*-*vnc*-viewer/,then" target="_blank">code.google.com/p/*android*-*vnc*-viewer/,then</a> the<br>
&gt; &gt; work of<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; platform<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; thread will be replaced by UI but the msg<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; communication to libspicec will be remained. That&#39;s the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; easiest way I<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; can<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; envisage except rewriting all parts in spicec from<br>
&gt; &gt; scratch.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; It&#39;s tough too, for I have poor experiance in Java...<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;    Anyway, is there any other guy working on this? Is<br>
&gt; &gt; my<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; way<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; feasible??Any<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; Ideas or help is appreciated.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; See above for ideas, don&#39;t read them as a criticism, I<br>
&gt; &gt; think<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; this is<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; fantastic<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; what you&#39;ve done so far. I remember someone posting &quot;we<br>
&gt; &gt; are<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; working on<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; andriod<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; in our spare time&quot; post to spice-devel, please grep the<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; archive.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; Alon<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;    Best regards.<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; Spice-devel mailing list<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt; <a href="mailto:Spice-devel@lists.freedesktop.org" target="_blank">Spice-devel@lists.freedesktop.org</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; Spice-devel mailing list<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; <a href="mailto:Spice-devel@lists.freedesktop.org" target="_blank">Spice-devel@lists.freedesktop.org</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt; &gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; Spice-devel mailing list<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; <a href="mailto:Spice-devel@lists.freedesktop.org" target="_blank">Spice-devel@lists.freedesktop.org</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; _______________________________________________<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; Spice-devel mailing list<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; <a href="mailto:Spice-devel@lists.freedesktop.org" target="_blank">Spice-devel@lists.freedesktop.org</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; Spice-devel mailing list<br>
&gt; &gt; &gt; <a href="mailto:Spice-devel@lists.freedesktop.org" target="_blank">Spice-devel@lists.freedesktop.org</a><br>
&gt; &gt; &gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
<br>
&gt; _______________________________________________<br>
&gt; Spice-devel mailing list<br>
&gt; <a href="mailto:Spice-devel@lists.freedesktop.org" target="_blank">Spice-devel@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
<br>
</div></div></blockquote></div><br>