![]() |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I managed to eventually find the problem with the app I posted about earlier. It had some language definitions in the .jad file and one of these had a tab instead of a space which phoneme didn't seem to like, although it worked like that on the N8. I don't know whether that is something that is technically against spec but is permitted in some implementations.
The only slight issues I have now is that the menus in the app are a little small to be touch friendly, and I would prefer if the keyboard automatically appeared when the field was selected or was permanently shown. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
I actually think during my previous attempts I rotated the device in the wrong direction (causing it to stay in landscape mode). Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
parser to read the contents of jad files. Also, some lines seem to be longer than 72 characters. Normally these lines would be wrapped. I have been looking into hooking up the native virtual keyboard, but I have not been able to get it properly working yet. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I tried the latest build on N9. It's great, it didn't overwrite Opera Mini, so all settings remain. It works properly in portrait mode too.
One thing is missing: usage of accelerometer. If you want to change between portrait and landscape mode you have to do it in the settings. Thanks for your work. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Yes, I agree. On the N900, the auto-rotation happens out of the box with the latest software upgrades and if you force allow rotation for all devices. If you rotate your device, the Qt4 window gets a window resize event which I then interpret to force re-render the midlet in the new display size. I have no idea whether auto-rotation works out of the box for all other applications on the N9, and whether you need to modify your application to support this. However, while it is technically possible to monitor the accelerometer, I do think that auto-rotation is a feature that MeeGo should handle (through passing events to the applications), and not every application on its own. Cheers, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I did some investigation, and it seems that Qt4 applications based on
QWidget() don't auto-rate on MeeGo. Unfortunately, that is what I use. So, for auto-rotation to work on the N9, the UI front-end needs to be rewritten using the MeeGo Touch APIs. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Thanks, so for autorotation, we have to find somebody, who can rewrite the UI front-end?
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
in you MainWindow::MainWindow() you should: Code:
setAttribute(Qt::WA_Maemo5AutoOrientation, true); Code:
QRect screenGeometry = QApplication::desktop()->screenGeometry(); |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
portrait mode. If I just get informed after rotation, that the window width and height has changed, that is all I need. Based on what I have read, it is a limitation of pure Qt4 on MeeGo. The MeeGo SDK has APIs that are somewhat similar to Qt4. I might have a go at implement it myself, but have no way to test auto-rotation with the emulator so you guys could give me a hand with that. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
I use this both to capture going fullscreen or normal screen, but also for screen rotations. I agree that the forcerotation was a hack. And I was able to get rid of that by adding setAttribute(Qt::WA_Maemo5AutoOrientation, true); But I don't need another signal/slot to figure out whether I am in portrait or landscape mode (I just care about the window ize). So thanks for the feedback. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
does not compile for MeeGo ('WA_Maemo5AutoOrientation' is not a member of 'Qt'). So I had to '#ifdef Q_WS_MAEMO_5' that instruction. The latest build of today is available on http://davy.preuveneers.be/phoneme/public/maemo/deb/ Though on the N9, I don't think you will see any auto-rotation. There seems to be an approach to wrap QWidgets in a QML project to support auto-rotation. http://www.developer.nokia.com/Commu...d-N9-qt-Widget I will first have a look at that before I go and restart rewriting the UI frontend. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I am just running Opera on my N900 with this, and every version works beautifully for me, with few exceptions.
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
When I am back home I will post some other Maemo5 specifics for fullscreen that might boost performance even further. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
or landscape mode, i.e. I don't need the window size to decide if I am in landscape or portrait mode. I need the windows size for other purposes. Let me try to explain this: The phoneME backend is responsible for rendering a midlet in a virtual framebuffer, i.e. a 16-bit RGB buffer of size width*height. The Qt4 frontend then draws this buffer (after wrapping it in a QPixmap). If the width or height changes (after going full screen or after rotation), I get a Qt4 window resize event, and pass along the new width and height to the phoneME backend so it can update its RGB buffer accordingly. Furthermore, since phoneME is drawing in a virtual framebuffer, it only needs to know what the width and height of the framebuffer is, not whether it is running in portrait or landscape mode. Basically, the Qt4 front-end is only responsible for displaying a 16-bit RGB buffer and for redirecting all pointer and keyboard events to the phoneME backend. The phoneME backend informs the Qt4 front-end when the 16-bit RGB buffer has changed so that the front-end can repaint it again. Next to that the front-end also notifies the backend about window size changes, and can also draw text on the RGB buffer using the local font (if you are not using the monospace bitmap built-in font). The phoneME backend does not use any Qt4 at all. Anyway, I am looking forward to any tips you may have to further improve the full screen drawing performance. Cheers, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Another request for N9 owners:
In my latest meego build available from http://davy.preuveneers.be/phoneme/public/maemo/deb/ I added some sound feedback for MIDP alerts. As the N9 emulator does not seem to be producing any sound, could you check if you hear anything when running the microemu demo midlet (Alert->Alarm alert etc). You are supposed to hear some wav samples from /usr/share/sounds/ui-tones/ snd_default_beep.wav snd_warning.wav snd_information.wav snd_query.wav snd_warning_strong.wav Thanks, Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
My God!!! You added the sound support?!?!?!
Oh God!!! !!!!!!A M A Z I N G!!!!!!! thx thx thx thx thx!!!!!!!!!!!! U made my day!!!! |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Did you add sound support for the n900?
Because in my game i can not heard anything and sound support still is on your todo list |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Brian sorry i made a mistake,
but sound event works on Microemu-demo :) by the way thx again |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
@DavyP: There are 2 things you can try to increase performance. Search in Qt documentation for their effect.
First one is Fremantle specific, In your MainWindow constructor (in the same #ifdef..#endif block where WA_Maemo5AutoOrientation lives, place: Code:
setAttribute(Qt::WA_Maemo5NonComposited); Second tweak should work in both Fremantle and Harmattan, in your MainWindow constructor place: Code:
setAttribute(Qt::WA_OpaquePaintEvent, true); BTW I found a bug in your build using WA_Maemo5AutoOrientation: If you enable "Enable portrait mode" in MIDlet Settings, then window appears rotated 90 degrees (shows landscape when in portrait and vice versa) Hope the above will help you a bit, thanks a lot for your work, keep it that way :) |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
messages. I hope the next steps to play custom samples will be straightforward. If I also find a nice way to play tones of a particular frequency and length, then I hope I will have most sound playback support covered. Unfortunately, MeeGo does not play ball (as the audio-playback does not seem to work on the N9). Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
About the bug: The "Enable portrait mode" feature is only meant for devices on which phoneME always starts in landscape mode. So if auto-rotation works, you should not enable this feature. With this feature enabled, I actually rotate the midlet 90 degrees. That is why you are getting the landscape version in portrait mode and vice versa if auto-rotation works. Perhaps I should call the feature "Rotate midlet 90 degrees". That description would be more accurate. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I added the above two tricks and used both JBenchmark and
JBenchmark2 to measure the performance improvement, and I get overall scores that are up to 8% higher than without the two tricks. Not world shocking, but a nice improvement nonetheless. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
EDIT: non-compositing should have bigger effect in fullscreen |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
for every two lines I add, I am willing to add even more lines like that :-) BTW, I ran the benchmark in full screen. Perhaps to low improvement is due to the fact I emit a Qt4 signal to trigger for every midlet window update, and perhaps Qt4 is smart enough to coalesce repaint events. Also note that the JBenchmarks probably measure more than just the rendering speed. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
clipping ranges, but they are usually much bigger than the bounding box of the pixels that have changed that it usually does not make much of a difference when painting the full midlet window or just the area within the clipping ranges. Especially midlets that paint their own UI on a Canvas or GameCanvas (like Opera Mini or J2ME Polish/LWUIT midlets), this definitely does not make much of a difference. This was my experience on Android, I have not tested this on the N900. So, for the time being, I think the rendering speed is good enough so I would rather focus on some more interesting features. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Does anybody know of a working API to play and mix multiple sounds?
QSound does not work, and Phonon audio playback with MediaObject and AudioOutput does not allow me to play multiple samples concurrently. Rather than mixing two sounds, the latter stops the former's playback. On MeeGo this API does not seem to work at all. FWIW I added minimal audio playback in my latest build (wav and mp3 seem to be supported on my device). http://davy.preuveneers.be/phoneme/public/maemo/deb/ There is now a test midlet called PlayWav.jar in /opt/phoneme which seems to work on the N900. Perhaps your game is now able to make some noise too. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
midi files don't work kar files don't work mp3 worked ogg worked wav worked but some apps still crashed is it normal that Run Midlet doesnt open Jad file? It searches for a jar but it doesnt download it.. Normally it has to download the jarfile. One question.. The error.txt and the output.txt file, can help you to fix some things? Or is just to understand that CVM cannot run the midlet and then the error is in the log but just to know the for the moment is impossible to open some java classes? |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
handle them, neither can I. The "Run MIDlet" is a fairly simple app. It assumes the jar file is already downloaded and located at the same place, with a file name similar to the jad file except for the file extension which should be jar. I agree it should look at the descriptor and if it has a http url download the jar if necessary. The game might crash because some APIs are currently not yet avaliable, or there might be a bug in my code. I do somethimes get segfaults when I close a midlet, but there might be other problems too. Feel free to post the output of the log files. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Too bad it doesn't run eBuddy
It just stays on the "starting eBuddy" screen. Is there anything that we can do to bypass this problem? |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
I have installed latest PhoneME package without any previous installation.
Launch Opera Mini from the applications menu without being connected to Internet and a message of error (no connection) is shown during the installation of Opera Mini. After that, if a connect to Internet and launch Opera Mini, it gets stopped in the installing process with no signs of progress. Then I activated log traces in the configuration utility and it finally worked though it took some time to start the application. |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
as it at relies on the following missing class: javax.microedition.amms.control.ImageFormatControl Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
before completing this installation. If this fails or if the connection is unstable, you might experience some issues. Davy |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
|
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Not sure if anyone has noticed:
http://m.google.com/maps/download/bi...maps_m2_ts.jar works well with phoneme you can show e.g. google's traffic layer, for which I did not know a convenient way on the n9 before. one also needs http://www.google.com/url?sa=D&q=htt...GL1-Ix4FPajHnw I guess, and match the filename in the .jad |
Re: [TESTING] PhoneME Advanced (Java Mobile) prototype release
Quote:
Davy |
All times are GMT. The time now is 12:14. |
vBulletin® Version 3.8.8