Development History

Oiseyer Inc. is a California-based software development company that was established in March, 2006.

2006

2007

2008

2009

All video encoder/decoder, sound encoder/decoder and communication module are developed with ANSI C .

GUI parts are developed on either Objective-C or C , depending on the OS.  Underlying layer (Window for Windows, View for Mac and GTK+ for Linux) is used to create the upper layer for the GUI’s basic features, like buttons and picture lists.

Current KeyHole system is designed to be operated by multi-thread .  All threads are in cooperative relationship without Mutex .  Each thread is in an infinite loop format using Sleep (or usleep) and the threads process events using queues from the infinite list.  In order for a thread to delegate processing from another thread , it will always have the queue from the infinite list.

Infinite List

Windows, Mac or Linux can only display items on MainLoop only, therefore, other threads should not be allowed to display items.  Exclusion processing is performed by one thread writing to queue and its data gets extracted by a timer function for display items.

Thread Loop

  The KeyHole system is designed not to perform dynamic memory allocation .  During initialization of the application, KeyHole system allocates all memory, which then gets recycling by the application.  However, there are cases where OS dependent memory allocations will be used in case of chat processing for an OS dependent drawing process.