Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,814,032 Members 44,258 Now Online
XDA Developers Android and Mobile Development Forum

[Q] FM Radio app, Broadcom BCM4329 chipset

Tip us?
 
daniel.weck
Old
(Last edited by daniel.weck; 16th February 2011 at 09:44 AM.)
#1  
daniel.weck's Avatar
Senior Member - OP
Thanks Meter 75
Posts: 548
Join Date: Nov 2010
Lightbulb [Q] FM Radio app, Broadcom BCM4329 chipset

- UPDATE 16 February 2011 -

Attached to this post is the relevant FM source code extracted from the CyanogenMod git repository [1] and merged into the AOSP code base (note that so far I haven't used any of the "Update1" source code released by Samsung, but this would be advisable). This is not a straight copy from CM, I manually imported the FM-related code snippets (CM tweaks the audio framework further, with effects, etc.).

The good news is that this compiles fine, the bad news is that when I copy the resulting libs to the device, the Tab gets stuck at the Samsung logo.

/system/lib/libandroid_runtime.so
/system/lib/libaudioflinger.so
/system/lib/libmedia.so
/system/lib/libmedia_jni.so

At this stuck boot stage, I was able to open an ADB session, but /proc/kmsg (and other logs) were not showing any obvious problems so I couldn't diagnose the actual issue. I mounted the SD card (onto which I had a backup of the original libraries), and I restored the *.so files. The Tab immediately generated the audio welcome cue and booted to completion. So I guess that my newly-compiled libraries set was blocking the audio system, somehow.

At any rate, more work is needed to understand how to build required framework bits from AOSP so that they work on the Tab. Maybe there is more to it than just the aforementioned 4 *.so libs. For example, I'm not sure where these files take part:

media/java/android/media/AudioManager.java
media/java/android/media/AudioService.java
media/java/android/media/AudioSystem.java
media/java/android/media/MediaRecorder.java

Furthermore, I wonder how to setup the /dev/radio0 at kernel level ? It doesn't even seem to be needed at all, because the code ignores the device path altogether !! (/dev/radio0 would be a video-for-Linux v4l device, possibly required by the FM framework...although access to the Broadcom BCM4329 chipset seems to be direct in the source code) I can't see any obvious kernel diff on the CyanogenMod repository, so I'm a bit stuck to be honest ! Ultimately the v4l device should allow us to query the FM functionality directly: [v4l2-ctl -d /dev/radio0 --all -L], but it looks like CyanogenMod implements a FM hack by querying hci_w().

Talking about CM, it is clear that Techomancer's porting effort is worth mentioning, as it may be possible to enable FM support more easily there: https://github.com/techomancer / http://forum.xda-developers.com/showthread.php?t=931857

The FM app compiles fine (I just dropped the source code [2] straight into the AOSP tree). The only problem I have is JAR/APK signing, but I could use Eclipse to build the app separately from the AOSP build system. I haven't bothered, there's no point spending time on this until the FM driver/kernel stuff works.

Cheers, Daniel

[1]
https://github.com/CyanogenMod/andro...792a6d90891f4e

[2]
https://github.com/CyanogenMod/android_packages_apps_FM

Here's a bunch of useful links:

http://www.ifixit.com/Teardown/Samsu...eardown/4103/2

http://hk.samsungmobile.com/ENG/mobi...-specification

https://www.codeaurora.org/gitweb/qu....git;a=summary

http://android.git.kernel.org/?p=pla...43c8ce6ec10e3c

https://www.codeaurora.org/gitweb/qu...0a6eab1f6019aa

https://github.com/millenomi/nomadikradio

http://gitorious.org/0xdroid/package...icinc/fmradio/

https://github.com/j-r0dd/android_pa...icinc/fmradio/

http://www.miui.com/thread-1687-1-1.html

http://android.modaco.com/content-pa.../#entry1422743

http://forum.cyanogenmod.com/topic/1...cm4325-phones/
Attached Files
File Type: zip fm_radio_cyanogen_code_patch.tar.zip - [Click for QR Code] (158.7 KB, 859 views)
The Following 5 Users Say Thank You to daniel.weck For This Useful Post: [ Click to Expand ]
 
daniel.weck
Old
#2  
daniel.weck's Avatar
Senior Member - OP
Thanks Meter 75
Posts: 548
Join Date: Nov 2010
Note: although there is a workaround for the Droid 2, it wouldn't work with the Tab because it uses a different chipset:

http://forum.xda-developers.com/showthread.php?t=769894
The Following User Says Thank You to daniel.weck For This Useful Post: [ Click to Expand ]
 
daniel.weck
Old
(Last edited by daniel.weck; 12th November 2010 at 06:39 PM.)
#3  
daniel.weck's Avatar
Senior Member - OP
Thanks Meter 75
Posts: 548
Join Date: Nov 2010
Alright, the Motorola Droid 2 app runs fine in portrait mode (although bitmaps are not scaled to HDPI), but it stays on "Waiting for FM radio...". Here's the relevant logcat snippets:

Code:
ActivityIntentInfo{482a8dc0 com.motorola.fmradio.FMRadioMain}

ActivityIntentInfo{484825b0 com.sec.android.app.factorytest.FmRadioTest}

ActivityIntentInfo{48474078 com.android.settings.RadioInfo}

I/ActivityManager( 2489): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.motorola.fmradio/.FMRadioMain }

