Notices


Reply
Thread Tools
Posts: 473 | Thanked: 141 times | Joined on Jan 2009 @ Virginia, USA
#51
pycage,

Two questions for you. First, I believe I read in a thread somewhere that in fullscreen mode, the display snould look like

|< album art file info >|

However, mine looks like the screenshot below.

Second question, is it possible to add fast forward/fast rewind within a track?

Bonus question: ow do you embed album art into an mp3 or ogg? I know some of my podcasts (Car Talk, Distrowatch Weekly) have embedded art, but none of the other podcasts nor any of the music I upload from amaroK.

Thanks, --vr
Attached Images
 

Last edited by VulcanRidr; 2009-09-09 at 18:47.
 
pycage's Avatar
Posts: 3,404 | Thanked: 4,474 times | Joined on Oct 2005 @ Germany
#52
What do you mean looks wrong in your screenshot? Mine looks the same.

Fast forward and rewind are available in 0.96.5 by pressing left and right on the D-pad. It doesn't work well with some media files, however.

There is plenty of software available for embedding album art, e.g. albumart-qt. But album art doesn't have to be embedded. You can also put a cover.jpg into the same folder as the music files.
 
Posts: 473 | Thanked: 141 times | Joined on Jan 2009 @ Virginia, USA
#53
Originally Posted by pycage View Post
What do you mean looks wrong in your screenshot? Mine looks the same.
I thought the fast forward and rewind were supposed to be on either side of the album art. Perhaps I was wrong?

Fast forward and rewind are available in 0.96.5 by pressing left and right on the D-pad. It doesn't work well with some media files, however.
The problem is that I have an in-car mount for it, and it is difficult to get to the D-pad while it is in this mount. I have been using the N810 more and more for my main mp3 player...One less piece of kit I have to drag around with me.

There is plenty of software available for embedding album art, e.g. albumart-qt. But album art doesn't have to be embedded. You can also put a cover.jpg into the same folder as the music files.
Okay. I noticed that some podcasts and the mp3s I have been buying have come with embedded art, which I thought amaroK was doing as well. Apparently different methods. Amarok is apparently embedding it into its database rather than in the media files.

Thanks,
--vr
 
