![]() |
Re: New audioplayer for n8x0
Quote:
I'll start with the flickable scroll lists. Simply put, every list on shown (like list of artists, albums, song, etc.) is scrolled by touching an item and moving it up or down. (You don't use a scroll bar or arrows.) The list can be "flicked" (a quick up or down stroke), which causes it to continue to scroll with some inertia. Nokia's Qt 4.7 documents describe this better (although I don't think Canola use Qt... I'd have to check) Quote:
Configurable Backend Canola allows the user to configure which player engine to use (mplayer, oms/built-in) depending on file types (Audio, Video, etc.) and/or format (mp4, mp3, avi, etc). This is done through a configuration file (.atabake/config). Actually, the atabake media engine framework looks like a good place to start as it supports several plugins for engines: oms, mplayer, gstreamer. - John |
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
I'm currently still using Xmms on my N800. Everybody knows the things that are annoying about Xmms, but here are the main reasons that I still use Xmms over the other options available for the N800.
- It is light on resources - Supports Icecast & SHOUTcast streams - Delay-time between consecutive tracks is unmatched - Uses folder.jpg cover art FWIW, I'm also using Diablo5/Telescope, so it's easy for me to minimize Xmms while it's playing, and then switch back when needed. I would gladly switch to a new and better player that is more N800 friendly. Looking forward to see what develops. |
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
Quote:
Quote:
Quote:
@jwernerny New mediabox looks good. But it is as huge and slow as Canola2 is. Try it out, maybe you will find it not so bad as I did. Here in my opinion we need very light and fast application like Telescope. So I advice you do not expect a lot of bells and whistles... |
Re: New audioplayer for n8x0
Does that orientation button rotate the screen or only the app? I really like the idea of rotating the app independently of the device's current orientation but it makes the app more complex. The app must still detect orientation changes so it can update its model. But now the app has four drawing modes: landscape-landscape, landscape-portrait, portrait-portrait, portrait-landscape. The other options it to have the button rotate the device's orientation so the app only needs to support two drawing modes. But does it then support all four orientations or only two? Adding three lines to Telescope allows me to press Home followed by the zoom keys to rotate the device left or right.
Quote:
Yay, not me! :) @ mitrandir: use C++ and Xlib like you did with Telescope. :) Regarding flickable scrolling, if you support this could you add a setting to adjust its speed. I would prefer to have it very low to make it easier to browse and not end up several pages away with a slight scroll. ASUI's process viewer has some fast list scrolling code if you need it, an additional timer and speed setting could be added to give it inertia support. Make sure it has a good dbus interface so it can be controlled by another program, such as ASUI's audio lock mode. And when I make my file manager I can launch audio files and playlist files into your player. I could even dynamically generate a playlist file for a given directory or all selected directories (in the file manager) and have your player play it. Then you could focus on the hard task of making a good audio player and I can focus on the easy stuff. ;) Would also be nice if you could make it play videos so I could launch them in it as well. :D Quote:
|
Re: New audioplayer for n8x0
Hi all,
I'm probably going to start developing this project :) I need several days to bring my current Harmattan project to solid shape and ready for Ovi Store. So we have time to discuss technical details and overall design now. Quote:
I thought about than and I think that pure Xlib wont be the case. It seems that audioplayer will heavily rely on D-Bus and it needs more advanced graphics and user interaction than Telescope. All of these could be much easier to implement with Glib & GTK. Actually, i don't expect that GTK can add much memory requirements because all its libs are already in RAM on Maemo. But it will make it much easier to integrate D-Bus, for example. But using GTK woth plain C is a pain and tears :) So, i'm thinking of using Vala. Vala is a kind of preprocessor that takes sources in Vala language which is C#-styled with automatic memory management, closures, and very tight GTK integration and builds plain C code that then compiled with regular gcc and works nearly as fast as hand-written C program. I think this is the best approach that combines modern language's features & conding speed and low-level performance of C. What about audio engine. I think we can start with GStreamer because it very common and is native for Maemo. And on Diablo there is GStreamer plugin for playing mp3 via DSP, which i expect to be best choice for 90% of users. But i think that player's code need to be designed with support of different engines in mind. By the way, does anybody has ready solution for how to react on headset button press? I think it could be figured out from 'headphoned' (right?) sources, but may be someone remembers exact D-Bus signal name? |
Re: New audioplayer for n8x0
Ah, Vala. I think Tear is coded in Vala.
|
Re: New audioplayer for n8x0
Quote:
Oh well, try to keep it around 7meg like xmms. Quote:
These are the bluetooth docs I collected for ASUI. http://bluez.cvs.sourceforge.net/vie...d/dbus-api.txt http://bluez.cvs.sourceforge.net/vie.../audio-api.txt http://maemo.org/maemo_release_docum....x/node10.html http://wiki.maemo.org/Documentation/...Bus_UI_dialogs https://garage.maemo.org/plugins/scm...ui&view=markup -- You can find dbus headset detection around line 1241. |
Re: New audioplayer for n8x0
Quote:
Quote:
And I think that your File Manager will work sweetly with audio player :) |
Re: New audioplayer for n8x0
Hi there,
Quote:
Quote:
Quote:
Quote:
Quote:
Code:
/* valac --pkg dbus-glib-1 --disable-dbus-transformation dbus-hal.vala */ There is a libhal binding, but DBus (through DBus-GLib) seems to be better integrated - I don't think all of libhal's functions are bound http://code.google.com/p/fingertier/ is a player written for the OpenMoko by a person who seems to have had some of the same ideas as you :) Quote:
Quote:
|
Re: New audioplayer for n8x0
what would really be good is if the music player can stream internet radio and have streamripper incorporated so you can record music and play it-streamtuner would be a good example
|
Re: New audioplayer for n8x0
Yes, Tear is coded in Vala. The only thing i hate about Vala is a lack of incremental compiling support. All source code must be recompiled after single line change.
auouymous, are you sure you measure memory consumption correctly? VSZ of GTK-based application will be greater, but VSZ includes memory that is shared among all GTK-apps. I think RSS is the right thing to compare. Or you already measure RSS? I need to do some tests, I think. If memory consumption difference will be considerably big, using of GTK should be reconsidered. By the way, Telescope is linked with Glib already, since merging with Launcher which uses Glib for parsing XML :) But no GTK and no Glib's D-Bus bindings. jstokes, thanks for the snippet! Yeah, Diablo has very old Vala version, but I already have some skills in working around its bugs :D |
Re: New audioplayer for n8x0
Quote:
Quote:
I have an idea, why don't you write a new Xlib UI toolkit for Maemo. Lightweight, flexible, pretty graphics, good theme support and so on. Then I can use it in the file manager and ASUI. :D |
Re: New audioplayer for n8x0
Quote:
But UI library is a huge amount of work and, after all, I'm not sure that it will use less memory if it will be as flexible and powerful as GTK ;) By the way, I have measured RAM consumption of the very simple gstreamer app and it seems to eat around 8mb when playing from local file and ~10mb when playing from http url. Adding empty GTK window adds another 3mb. But that's on desktop PC, i will test it on N810 later but i expect the same result. And by the way, if we want GStreamer backend we must use Glib because GStreamer is based on GObject Upd: rewrote experimental GTK+GStreamer program in vala: exactly same result in memory size than in C (even 150kb less :) ) And look how beautiful vala code is :) This is a full code of working program that plays mp3 from http Code:
static void main(string[] args) |
Re: New audioplayer for n8x0
Quote:
Quote:
UI toolkit that was similar enough to GTK that most basic GTK apps could compile against it without changes. |
Re: New audioplayer for n8x0
I did a few minor changes in drafts I showed before and some kind of settings page.
Keys, font size and about are links to the submenu which may be looks the same. I think play and switch buttons may still work as they used to even in the Settings menu. Who nows, maybe you will need to stop playing immediately… http://i066.radikal.ru/1109/9a/fe3586d73d98.png http://s006.radikal.ru/i215/1109/52/5c7afcf89adf.png I would like to hear what to do with seek circle on the seek bar. I have no idea what to draw... |
Re: New audioplayer for n8x0
Quote:
The new seek circle looks good, so did the last one. The checkboxes in settings need to stand out more, too hard to see. And you should gray out any control buttons that aren't active with settings open, like the playlist button. Unless you want to use it, in addition to the settings button, to close settings. That red close button has bugged me since the first mockup though. It stands out too much because it isn't blue/black/white like the rest of the window. Maybe darkening the red would help, or changing it to a blue X like diablo5. |
Re: New audioplayer for n8x0
Somebody mentioned recording live internet radio.
I love this idea. I listen to Acoustic Radio Cafe and it plays songs you can't find or purchase anywhere online. So yeah, having Streamripper (already available) support would be amazing. :) |
Re: New audioplayer for n8x0
Quote:
Okay, i'm not insisting on using GTK. After all, such non-generic UI will not use the core part of GTK — standard widgets. Simple pixmaps-based widgets and handling touch events can be implemented as thin abstraction layer over Xlib. So, okay, i'm going to agree with you about GTK :) Small & simple X-based UI toolkit seems to be enough. And this toolkit can be reusable in other projects :) (By the way, I already have some little experience in writing lightweight UI toolkits: I did one over WinAPI when developed project for Windows CE. Qt & Gtk was too heavy for device with 32mb RAM and I have created my own, because coding with plain WinAPI is even more ugly than with plain Xlib :) ) And if we are dropping GTK, Vala might be the next, because the main advantage of Vala is the ease of using GTK. And ok, D-Bus can be handled manually too :) But using GStreamer will eat 8-10mb of ram anyway. And i don't know how we can do anything about it. About the UI. I *love* these mockups! The last one with settings menu is really amazing (except checkboxes as auouymous said). But unfortunately blurred background is not the case for N8x0. We have no OpenGL shaders which can do this easily. And blurring with CPU is really expensive. I think the most we can do is to dim background with plain color. And yes, close button is not from here. It seems to be from Windows Vista :) Quote:
Kroll, i think it's time to start working out some formal technical requirements. Could you create some public Google Doc for it, please? |
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
Quote:
From my work in the old mediabox I've seen that the propietary mediaplayer-engine (media player backend) is quite easy to use and low on memory usage, it uses the DSP, and it makes sense to use it first since you already have it in memory (4,8 MB RSS) |
Re: New audioplayer for n8x0
Quote:
By the way, why don't we create a garage page? There is a place for reqests, isn't it? |
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
https://docs.google.com/document/d/1.../edit?hl=en_US
Rearrange, add, DO WHAT U WANT CUZ A PIRATE IS FREE, YOU ARE A PIRATE! |
Re: New audioplayer for n8x0
maacruz, thanks! Could you please point me to some docs on the mediaplayer-engine or something to start with?
Kropl, to organize some place for sources and tracker at garage or github we need some name for the project. Since thats your idea and inspiration the name is up to you ;) The googledoc you have created is a good start. Lets fill it with more concrete technical, UX and other details. auouymous, i've started to code a simple lightweight ui library and may be will publish something soon. Hope you will find it useful :) |
Re: New audioplayer for n8x0
Quote:
Quote:
|
Re: New audioplayer for n8x0
Quote:
Just the code from mediabox or atabake. Both are python and use python dbus.Interface magic to generate a controlling class. https://garage.maemo.org/plugins/scm...ox&view=markup If you have any problem understanding this code, tell me and I'll write the documentation for you. |
Re: New audioplayer for n8x0
Quote:
Also working on some code that allows sliding between views. It copies the current window to a pixmap, draws next view in another pixmap and then slowly animates between the two or allows user to drag between the two views. When you open a folder in the file manager it will slide the new folder in from the right. When you swipe right or click to go back it slides the parent folder in from the left. And switching between bookmarks and file view might slide vertically. ASUI will also use this when changing between primary and secondary widget pages and when opening/closing dialogs. Maybe we should also start a UI library project/thread to create a lightweight and touch-friendly UI widget library. Figure out what should be in it to make a new style of apps for Maemo4. Such as system-wide theming support and Kroll could tell us what is needed for good theming. Wouldn't it be nice if ASUI, SiMP, the file manager, Telescope's category bar and others all shared the same theme? :) Thoughts? |
Re: New audioplayer for n8x0
auouymous what a wonderful words have you wrote here... amazing!
But don't think that I know about good theming :) I am too lazy to learn how to make a really good stuff. |
Re: New audioplayer for n8x0
Quote:
ASUI's theme support lets you change the color of various elements. What does GTK let you do to change the style of widgets? I know GTK also supports plugins that handle that actual drawing of widgets for more complex stuff but how do simple themes work, like Diablo5? |
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
Huh? i still use one of the maemo4 themes. Can't be bothered to spend the storage space, and i kinda liked the sidebar anyways.
|
Re: New audioplayer for n8x0
Quote:
Quote:
(and of course use telescope for app launching). it's not perfect (eg visual glitches with window title bars and the task navigator looks a bit odd in the status bar) but good enough for me :-) |
Re: New audioplayer for n8x0
Quote:
I've never spoke about it cuz nobody asked me 'bout it looong time. So there is a BT-keyboard menu in Control Panel and there is a keybuilding to open default task switcher. Set your favorite keys to open it and you will see notifications as well. Actually you can bind some other actions there as well: show desktop, open built-in launcher, etc. |
Re: New audioplayer for n8x0
Quote:
I have switched back to Glasser, and it makes a refreshing change theme from Fremantle. Yea, and it's easier on my eyes as well. |
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
Quote:
|
Re: New audioplayer for n8x0
https://docs.google.com/document/d/1.../edit?hl=en_US
@ mitrandir and anyone else who cares I wrote down some ideas for the toolkit, what do you think? Anyone can edit that doc. GTK has a lot of features that probably shouldn't be in a tablet UI or should be handled differently and maybe some new features that GTK doesn't have. @ mitrandir Once upon a time I also wrote a UI toolkit with automatic layout so let me know what you need help with. The configuration windows for the dock on my desktop is still using it, 8 years later. :) I should have some time this next week to write some code for it. |
All times are GMT. The time now is 16:13. |
vBulletin® Version 3.8.8