I/ActivityManager( 2489): Start proc com.motorola.fmradio for activity com.motorola.fmradio/.FMRadioMain: pid=6109 uid=10256 gids={}

I/ActivityThread( 6109): Publishing provider com.motorola.provider.fmradio: com.motorola.fmradio.FMDataProvider

I/dalvikvm( 6109): Could not find method android.util.Log.e, referenced from method com.motorola.fmradio.FMRadioMain$19.handleMessage
W/dalvikvm( 6109): VFY: unable to resolve static method 162: Landroid/util/Log;.e (Ljava/lang/String;[Ljava/lang/String;)I
D/dalvikvm( 6109): VFY: replacing opcode 0x71 at 0x0cb9
D/dalvikvm( 6109): VFY: dead code 0x0cbc-0cbc in Lcom/motorola/fmradio/FMRadioMain$19;.handleMessage (Landroid/os/Message;)V
D/FMRadioMain( 6109): **************FMRadioMain Activity onCreate() called!****************
D/FMRadioMain( 6109): **************FMRadioMain Activity onCreateInternal() called!****************
D/dalvikvm( 6109): GC_EXTERNAL_ALLOC freed 1148 objects / 76976 bytes in 36ms
I/global  ( 2489): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required.
D/FMDataProvider( 6109): set save table: FM_Radio_saved_state
D/FMRadioMain( 6109): enter initResourceRefs()
D/FMRadioMain( 6109): Enter getDataFromDB(), will update data in list_results
D/FMDataProvider( 6109): set channel table: FM_Radio
D/FMRadioMain( 6109): Leave getDataFromDB()
D/FMRadioMain( 6109): Enter bindListViewToAdapter()
D/FMRadioMain( 6109): leave initResourceRefs()
D/FMRadioMain( 6109): Start to bind to FMRadio service
I/ActivityManager( 2489): Start proc com.motorola.fmradio:remote for service com.motorola.fmradio/.FMRadioPlayerService: pid=6116 uid=10256 gids={}
D/FMDataProvider( 6109): set channel table: FM_Radio
D/FMRadioMain( 6109): enter updateListView()
D/FMRadioMain( 6109): Enter getDataFromDB(), will update data in list_results
D/FMDataProvider( 6109): set channel table: FM_Radio
D/FMRadioMain( 6109): Leave getDataFromDB()
D/FMRadioMain( 6109): leave updateListView()
D/FMRadioMain( 6109): enter updateDisplayPanel()
D/FMRadioMain( 6109): FMRadio updateDisplay: currentFreq 87500 a1 0 a2 8 a3 7 a4 5
D/dalvikvm( 2391): GC_EXPLICIT freed 284 objects / 10768 bytes in 63ms
D/FMRadioMain( 6109): leave updateDisplayPanel()
D/FMRadioMain( 6109): enter updateListView()
D/FMRadioMain( 6109): Enter getDataFromDB(), will update data in list_results
D/FMDataProvider( 6109): set channel table: FM_Radio
D/FMRadioMain( 6109): Leave getDataFromDB()
D/FMRadioMain( 6109): leave updateListView()
D/FMRadioMain( 6109): onStart() called
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =0
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =1
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =2
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =3
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =4
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =5
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =6
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =7
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =8
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =9
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =10
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =11
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/dalvikvm( 2391): GC_EXPLICIT freed 47 objects / 2096 bytes in 66ms
E/JAVA:FMRadioPlayerService( 6116): onCreate() called
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =12
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =13
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =14
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =0
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =1
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =2
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =3
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =4
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =5
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =6
D/JAVA:FMRadioPlayerService( 6116): onBind() called
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =7
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =8
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =9
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =10
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/JAVA:FMRadioPlayerService( 6116): register airplane on/off broadcasts
D/JAVA:FMRadioPlayerService( 6116): register headset plug in/out broadcasts
D/JAVA:FMRadioPlayerService( 6116): register the audio path change message
D/JAVA:FMRadioPlayerService( 6116): register fmradio command
D/JAVA:FMRadioPlayerService( 6116): onStart() called
D/JAVA:FMRadioPlayerService( 6116): mServiceState.curServiceState() = -1
D/JAVA:FMRadioPlayerService( 6116): Before fm radio power on
D/FMDataProvider( 6109): set save table: FM_Radio_saved_state
D/JAVA:FMRadioPlayerService( 6116): FMStateUNInit:powerOn(): Power on fmradio device
W/ActivityManager( 2489): Unable to start service Intent { act=com.motorola.android.fmradio.FMRADIO_SERVICE }: not found
D/JAVA:FMRadioPlayerService( 6116): After fm radio power on
D/JAVA:FMRadioPlayerService( 6116): fm radio power on fail
D/JAVA:FMRadioPlayerService( 6116): Received intent: android.intent.action.HEADSET_PLUG
D/JAVA:FMRadioPlayerService( 6116): HEADSET is pluged in/out.
V/JAVA:FMRadioPlayerService( 6116): handleMessage headset plug begin
V/JAVA:FMRadioPlayerService( 6116): mHeadset = 1
V/JAVA:FMRadioPlayerService( 6116): mIsHeadsetPlugged = true
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =0
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =1
W/JAVA:FMRadioPlayerService( 6116): Headset is pluged in!
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/dalvikvm( 2391): GC_EXPLICIT freed 2 objects / 64 bytes in 109ms
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =2
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =3
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =4
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =5
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =6
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =7
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =8
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =9
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =10
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
W/FMRadioMain( 6109): onServiceConnected::fmradio java service started
W/JAVA:FMRadioPlayerService( 6116): IFMRadioPlayerService.Stub : isPowerOn
D/JAVA:FMRadioPlayerService( 6116): FMStateUNInit:isPowerOn(), return misPowerOn value to UI
W/FMRadioMain( 6109): servie is ready popup a wait dialog
D/FMDataProvider( 6109): set channel table: FM_Radio
D/JAVA:FMRadioPlayerService( 6116): Received intent: com.motorola.fmradio.bindservice.succeed
D/JAVA:FMRadioPlayerService( 6116): bind service succeed
W/JAVA:FMRadioPlayerService( 6116): Notice home to show update current preset name on the notice bar. 
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =0
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =1
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =2
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =3
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =4
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =5
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =6
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =7
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =8
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =9
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =10
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =11
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =12
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =13
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =14
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =0
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =1
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =2
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =3
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =4
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =5
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =6
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =7
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =8
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =9
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain( 6109): FMRadio ChannelListAdapter, getView(), position =10
D/FMRadioMain( 6109): FMRadio ChannelListAdapter getview, set gone
D/FMRadioMain ChannelListView( 6109): call onDraw
D/dalvikvm( 6010): GC_FOR_MALLOC freed 44693 objects / 3062512 bytes in 134ms
D/dalvikvm( 6010): GC_FOR_MALLOC freed 41160 objects / 3021872 bytes in 59ms
D/dalvikvm( 6010): GC_FOR_MALLOC freed 40577 objects / 2773512 bytes in 42ms
D/FMRadioMain ChannelListView( 6109): call onDraw
D/FMRadioMain ChannelListView( 6109): call onDraw
D/FMRadioMain ChannelListView( 6109): call onDraw
D/FMRadioMain ChannelListView( 6109): call onDraw
D/FMRadioMain ChannelListView( 6109): call onDraw
D/dalvikvm( 6010): GC_FOR_MALLOC freed 33184 objects / 2369512 bytes in 242ms
D/FMRadioMain ChannelListView( 6109): call onDraw
D/FMRadioMain ChannelListView( 6109): call onDraw
D/FMRadioMain ChannelListView( 6109): call onDraw
D/FMRadioMain ChannelListView( 6109): call onDraw


V/WindowManager( 2489): Dsptch to Window{48632258 com.motorola.fmradio/com.motorola.fmradio.FMRadioMain paused=false}
W/KeyCharacterMap( 6109): No keyboard for id 0
W/KeyCharacterMap( 6109): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
E/ShutdownThread( 2489): IsShutDownStarted()
I/KeyInputQueue( 2489): Input event
D/KeyInputQueue( 2489): screenCaptureKeyFlag setting 0
V/WindowManager( 2489): Dsptch to Window{48632258 com.motorola.fmradio/com.motorola.fmradio.FMRadioMain paused=false}
W/InputManagerService( 2489): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@48314940
D/dalvikvm( 5937): GC_EXPLICIT freed 2208 objects / 146560 bytes in 60ms
E/ShutdownThread( 2489): IsShutDownStarted()
I/KeyInputQueue( 2489): Input event
D/KeyInputQueue( 2489): screenCaptureKeyFlag setting 1
V/WindowManager( 2489): Dsptch to Window{48629c78 com.motorola.fmradio/com.motorola.fmradio.FMRadioMain paused=false}
E/ShutdownThread( 2489): IsShutDownStarted()
I/KeyInputQueue( 2489): Input event
D/KeyInputQueue( 2489): screenCaptureKeyFlag setting 0
V/WindowManager( 2489): Dsptch to Window{48629c78 com.motorola.fmradio/com.motorola.fmradio.FMRadioMain paused=false}
D/FMRadioMain( 6109): onPause() called
E/WindowManager( 2489): Overwriting rotation value from 0
W/InputManagerService( 2489): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@4848d5c0 (uid=10256 pid=6109)
I/ActivityManager( 2489): No longer want com.appspot.swisscodemonkeys.apps (pid 6020): hidden #16
D/FMRadioMain( 6109): onStop() called
D/FMRadioMain( 6109): onDestroy() called
D/JAVA:FMRadioPlayerService( 6116): onUnbind() called
D/JAVA:FMRadioPlayerService( 6116):  unregister Receiver.
The Following User Says Thank You to daniel.weck For This Useful Post: [ Click to Expand ]
 
daniel.weck
Old
(Last edited by daniel.weck; 12th November 2010 at 07:30 PM.)
#4  
daniel.weck's Avatar
Senior Member - OP
Thanks Meter 75
Posts: 548
Join Date: Nov 2010
I also tried a different FMRadio.apk (just that, no other lib/bin files), but the app com.huawei.android.FMRadio crashes with a Force Close. This is the one with a grey/silver radio icon (big black speaker on the right hand side).

The HtcFMRadio.apk (com.htc.fm) also FC, the icon for this one is a black radio with white knobs at the bottom, and a red needle on white background at the top.

The Droid 2 icon is a big square dial with a red needle.



EDIT: the deodexed FMRadio app from the Samsung Galaxy S (com.sec.android.app.fm) also crashes with Force Close. The icon is a big orange square with a single mini round dial in the bottom middle.
The Following User Says Thank You to daniel.weck For This Useful Post: [ Click to Expand ]
 
daniel.weck
Old
(Last edited by daniel.weck; 16th November 2010 at 12:28 AM.)
#5  
daniel.weck's Avatar
Senior Member - OP
Thanks Meter 75
Posts: 548
Join Date: Nov 2010
FM Radio reception, AND transmission

https://github.com/CyanogenMod/andro...ardware_fm.cpp

http://gitorious.org/0xdroid/package...icinc/fmradio/

https://github.com/j-r0dd/android_pa...icinc/fmradio/

http://www.miui.com/thread-1687-1-1.html
 
wawoox
Old
#6  
Member
Thanks Meter 0
Posts: 32
Join Date: Nov 2010

is any of this apps working with G-tab radio...it would fine is its work
 
daniel.weck
Old
#7  
daniel.weck's Avatar
Senior Member - OP
Thanks Meter 75
Posts: 548
Join Date: Nov 2010
Update: still looking for a driver, /dev/radio device, kernel module, and app combination that would work on the Tab... (I finished building a full ROM from Google's open-source code, next step is to test Samsung's custom code, then to try FM Radio code from other well-known ROMs)
 
daniel.weck
Old
#8  
daniel.weck's Avatar
Senior Member - OP
Thanks Meter 75
Posts: 548
Join Date: Nov 2010
https://github.com/CyanogenMod/andro...792a6d90891f4e

https://github.com/CyanogenMod/android_packages_apps_FM

https://github.com/CyanogenMod/andro...ardware_fm.cpp
 
procarion
Old
#9  
Member
Thanks Meter 1
Posts: 30
Join Date: Jan 2010
Location: Berlin
Is there any progress already?
I'd really love to use FM transmitting as my car does have an aux-in. They want to charge me additional 450 bucks for the stupid cable...
 
cgerdb
Old
#10  
Junior Member
Thanks Meter 0
Posts: 15
Join Date: Nov 2010
Thumbs up how is this going?

Hi, Thanks for doing all this testing, It looks like just a few people of us that are still interested in the good ol' FM. ahhhhh, please let us know when u have the apk

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes