Discussion:
[ANNOUNCE] N9/N950 TV out control application
Ville Syrjälä
2012-01-09 08:39:43 UTC
Permalink
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ä
***@sci.fi
http://www.sci.fi/~syrjala/
Pali Rohár
2012-01-09 08:48:27 UTC
Permalink
Post by Ville Syrjälä
I finally managed to make some progress on "porting"
maemo-tvout-control to harmattan.
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

I created new tvout status menu plugin, it is in that CSSU repository too.

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.

(I sent you mail before I forked your code, but you do not responce...)
--
Pali Rohár
***@gmail.com
Ville Syrjälä
2012-01-09 09:20:19 UTC
Permalink
Post by Pali Rohár
Post by Ville Syrjälä
I finally managed to make some progress on "porting"
maemo-tvout-control to harmattan.
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.
Post by Pali Rohár
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.
Post by Pali Rohár
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ä
***@sci.fi
http://www.sci.fi/~syrjala/
Pali Rohár
2012-01-09 09:46:14 UTC
Permalink
Post by Ville Syrjälä
Post by Pali Rohár
Post by Ville Syrjälä
I finally managed to make some progress on "porting"
maemo-tvout-control to harmattan.
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.
Post by Pali Rohár
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.
Post by Pali Rohár
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.
That version which is in CSSU working as:

* status menu plugin is loaded at startup and only this plugin have access to
tvout-ctl.c code. It monitor gconf tvout keys and when some is changed, it
call tvout-ctl function to change xv properties. (also monitor for xv changes
and change gconf keys)

* control panel plugin and desktop widget (and other plugins that can be
implemented) only changing gconf tvout keys, nothing more.


In tvout-ctl is minimum changes. There was only removed hardcoded function
update_ui and tvout_ui_set_* Instead that, tvout_ctl_init function get pointer
to function which is called.

So tvout-ctl.c should be same in fremantle and harmattan with my changes. I do
not know harmattan, but I think that haramttan does not use any Gtk, gconf
libraries, so desktop widget, control and status menu plugins are only for
fremantle. 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?
--
Pali Rohár
***@gmail.com
Ville Syrjälä
2012-01-09 10:36:02 UTC
Permalink
Post by Pali Rohár
Post by Ville Syrjälä
On Monday 09 January 2012 10:39:43 Ville =?ISO-8859-1?Q?Syrj=E4l=E4?=
Post by Ville Syrjälä
I finally managed to make some progress on "porting"
maemo-tvout-control to harmattan.
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.
* status menu plugin is loaded at startup and only this plugin have access to
tvout-ctl.c code. It monitor gconf tvout keys and when some is changed, it
call tvout-ctl function to change xv properties. (also monitor for xv changes
and change gconf keys)
* control panel plugin and desktop widget (and other plugins that can be
implemented) only changing gconf tvout keys, nothing more.
In tvout-ctl is minimum changes. There was only removed hardcoded function
update_ui and tvout_ui_set_* Instead that, tvout_ctl_init function get pointer
to function which is called.
So tvout-ctl.c should be same in fremantle and harmattan with my changes. I do
not know harmattan, but I think that haramttan does not use any Gtk, gconf
libraries, so desktop widget, control and status menu plugins are only for
fremantle.
Yep. At least for now there are no desktop/menu plugins.
Post by Pali Rohár
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.
--
Ville Syrjälä
***@sci.fi
http://www.sci.fi/~syrjala/
Pali Rohár
2012-01-09 11:03:38 UTC
Permalink
Post by Ville Syrjälä
Post by Pali Rohár
Post by Ville Syrjälä
On Monday 09 January 2012 10:39:43 Ville =?ISO-8859-1?Q?Syrjälä?> >
Post by Ville Syrjälä
I finally managed to make some progress on "porting"
maemo-tvout-control to harmattan.
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.
* status menu plugin is loaded at startup and only this plugin have access
to tvout-ctl.c code. It monitor gconf tvout keys and when some is
changed, it call tvout-ctl function to change xv properties. (also
monitor for xv changes and change gconf keys)
* control panel plugin and desktop widget (and other plugins that can be
implemented) only changing gconf tvout keys, nothing more.
In tvout-ctl is minimum changes. There was only removed hardcoded function
update_ui and tvout_ui_set_* Instead that, tvout_ctl_init function get
pointer to function which is called.
So tvout-ctl.c should be same in fremantle and harmattan with my changes.
I do not know harmattan, but I think that haramttan does not use any Gtk,
gconf libraries, so desktop widget, control and status menu plugins are
only for fremantle.
Yep. At least for now there are no desktop/menu plugins.
Post by Pali Rohár
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.
Now I merged your changes to CSSU repository on:
https://gitorious.org/community-ssu/maemo-tvout-control
--
Pali Rohár
***@gmail.com
Ville Syrjälä
2012-01-12 08:37:12 UTC
Permalink
Post by Ville Syrjälä
Post by Pali Rohár
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ä
***@sci.fi
http://www.sci.fi/~syrjala/
Pali Rohár
2012-01-12 08:55:21 UTC
Permalink
Post by Ville Syrjälä
Post by Ville Syrjälä
Post by Pali Rohár
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
Checking if and which Maemo version is running on build system server can be
detected by pkgconfig package maemo-version.
--
Pali Rohár
***@gmail.com
Ville Syrjälä
2012-01-13 06:51:21 UTC
Permalink
Post by Pali Rohár
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ä
***@sci.fi
http://www.sci.fi/~syrjala/
Pali Rohár
2012-01-13 06:56:55 UTC
Permalink
Post by Ville Syrjälä
Post by Pali Rohár
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.
So configure script can check if maemo-version exist. If yes build system is
fremantle otherwise harmattan.
--
Pali Rohár
***@gmail.com
Pali Rohár
2012-01-24 11:18:16 UTC
Permalink
Post by Ville Syrjälä
Post by Pali Rohár
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?
--
Pali Rohár
***@gmail.com
Ville Syrjälä
2012-01-31 15:46:00 UTC
Permalink
Post by Pali Rohár
Post by Ville Syrjälä
Post by Pali Rohár
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ä
***@sci.fi
http://www.sci.fi/~syrjala/
Pali Rohár
2012-02-26 14:59:03 UTC
Permalink
Post by Ville Syrjälä
Post by Pali Rohár
Post by Ville Syrjälä
Post by Pali Rohár
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.
Did you looked at it?
--
Pali Rohár
***@gmail.com
Andrew Flegg
2012-03-12 18:27:03 UTC
Permalink
Post by Ville Syrjälä
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?

Is there a binary package with everything nicely precompiled?

Thanks in advance,

Andrew
--
Andrew Flegg -- mailto:***@bleb.org  |  http://www.bleb.org/
Ville Syrjälä
2012-03-12 21:43:20 UTC
Permalink
Post by Andrew Flegg
Post by Ville Syrjälä
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.
Post by Andrew Flegg
Is there a binary package with everything nicely precompiled?
Dunno. I'm too lazy to distribute binaries.
--
Ville Syrjälä
***@sci.fi
http://www.sci.fi/~syrjala/
Andrew Flegg
2012-03-12 21:57:01 UTC
Permalink
Post by Ville Syrjälä
Post by Andrew Flegg
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' ;-)
Post by Ville Syrjälä
Post by Andrew Flegg
Is there a binary package with everything nicely precompiled?
Dunno. I'm too lazy to distribute binaries.
Fair enough.
--
Andrew Flegg -- mailto:***@bleb.org  |  http://www.bleb.org/
Kristóf Timur
2012-03-12 22:04:59 UTC
Permalink
Unlike Fremantle, in Harmattan, screen rotation is implemented in the
toolkit level. (eg. MTF or Qt-Components).
As far as X is concerned, everything is in landscape.

-----Original Message-----
From: Andrew Flegg
Sent: Monday, March 12, 2012 10:57 PM
To: Ville Syrjälä
Cc: maemo-***@maemo.org
Subject: Re: [ANNOUNCE] N9/N950 TV out control application
Post by Ville Syrjälä
Post by Andrew Flegg
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' ;-)
Post by Ville Syrjälä
Post by Andrew Flegg
Is there a binary package with everything nicely precompiled?
Dunno. I'm too lazy to distribute binaries.
Fair enough.
--
Andrew Flegg -- mailto:***@bleb.org | http://www.bleb.org/
Ville Syrjälä
2012-03-12 23:01:48 UTC
Permalink
Post by Andrew Flegg
Post by Ville Syrjälä
Post by Andrew Flegg
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ä
***@sci.fi
http://www.sci.fi/~syrjala/
Loading...