Re: [Announce] SDL w/ X11/EGL/GLES2 backend for Harmattan
On Wed, Aug 08, 2012 at 01:02:22PM +0200, Marcin Mielniczuk wrote: Will this version be able to resize 854x480 apps from Harmattan to 800x480 Fremantle resolution? In such a case w/ 858x480 SDL surface and 800x480 screen resolution, the code would scale it to 800x(480*800/854). So it tries to preserve the aspect ratio, but it does assume square pixels, so eg. some old 320x200 game port would have distorted aspect ratio. But if you considering using this on Fremantle you can probably forget it, since IIRC some of the required EGL/GLES2 features are missing. 2012/8/7 Ville Syrjälä syrj...@sci.fi Some time ago I started fiddling around with SDL. I didn't even want to think about using the pvr2d stuff, so I decided to implement hardware acceleration using EGL/GLES2. I took some version of the harmattan SDL port, removed the pvr2d stuff, and added the EGL/GLES2 stuff to the X11 video code. It's not very cleanly added, and I'm sure there are various issues with window re-creation and whatnot. Features: - EGL/GLES2 based, no pvr2d stuff - Always uses a shadow buffer, because preserved flips aren't supported on the platform. - Automagically scales the application content to fullscreen using the GPU. - Software access to hardware surfaces implemented with glFinish() and EGL_KHR_lock_surface. I initially tried to use EGL_KHR_fence_sync instead of glFinish() but there seemed to be some flushing bug left in the driver causing problems. glFinish() should be OK on pvr, but on some other hardware it could be a problem. So it's not the most portable solution. - Supports color keyed and alpha blended blits. Only color keying has actually been tested. - some SDL tests, uqm and scummvm seem to work reasonably well The code is here [1] in case anyone is interested. It was languishing on my hard drive already for some time, and since I wasn't able to motivate myself to work on it further, I decided to set if free as is. The git history is a bit of a mess, but ATM I'm too lazy to clean it up. [1] https://gitorious.org/harmattan-sdl/sdl -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
[Announce] SDL w/ X11/EGL/GLES2 backend for Harmattan
Some time ago I started fiddling around with SDL. I didn't even want to think about using the pvr2d stuff, so I decided to implement hardware acceleration using EGL/GLES2. I took some version of the harmattan SDL port, removed the pvr2d stuff, and added the EGL/GLES2 stuff to the X11 video code. It's not very cleanly added, and I'm sure there are various issues with window re-creation and whatnot. Features: - EGL/GLES2 based, no pvr2d stuff - Always uses a shadow buffer, because preserved flips aren't supported on the platform. - Automagically scales the application content to fullscreen using the GPU. - Software access to hardware surfaces implemented with glFinish() and EGL_KHR_lock_surface. I initially tried to use EGL_KHR_fence_sync instead of glFinish() but there seemed to be some flushing bug left in the driver causing problems. glFinish() should be OK on pvr, but on some other hardware it could be a problem. So it's not the most portable solution. - Supports color keyed and alpha blended blits. Only color keying has actually been tested. - some SDL tests, uqm and scummvm seem to work reasonably well The code is here [1] in case anyone is interested. It was languishing on my hard drive already for some time, and since I wasn't able to motivate myself to work on it further, I decided to set if free as is. The git history is a bit of a mess, but ATM I'm too lazy to clean it up. [1] https://gitorious.org/harmattan-sdl/sdl -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] N9/N950 TV out control application
On Mon, Mar 12, 2012 at 06:27:03PM +, Andrew Flegg wrote: On 9 January 2012 08:39, Ville Syrjälä syrj...@sci.fi wrote: The backend supports a few extra knobs, when compared with fremantle. However, I was too lazy to write the extra GUI code. So the current GUI offers the same controls that maemo-tvout-control has. Is it possible to get rotational support in there? So that showing Music has very wide black bars, but is at least the right way up? Nope. At the very least you'd need to modify the X driver, and doing it optimally from performance POV would require even more changes. Is there a binary package with everything nicely precompiled? Dunno. I'm too lazy to distribute binaries. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] N9/N950 TV out control application
On Mon, Mar 12, 2012 at 09:57:01PM +, Andrew Flegg wrote: On 12 March 2012 21:43, Ville Syrjälä syrj...@sci.fi wrote: On Mon, Mar 12, 2012 at 06:27:03PM +, Andrew Flegg wrote: Is it possible to get rotational support in there? So that showing Music has very wide black bars, but is at least the right way up? Nope. At the very least you'd need to modify the X driver, and doing it optimally from performance POV would require even more changes. So xrandr on Harmattan is more like 'xonlyoner' ;-) Well, somewhat, but the r left is actually the rotate, not resize. Let me explain. There was some problem with pvr memory management, so resizing the X screen is disabled by default. IIRC we added some xorg.conf option to allow it, but there's a good chance of making a mess of things if you try it. What you could do is start X with a larger screen size (eg. 854x854), and then you could safely rotate the LCD output. TV output rotation isn't really possible since VRFB (tile based hw rotation engine) isn't used. If you attempt to use non-VRFB based rotation (aka. DMA rotation) on the TV output, the display controller is likely to fail since the DMA can't keep up with the display refresh due to the non-tiled memory layout. The third way to rotate would be using the GPU, but no one ever bothered to implement that in the X driver. There are other things you can do with the current xrandr support. For example you could use a bigger screen size, and pan the LCD and TV output viewports to non-overlapping positions, which would give you independent content on each output. There are going to be problems with touch coordinates though, and the WM doesn't know how to the handle the situation either. Also page flipping only works as long as the window size equals the screen size. So there is a fair bit of xrandr functionality in the driver, but it's not utilized by the upper layers. The main reason for that was that the UI designers wanted the transitions to be glitch free, and there just wasn't enough time to make that happen with xrandr. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] N9/N950 TV out control application
On Tue, Jan 24, 2012 at 12:18:16PM +0100, Pali Rohár wrote: On Friday 13 January 2012 08:51:21 Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= wrote: On Thu, Jan 12, 2012 at 09:55:21AM +0100, Pali Rohár wrote: Checking if and which Maemo version is running on build system server can be detected by pkgconfig package maemo-version. That's not available in harmattan. But anyway I realized I need to change the build dependencies anyway, so I just removed the packaging from the master branch and moved it to fremantle and harmattan branches for each platform. Can you merge CSSU repository (with new control panel status menu plugin) into main maemo-tvout-control repository? Sorry for the delay. I'll try to take a look at this tonight. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] N9/N950 TV out control application
On Mon, Jan 09, 2012 at 12:36:02PM +0200, Ville Syrjälä wrote: On Mon, Jan 09, 2012 at 10:46:14AM +0100, Pali Rohár wrote: I think that the best will be to have one repository for tvout-ctl, one for fremantle (here will be fremantle plugins) in CSSU project and one for harmattan. What do you think? Sounds good. We don't really need a harmattan specific GUI repo, at least yet. The standalone Qt GUI should work in both fremantle and harmattan if the tvout-ctl API is the same. Some clever way to handle packaging may be needed if there are differences. Perhaps keep the packaging stuff in separate branches and merge master to them when the actual code changes. I now merged both Xv and XRandR codes to libtvout-ctl [1]. I changed the license of this library to LGPL 2.1. There's a configure option to select the backend at build time. The debian packaging will build the Xv backend. I'm not quite sure how I'll sort the issue on how to build for harmattan. The same packaging otherwise works for both platforms, so it would be nice to have some decent way to detect the platform during the build and use that to select the backend. It would avoid having to duplicate the packaging and maintaining multiple branches. Run-time backend selection would be another option, but seems a little pointless considering you have to build separate binary packages for each platform anyway. I updated both maemo-tvout-control and n9-tvout-control to use the new library. [1] https://gitorious.org/maemo-tvout-control/libtvout-ctl -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] N9/N950 TV out control application
On Thu, Jan 12, 2012 at 09:55:21AM +0100, Pali Rohár wrote: Checking if and which Maemo version is running on build system server can be detected by pkgconfig package maemo-version. That's not available in harmattan. But anyway I realized I need to change the build dependencies anyway, so I just removed the packaging from the master branch and moved it to fremantle and harmattan branches for each platform. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
[ANNOUNCE] N9/N950 TV out control application
I finally managed to make some progress on porting maemo-tvout-control to harmattan. Code is here: https://gitorious.org/maemo-tvout-control/n9-tvout-control What you'll find there is a a very simple QWidget based GUI, and backend code utilizing XRandR. The backend supports a few extra knobs, when compared with fremantle. However, I was too lazy to write the extra GUI code. So the current GUI offers the same controls that maemo-tvout-control has. The ultimate plan is to write a nice QML GUI for this stuff, although I don't know when I'll have time to learn QML. Another idea I have is to move the backend code to a separate library. The same should be done for the fremantle Xv based backend code. This would provide a unified TV out control API for both platforms. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] N9/N950 TV out control application
On Mon, Jan 09, 2012 at 09:48:27AM +0100, Pali Rohár wrote: On Monday 09 January 2012 10:39:43 Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= wrote: I finally managed to make some progress on porting maemo-tvout-control to harmattan. Code is here: https://gitorious.org/maemo-tvout-control/n9-tvout-control What you'll find there is a a very simple QWidget based GUI, and backend code utilizing XRandR. The backend supports a few extra knobs, when compared with fremantle. However, I was too lazy to write the extra GUI code. So the current GUI offers the same controls that maemo-tvout-control has. The ultimate plan is to write a nice QML GUI for this stuff, although I don't know when I'll have time to learn QML. Another idea I have is to move the backend code to a separate library. The same should be done for the fremantle Xv based backend code. This would provide a unified TV out control API for both platforms. Hello, last year I merged maemo-tvout-control with control panel settings plugin for Nokia N900. Code is now in Community SSU on gitorious https://gitorious.org/community-ssu/maemo-tvout-control and is based on your orignal code https://gitorious.org/maemo-tvout-control/maemo-tvout-control Ah, I did see the mail, but was swamped with something at the time and then I just totally forgot to respond. Sorry. I created new tvout status menu plugin, it is in that CSSU repository too. Great. Multiple different GUIs was the reason I tried to keep the backend code separate. It is possible to merge my changes on CSSU to your project? I think it is not good idea to have 2 separated projects which has same code. Yeah we could do some merging. But perhaps now would a good time to move the backend code into a separate library. I'm not sure if the harmattan and fremantle code can coexist nicely inside a single library, or if that would cause problems with the packaging and whatnot. But at least we could provide a library with the same name, and the same API, for both platforms. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] TV out control home plugin
On Thu, Jan 13, 2011 at 11:36:54AM +0100, Thomas Perl wrote: Hi! 2011/1/13 Ville Syrjälä syrj...@sci.fi: I was bored one Saturday night last year, and wrote this little HD home plugin to control the TV out on the N900. Finally got around to putting it online: http://gitorious.org/maemo-tvout-control Nice utility! The scale and aspect ratio options are especially helpful and let me finally watch videos full-screen on my widescreen VGA monitor (using a Composite-to-VGA converter box). The only unfortunate issue is that some combinations of settings simply don't work. Usually it just leads to a black TV out signal. That's caused by the display driver disabling the overlay used for TV out, when some hardware limitations would be exceeded. Would you care about packaging it up and uploading it to Extras? If you need help, just tell me, and I can assist with packaging and uploading. I'm too lazy to bother with packaging and whatever else is needed to upload it somewhere. I would prefer if someone else could take care of such things. Thanks, Thomas PS: Is the TV-out control panel applet that's included in Maemo open source? If so, we should probably add the scale and aspect ratio options there as well (now that there's some working and tested code that does just that) and distribute it through the Community SSU. I don't remeber if it's open source or not. IIRC the control panel applet just frobs with some gconf key, and it's some other component that notices the change and communicates it to the X server. One option would of course to replace the control panel applet entirely. Never written one of those but I doubt writing one is very difficult, assuming that the APIs are public. It wouldn't be very difficult to turn my plugin into a daemon + plugin, where the plugin would just play with some gconf keys, and the daemon would take care of the Xv stuff. The Xv and GUI parts are split fairly cleanly, so adding something between them should be quite easy. Also the same abstraction would allow other GUI concepts to be implemented, eg. a HD status plugin, or a regular GUI application. I don't have the motivation to do any of that ATM. But the code is out there, if someone else wants to explore the possibilities. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: [ANNOUNCE] TV out control home plugin
On Thu, Jan 13, 2011 at 01:13:47PM +0100, Thomas Perl wrote: Hi again, 2011/1/13 Ville Syrjälä syrj...@sci.fi: The only unfortunate issue is that some combinations of settings simply don't work. Usually it just leads to a black TV out signal. That's caused by the display driver disabling the overlay used for TV out, when some hardware limitations would be exceeded. Yes, I've noticed that. Is this a limitation of the N900's hardware, and independent of the connected device? Yeah hw limitation, although the checks in the display driver are a bit off actually. So it's possible the driver may reject some settings that should be OK, and it's also possible it might allow some settings that aren't really guaranteed to work. If so, we can probably get the parameters via trial-and-error and disable non-working combinations in the UI. We can't really do that. Whether or not some settings work also depends on the size of the input picture, and with videos the input size can be pretty much anything. But right now, it's not that big of a problem, as one can just pull back the scale value until the picture comes back. Yep. On Thu, Jan 13, 2011 at 11:36:54AM +0100, Thomas Perl wrote: Would you care about packaging it up and uploading it to Extras? If you need help, just tell me, and I can assist with packaging and uploading. I'm too lazy to bother with packaging and whatever else is needed to upload it somewhere. I would prefer if someone else could take care of such things. Done. Uploaded to Extras-Devel. I'm unable to create a Merge Request, so you can just grab the latest commit from this repo if you want to merge it: http://gitorious.org/maemo-tvout-control/thps-maemo-tvout-control Nice. Thanks. Apparently I unticked the merge request feature without realizing it might actually be useful :) I re-enabled it now, in case there's more stuff to merge in the future. Anyways, your stuff is now merge into my repo. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
[ANNOUNCE] TV out control home plugin
Hi, I was bored one Saturday night last year, and wrote this little HD home plugin to control the TV out on the N900. Finally got around to putting it online: http://gitorious.org/maemo-tvout-control -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: N810 FN key X
On Tue, Mar 11, 2008 at 03:12:56PM +0200, Joni Valtanen wrote: I only readed xomap code. So I'm not 100% sure about this. But anyway - How it works with xomap: 1. read fn:s code from evdev (0x1d0) Does xomap even use evdev? At least 1.1.99.3 used the keyboard driver instead. I haven't looked at more recent sources. -- Ville Syrjälä [EMAIL PROTECTED] http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: New developer - lots of questions
On Fri, Nov 16, 2007 at 02:25:35PM -0500, [EMAIL PROTECTED] wrote: Ive been using the 770 and N800 for years, and finally decided to get into developing software for these things (I have experience in C and various scripting languages). But I have some (probably noob) questions: 2) Anyone using Gentoo for development system? I'm using a 64bit Gentoo system for maemo development at work and I have 32bit and 64bit Gentoo systems at home which also have the SDK installed. There's no need for a 32bit chroot as the 32bit scratchbox binaries work just fine on a 64bit Gentoo system. The scratchbox ebuilds I'm using were originally made by Priit Laes (IIRC) and I've made some small modifications and kept them updated with new scratchbox releases. I've attached the ebuilds in case someone wants to take a look. -- Ville Syrjälä [EMAIL PROTECTED] http://www.sci.fi/~syrjala/ # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils MY_P=scratchbox-`echo ${PV} | cut -d '.' -f 1-2` MY_CODENAME=apophis MY_PV=${PV}-i386 SBOX_GROUP=sbox RESTRICT=strip DESCRIPTION=Scratchbox is a cross-compilation toolkit designed to make embedded Linux application development easier. HOMEPAGE=http://www.scratchbox.org/; SRC_URI=http://scratchbox.org/download/files/sbox-releases/${MY_CODENAME}/tarball/scratchbox-core-${MY_PV}.tar.gz http://scratchbox.org/download/files/sbox-releases/${MY_CODENAME}/tarball/scratchbox-libs-${MY_PV}.tar.gz http://scratchbox.org/download/files/sbox-releases/${MY_CODENAME}/tarball/scratchbox-toolchain-host-gcc-${MY_PV}.tar.gz; LICENSE=GPL-2 SLOT=0 KEYWORDS=amd64 x86 IUSE= DEPEND= RDEPEND= TARGET_DIR=/opt/scratchbox S=${WORKDIR}/scratchbox src_install() { cd ${S} dodir ${TARGET_DIR} # doins doesn't work with symlinks, getting file not found with doins cp -pRP ./* ${D}/${TARGET_DIR} dosym opt/scratchbox scratchbox # Create scratchbox command dodir /usr/bin || die Directory creation failed dosym /opt/scratchbox/login /usr/bin/scratchbox || die Symlink creation failed # Create scratchbox service loader newinitd ${FILESDIR}/scratchbox.rc scratchbox || die Initscript installation failed # group already created echo ${SBOX_GROUP} ${D}/${TARGET_DIR}/.run_me_first_done } pkg_preinst() { einfo Creating group sbox enewgroup ${SBOX_GROUP} || die adding group '${SBOX_GROUP}' failed } pkg_postinst() { elog elog You need to run: elog \emerge --config =${CATEGORY}/${PF}\ elog to set permissions and setup scratchbox users elog elog For further documentation about how to setup elog scratchbox for your development needs have a look at elog http://scratchbox.org/documentation/user/scratchbox-${MY_P}/; elog elog Also note that when you reboot you should run: elog /etc/init.d/scratchbox start elog before trying to run scratchbox. elog You can also add it to the default runlevel: elog rc-update add scratchbox default elog elog Type /opt/scratchbox/login to start scratchbox. elog } pkg_postrm() { elog elog To remove all traces of scratchbox you will need to remove the file elog /etc/init.d/scratchbox. Don't forget to delete the sbox group. elog } pkg_config() { if [ `id -u` != 0 ]; then ewarn Must be root to run this die not root fi einfo Do you want to configure scratchbox? [Yes/No] einfo Note: This will set permissions and copy files from the system into the scratchbox read choice echo case $choice in y*|Y*|) ${TARGET_DIR}/sbin/sbox_configure no ${SBOX_GROUP} || die sbox_configure failed ;; *) ;; esac mkdir -p ${TARGET_DIR}/scratchbox/users while true; do einfo Existing users: einfo $(ls ${TARGET_DIR}/users) echo einfo Create new user (leave empty to skip): read newuser case $newuser in ) break; ;; *) einfo Note: users have to be in the '${SBOX_GROUP}' to be able to login into the Scratchbox ${TARGET_DIR}/sbin/sbox_adduser ${newuser} || die sbox_adduser failed ;; esac done einfo Configuration finished. Make sure you run '/etc/init.d/scratchbox start' before logging in. } # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header
Re: New developer - lots of questions
On Sun, Nov 18, 2007 at 01:01:18PM -0500, [EMAIL PROTECTED] wrote: On Sun, 18 Nov 2007, Ville Syrjälä wrote: I'm using a 64bit Gentoo system for maemo development at work and I have 32bit and 64bit Gentoo systems at home which also have the SDK installed. There's no need for a 32bit chroot as the 32bit scratchbox binaries work just fine on a 64bit Gentoo system. But what if I wanted both Maemo 3.x and 4.x? I haven't tried using the free SDKs in parallel but AFAICS it should work. You simple have different targets for each SDK. One somewhat nasty issue with this arrangement is that you can't use more than one target simultaneosly. Sometimes that is rather frustrating when you're working on something in one target with multiple sessions open and then you need to switch to another target just for a quick test (or something). In that case you need to close all scratchbox sessions before you can actually switch the target. The chrooted way should probably allow more than one active target. Another way would be to create additional users on the host system but that isn't really a nice solution since it creates additional hassles with file permissions and whatnot. The scratchbox ebuilds I'm using were originally made by Priit Laes (IIRC) and I've made some small modifications and kept them updated with new scratchbox releases. I've attached the ebuilds in case someone wants to take a look. Thanks! Are these patches/modifications likely to make there way into the Sunrise overlays? I don't use any overlays nor have I submitted the ebuilds to anyone for inclusion. I wouldn't even know who to contact actually. If someone wants to do that they can have my blessing :) If memory serves the actual modifications I made include (at least): - Rename the ebuilds to include -bin in the name - Add the host-gcc toolchain to the scratchbox-bin ebuild - Additional ebuilds for new scractbox packages -- Ville Syrjälä [EMAIL PROTECTED] http://www.sci.fi/~syrjala/ ___ maemo-developers mailing list maemo-developers@maemo.org https://lists.maemo.org/mailman/listinfo/maemo-developers