The communication module is divided into multiple layers that are replacable or usable on their own. First let's start with a list of files and a short description: +----------------+---+-------------------------------------------------------+ | Module | T | Description | +----------------+---+-------------------------------------------------------+ | fifo.c | M | A simple fifo (First In, First Out) buffer | | memlist.c | M | A simple memory list module | | io_layer.c | M | Communication layer for HTTP requests | | io_layer_win32.| M | Communication layer WIN32 | | imo_request.c | M | Posts XMLHHTP-Requests to imo.im server | | cJSON.c | M | JSON parser in C (by Dave Gamble, slightly modified | | imo_skype.c | M | Communication layer for imo.im Skype | | skypetst.c | X | Testing application for Skype imo.im service | | queue.c | M | General Queue functions | | msgqueue.c | M | Message queue for incoming messages | | callqueue.c | M | Queue of incoming calls | | buddylist.c | M | Manages your list of buddies in memory | | imo2skypeapi.c | M | Wrapper for imo.im Webservice to SKYPE API | | imo2stest.c | X | Simple test application for imo2skypeapi | | imo2sproxy.c | M | Skypeproxy implementation to wrap imo2skypeapi | | w32browser.c | M | C COM Interface to Internet Explorer for call supp. | | main.c | X | Commandline interface for imo2sproxy module | | imoproxy.c | X | Miranda plugin implementation for imo2sproxy | | skypepluginlink| M | Communication layer with Miranda Skype Plugin 0.0.0.46| | socksproxy.c | M | Communication layer with socket protocol. | | w32skypeemu.c | M | Communication layer via Win32 Skype API emulation | +----------------+---+-------------------------------------------------------+ [T]ype is: M...Module, X...Executable (Application) Now here is the module list with their dependencies divided into layers: ==================================================================== IMO.IM Communication layer ==================================================================== +------------------------------------------------------------------+ | io_layer.c | +------------------------------------------------------------------+ | Communication layer for HTTP requests | | Depends on: fifo.c, Win32:WinInet, linux:libCURL | +------------------------------------------------------------------+ || || \/ +------------------------------------------------------------------+ | imo_request.c | +------------------------------------------------------------------+ | Communication module with imo.im | | Depends on: fifo.c, cJSON.c, io_layer.c | +------------------------------------------------------------------+ || || \/ +------------------------------------------------------------------+ | imo_skype.c | +------------------------------------------------------------------+ | Description: Skype protocol layer for imo.im | | Depends on: imo_request.c, cJSON.c | | Test application: skypetst.c | +------------------------------------------------------------------+ || ==================================================================== imo.im <--> SkypeAPI wrapper ==================================================================== || \/ +------------------------------------------------------------------+ | imo2skypeapi.c | +------------------------------------------------------------------+ | Description: Mapper for imo.im to simple implementation of | | SkypeAPI | | Depends on: fifo.c, memlist.c, buddylist.c, msgqueue.c, | | imo_skype.c, (w32browser.c),(libpthread) | | Test application: imo2stest.c | +------------------------------------------------------------------+ || || \/ +------------------------------------------------------------------+ | imo2sproxy.c | +------------------------------------------------------------------+ | Description: Skypeproxy implementation to wrap imo2skypeapi| | for Miranda Plugin and potentially others | | Depends on: memlist.c, imo2skypeapi.c, (libpthread) | +------------------------------------------------------------------+ || || || || \/ \/ +-----------------------------------------++-----------------------------------------+ | main.c || imoproxy.c | +-----------------------------------------++-----------------------------------------+ | Description: Commandline dispatcher || Description: Miranda IM Plugin | | Depends on: memlist.c, imo2skypeapi.c, || Depends on: memlist.c, imo2skypeapi.c, | | imo2sproxy.c, (libpthread) || imo2sproxy.c, (libpthread) | +-----------------------------------------++-----------------------------------------+ | | | +-------------------+ | | | | Communication layer: socksproxy.c w32skypeemu.c skypepluginlink.c