Monday, March 26, 2007

Winks

On the last past week i've been trying to implement Winks (those flash animations) on monkey messenger. I changed msnp-sharp to get it working. The good news is that i can get it transfered. The bad news is that there is no decent flash API on linux. Here is the options:

- Just use gecko and the flash plugin: This option may sound easy, but i didn't find a way to detect the animation end to close the window.
- Use gnash. Gnash is quite good, it plays all the winks animation i have tried. But a C glue library would be necessary to make C# bindings and use it.
- Use swfdec. This one also plays all the winks i have tried but it would be necessary to re-use the existing gtk widget on the source tree and make bindings to C#. Would be easier than using gnash afaik.
- Use flashplayer from macromedia. It would certainly work, but there is no library and i can't make the standalone flashplayer gtk window transparent. I would also have to call an external executable that would sux.

There is also one more problem. The winks comes in a .cab file. There is no managed .cab extractor for .net. There is libmspack and the cabextract program. They both work but the first would need C# bindings and the second would sux. It would be easy to extend sharpziplib and implement .cab extraction i think. This would be a better solution.

So folks, i gave up on winks for now because i was wasting too much time doing it and there are more important things to do on monkey messenger. On the source tree there is a Wink plugin which works by half and is unfinished. I will not touch it until:

- There is a managed way to extract .cab files;
- There is a decent and easy way to play flash animations on linux.

If you want to see this happening you would:

- Read swfdec source at the player folder and implement a gtk# widget that uses libswfdec to play movies, so we can add it to a transparent gtk window using composition.

- Implement a .cab extesion to sharpziplib

- Contact me!

Thanks :)

2 comments:

Vinicius said...

Maybe develop support for winks isn't so necessary compared to the difficulty atm.

As I can see in my blog stats, the most wanted feature is video and audio conference ;)

César said...

Another way to do it is to use a message log with HTML like AdiumX, Kopete or Miranda IM IEView plugin. This way you can embed the flash inside the messaging window.

Actually this would awesome, it is one of the features I love and miss from Adium, Kopete and Miranda.