Following the motto often found in teams "Whoever has the idea, has to do the work" I did a little snooping around to figure out the pseudo-color BLN stuff and I think I got it.
I began by finding the API to allow apps to set the LED color, which is part of the standard Notification-class and then tracing it's way through the different layers to the kernel hand-off point. For anyone interested to follow my steps:
NotificationManagerService.java ->
LightsService.java ->
com_android_server_LightsService.cpp. From there it out of the framework and into libhardware/liblights. liblights is the hand-off point between OS and kernel and here it gets interesting.
The notifcations are handed down from the OS using the struct light_state_t ( defined in
libhardware/include/lights.h), which has the
color property. In our implementation of light.c, this property is largely ignored. On other platforms (I used
msm7k as an comparison), you can see this property is used to feed the different brightness values to the corresponding LEDs. If you look at that lights.c implementation, you can also see they have three single LED interfaces for the different colors rather than one RGB interface. This would explain why you only know about the one parameter, gokhan.
Now, the conclusion from all this is:
1) liblight definitely needs to be patched to actually use the RGB values from the notifications
2) We need a way to let the kernel know these values. Either the kernel implements a new interface to accept the full RGB value/the three single colors as a parameter and then does the mapping internally or liblight decodes and maps the colors and then writes a selection value to the notification interface which then uses that value to display the selected effect. The first version is probably the preferable way but I admit to know too little about the kernelside to estimate the complexity of this.
I hope this helps you gokhan to figure things out. If you need me to provide you with more infos or if I can assist in some other way, just let me know