Posts: 4,556 | Thanked: 1,624 times | Joined on Dec 2007
#54
Pycage, might i suggest moving the < and > keys (I know they don't look like that) away from the side?

On the n800, it's to close to the bezel making finger operation of it slightly difficult.
__________________
Originally Posted by ysss View Post
They're maemo and MeeGo...

"Meamo!" sounds like what Zorro would say to catherine zeta jones... after she slaps him for looking at her dirtily...
 

The Following User Says Thank You to Laughing Man For This Useful Post:
Posts: 473 | Thanked: 141 times | Joined on Jan 2009 @ Virginia, USA
#55
I don't really have a problem with the FF and REW keys being on the same side, I thought they were supposed to be on opposite sides. Maybe you could present them as buttons.
 
Posts: 1,101 | Thanked: 1,184 times | Joined on Aug 2008 @ Spain
#56
Hi pycage,

I have fixed a few bugs more, most of them noticeable with inet media.
This is the changelog:
MPlayerBackend.py:
- fix high cpu usage when "connecting"
- fix high cpu usage when "buffering..."
- move busy_loop to a more useful position, since the delay between mplayer loading and start of stream playing can be very large
- fix repetitive error dialogs due to temporary server failure, one error dialog at definitive failure is enough (happens often with shoutcast streams)
- detect better stream failure
AbstractBackend.py:
- when a stream failure happens, pressing play again (in the track/player window) doesn't try to reopen the stream. fix.
File.py
- fix high cpu usage when loading large lists
Widget.py
- lower cpu usage with animations
KineticScroller.py
- very noticeable when a stream is "connecting" and using mplayer backend: scrolling a list will scroll for a second, stop for a second, and repeat. fix.

Other bugs I've found and will try to fix in the near future:
- Can't change stream in certain cases (when stream takes time to fail, when is "connecting" or "buffering")
- when the backend changes, starts playing with the wrong volume
- shoutcast fails to download genres/stations very very often, should permanently store them and redownload by demand

Some features I want to add.
- Detect screen status to further reduce cpu usage ("low power mode")
- Replaygain support (in the not so near future)
Attached Files
File Type: gz fixes2.diff.gz (1.6 KB, 80 views)

Last edited by maacruz; 2009-09-17 at 20:23.
 

The Following 3 Users Say Thank You to maacruz For This Useful Post:
pycage's Avatar
Posts: 3,404 | Thanked: 4,474 times | Joined on Oct 2005 @ Germany
#57
Hi maacruz,

I'm merging your patches with my code and noticed that you sometimes use code like this:
Code:
gobject.timeout_add(1000, lambda : False)
...
gtk.main_iteration(True)
What exactly does it do? It doesn't seem to delay for 1000 ms. Is the 1000 an arbitrary value here just to ensure that something is in the event queue when calling main_iteration later?
Why is this working better than gtk.main_iteration(False) ?

Keep up the good work!
 
Posts: 1,101 | Thanked: 1,184 times | Joined on Aug 2008 @ Spain
#58
Originally Posted by pycage View Post
Hi maacruz,

I'm merging your patches with my code and noticed that you sometimes use code like this:
Code:
gobject.timeout_add(1000, lambda : False)
...
gtk.main_iteration(True)
What exactly does it do? It doesn't seem to delay for 1000 ms. Is the 1000 an arbitrary value here just to ensure that something is in the event queue when calling main_iteration later?
Why is this working better than gtk.main_iteration(False) ?

Keep up the good work!
In those places you have a tight event loop running gtk.main_iteration(False) with a timed exit.
main_iteration(False) is a non blocking call, and if there is no event it returns inmediatly, so it becomes a busy loop which pegs the cpu at 100%
main_iteration(True) is a blocking call, so if there is no event, it sleeps indefinitely waiting for a event, and while it is sleeping, there is no cpu usage. The gobject.timeout_add is there to provide a timed event (with the lambda function provided which does nothing but inmediatly return) at the moment the loop should end, so making sure the main_iteration(True) doesn't sleeps indefinitely and the event loop ends properly. The 1000 ms in the example is the 1 second check (time.time() < timeout) used later to end the loop.
This approach has three advantages:
1- The linux scheduler rewards sleeping (I/O bound) tasks with high priority and punishes cpu hogs with low priority, so mediabox is more responsive/interactive.
2- The tablet as a whole is more responsive, as the cpu is free for other tasks
3- The battery lasts longer

By the way, I have attached a little ui bugfix patch:
- KineticScroller.py, ImageStrip.py: when using kinetic scroll to reach the end of the list, the scroll stops before reaching the end for a while, then jumps. Most noticeable with fast movements. Fixed.

I now... you told me ImageStrip is going to be deprecated, but .... it WAS a bug .... I couldn't stand it... I.... I had to do it... don't you understand? .... I HAD TO DO IT
Attached Files
File Type: gz scroll-fix.diff.gz (410 Bytes, 63 views)
 

The Following 2 Users Say Thank You to maacruz For This Useful Post:
pycage's Avatar
Posts: 3,404 | Thanked: 4,474 times | Joined on Oct 2005 @ Germany
#59
Originally Posted by maacruz View Post
1- The linux scheduler rewards sleeping (I/O bound) tasks with high priority and punishes cpu hogs with low priority, so mediabox is more responsive/interactive.
2- The tablet as a whole is more responsive, as the cpu is free for other tasks
3- The battery lasts longer
This does sound very good. I'm gonna put it into SVN today.

Originally Posted by maacruz View Post
By the way, I have attached a little ui bugfix patch:
- KineticScroller.py, ImageStrip.py: when using kinetic scroll to reach the end of the list, the scroll stops before reaching the end for a while, then jumps. Most noticeable with fast movements. Fixed.
You really fixed that bug? This is awesome! I was looking for it a few times but never found a way to fix it. Thanks!

Originally Posted by maacruz View Post
I now... you told me ImageStrip is going to be deprecated, but .... it WAS a bug .... I couldn't stand it... I.... I had to do it... don't you understand? .... I HAD TO DO IT
Hehe, ImageStrip is gone, but KineticScroller is still there. Lists are now rendered by the ui.itemview.GridView class, which is basically ImageStrip written from scratch, but simpler and capable of displaying a grid of items instead of only a one-dimensional list. The list, of course, is a special case of the grid.
Some other things have changed as well and parts of the GUI are still missing in the current SVN version. Mainly, the user interface became simpler and better prepared for operation in portrait mode. The next release will support landscape and portrait modes, have automatic screen rotation on the N900, and manual screen rotation (if rotation support was installed) on the other NITs.

Last edited by pycage; 2009-09-21 at 16:48.
 

The Following User Says Thank You to pycage For This Useful Post:
Posts: 473 | Thanked: 141 times | Joined on Jan 2009 @ Virginia, USA
#60
I haven't seen this show up in the feeds, not to rush you guys...pycage, is the version on http://mediabox.garage.maemo.org/download.html newer than the ones in the standard feed?

Also, are there a theme-making howtos? I would like to create a couple of themes. I use your darkbox theme, since I mainly use it in the car, but it seems a little bland for that use. I wanted to try my hand at creating one that matches the instrument panels on my RSX, which is dark with red details.

--vr
 
Reply


 
Forum Jump


All times are GMT. The time now is 12:58.