|
Development
IntroductionMobbler is an open source project. Please feel free to checkout the source and build it yourself. Instructions below. If there is something you want to change, please change it. I would love to include your improvements in the project. If you raise an issue on the issues tab and attach your changes, I will try to include them as soon as possible. If it's a large change or something that might be controversial, please raise an issue first so that we can discuss it before putting any work in. I may consider adding you as a project member after making a few changes (not really sure on the criteria yet) so that you will be able to submit changes yourself. Build InstructionsGet the Mobbler source codePlease go to this page for instructions on how to check out Mobbler using Mercurial. I recommend that Windows users use TortoiseHG which is a lovely Windows Explorer plugin that makes it easy to do pretty much everything you would want to do with Mercurial. It's not as polished as TortoiseSVN yet though. Install CarbideIf you are reading this then you probably already have Carbide installed, but if not, you can go to the Symbian tools and kits page to download and install the latest version of the Application Development Kit (ADT) which includes Carbide. It's an IDE based on Eclipse that you will do your developing in. Get a Symbian SDKDownload and install a Symbian SDK linked to from here. You can also use the 3rd edition Feature Pack 2 SDK, if you prefer, which can be found here. Install S60 SDK API Plug-insTo do a complete build of Mobbler you will need a few Nokia SDK API Plug-ins. If you just want to build a basic version of Mobbler, without music player observing and some other features, you can skip to the next step. The page containing the main SDK API Plug-ins can be found here. The plug-ins you will need for Mobbler are the Browser Launcher API, Music Player Remote Control API, SW Installer Launcher API and the Audio Metadata Reader API which are all included in the zip file here. You will need to install the 5th edition SDK extension bundle for the MPX APIs found here. You will also need the Nokia Sensor APIs from here. Build MobblerWithout pluginsWithout the SDK plugins you will only be able to build the main Mobbler executable. If you are using Carbide, you should import the project, but untick everything except for mobbler.mmp and icons.mk. You can then build it as usual. You can also build on the command line using the normal build tools as below. cd group bldmake bldfiles abld build icons abld build winscw udeb mobbler abld build gcce urel mobbler With pluginsThis should just be the normal Symbian build process. If you are using Carbide, you should just import the project and build it as usual. You can also build on the command line using the normal build tools as below. cd group bldmake bldfiles abld build winscw udeb abld build gcce urel Create the .SIS fileThe mobbler.pkg file included in the Mobbler source is written to be used within Carbide. You can get Carbide to build the .SIS for you by adding it in the project settings. Please choose to self sign the .SIS file and select the mobbler.cer and mobbler.key provided. The mobbler.pkg is also written to include all the plugins, if you are building without the plugins and want to install to your device, you can comment out the line that include the plugins. |
Create the .SIS file on the command line
1. First edit the mobbler..pkg and replace $(EPOCROOT) and $(PLATFORM)\$(TARGET) with real values, for example: "D:\S60\devices\S60_3rd_FP2_SDK_v1.1" and "gcce\urel\"
2. Then type the following to make the .SIS and then sign it.
There were 2 things I wanted to fix in 0.3.1 of Mobbler and I've been success in that quest. The first was an issue that surfaced when I switched from 0.2.4 to 0.3.1 on my Nokia N95 8GB. The older version provided rock-solid audio playback (except when buffering). On the newer version however there were many tiny breaks in the audio (perhaps less than 1/10th of a second, but very annoying).
I originally thought it was just a matter of increasing the priority of either the applet or the Active Object used to read in the stream. Neither of these things helped, and so I looked at what you were doing to advance the progress bar. Apparently you are rebuilding the ENTIRE SCREEN countless times each second and this uses tons of processor power. By rewriting code so that ONLY the progress bar is rebuilt and repainted the micro breaks GO AWAY. You should consider this in your official version.
The second problem I wanted to address was the rather short buffer time, which depending upon the time of day sometimes results in a lot of re-buffers (even when using a WiFi? connection). The problem is the latency to your server over there in the UK (I'm in Canada). Changing the buffer time was of course a piece of cake, but a great suggestion would be providing a user-settable buffer time. I added that to my copy.
@pbexterme
If you would like to see these changes in Mobbler then please create a new issue for each one, using the issues tab above. Add a diff containing your changes and I will then look into including them.
Cheers!
The modifications I made are rather sloppy, since they were based on just 12 hours of exposure to the source code. In other words, they are hacks that also include changes I made to suit my own personal tastes.
I'd hoped that describing how I dealt with the issue (the excessive use of processor power to update the screen needlessly) would help you to formulate a fix that better integrates with your application as a whole.
Hi guys. I like the approach that you are taking here. Would it be possible to modify the code to work on simple series 40 devices (Nokia 6300?). Just a way to scrobble plays would be fantastic. Thanks
I'm also looking for a s40 last.fm scrobbler, one that I could use offline and upload info to last.fm via PC.
@liepumartins and mhbrugman, for any app to work on S40 devices, it has to be a j2ME app
Hey, I'm a very interested s40 user. I'm wondering if it is possible to create the same functional scrobbler for s40. Users like me really miss the possibility to scrobbler songs listened in a mobile phone.
hi im trying to import the project into carbide with very little success, would it be possible to have a couple of quick points on how to do it?
Just curious -- Is there a way you can select for Mobbler to only get tracks when connected to Wifi, rather than going to the cellular network for data? Or is that functionality there and I'm simply missing it? (Sorry, still an S60 and Last.fm noob.)
Hi guys! Great work and even greater codebase!
Is there a document detailing the codebase for someone to start off???
Thanks Ashmin,
No documentation other than this wiki and the code itself. The best thing to do is pick an existing bug or enhancement (and leave a comment), or create one yourself, and dive right in!