KCMS CMM Reference Manual


The KCMS CMM Reference Manual provides detailed descriptions of the Kodak Color Management System (KCMSTM) foundation library. This library is a graphics porting interface (GPI) implemented in C++ for creating KCMS color modules. A set of C++ classes are supplied that can be derived from and extended. You can add attributes to the current list, incorporate new color processing technology, or support alternate profile formats.

Use this book with the KCMS CMM Developer's Guide which provides an in-depth view of the KCMS framework and how the API works with this GPI, how to derive from each C++ class, how to create a dynamically loadable CMM, and how to add profiles to the system.

Who Should Use This Book

Use this book if you are interested in:

Before You Read This Book

You should be familiar with the Kodak Color Management System (KCMS) API which is part of the SDK; see the KCMS Application Developer's Guide.

You should also have an understanding of C++ and Solaris dynamic loading technology. Solaris dynamic loading is discussed in the Linker and Libraries Guide and in the following manual pages in man Pages(1): User Commands and man Pages(3): Library Routines:

A basic understanding of color science is also assumed; references are included in the Bibliography of the KCMS Application Developer's Guide.

See the on-line SUNWrdm packages for information on bugs and issues, engineering news, and patches. For Solaris installation bugs and for late-breaking bugs, news, and patch information, see the Solaris 8 (SPARC Platform Edition) Installation Guide and the Solaris 8 (Intel Platform Edition) Installation Guide manuals.

For SPARC systems, consult the updates your hardware manufacturer may have provided also.

How This Book Is Organized

Note -

Each chapter in this book describes relevant classes in the KCMS architecture. Although the DDK header files may include additional information (private and methods and other internal interfaces) for each class, be aware that the chapters in this book present all the methods you need to be concerned about to write your CMM.

The chapters are organized as follows:

Chapter 1, KcsShareable Class describes the KcsShareable class.

Chapter 2, I/O Classes describes these I/O classes: KcsIO, KcsFile, KcsMemoryBlock, KcsSolarisFile, and KcsXWindow.

Chapter 3, KcsChunkSet Class describes in detail the KcsChunkSet class.

Chapter 4, KcsLoadable Class describes in detail the KcsLoadable class.

Chapter 5, KcsProfile Class describes in detail the KcsProfile class.

Chapter 6, KcsProfileFormat Class describes in detail the KcsProfileFormat class.

Chapter 7, KcsTags Class describes in detail the KcsAttributeSet class.

Chapter 8, KcsXform Class describes the member functions in the KcsXform class.

Chapter 9, KcsXformSeq Class describes the member functions in the KcsXformSeq class.

Related Books

The following is a list of recommended books that can help you accomplish the tasks described in this book:

KcsId Naming Convention

Each class contains a KcsId that uniquely identifies that class. Most KcsIds are defined in the kcsids.h header file. The naming conventions shown in the following table are used for the KcsId for each class in the KCMS framework. The #defines are helpful in switch statements.

Table P-1 KcsId Naming Conventions





Kcs<Base Class Id><Derived Class Id>Id



Kcs<Base Class Id><Derived Class Id>Idd


Equivalent Terms In This Book

For historic reasons, this book uses several equivalent Kodak and International Color Consortium (ICC) terms. The terms evolved at different times. Development of the ICC specification introduced new ICC terms with meanings the same as (or similar to) already existing Kodak terms.

You should be familiar with the terms listed in the table below, as you will encounter them in the ICC specification and KCMS color management documentation, as well as in the KCMS header files and example programs. The terms are defined as they are introduced in this book.

Table P-2 Equivalent ICC and Kodak Terms

Kodak Term 

ICC Term 



device color profile (DCP) 

input, display, or output profile 

effects color profile (ECP) 

abstract profile 

complete color profile (CCP) 

device link profile 

profile format Id or magic number  

profile file signature  

reference color space (RCS) 

profile connection space (PCS) 

Note -

The text in this book uses the term attribute instead of tag, (but code examples and header files may use tag for the historic reasons previously mentioned.

Ordering Sun Documents

Fatbrain.com, an Internet professional bookstore, stocks select product documentation from Sun Microsystems, Inc.

For a list of documents and how to order them, visit the Sun Documentation Center on Fatbrain.com at http://www1.fatbrain.com/documentation/sun.

Accessing Sun Documentation Online

The docs.sun.comSM Web site enables you to access Sun technical documentation online. You can browse the docs.sun.com archive or search for a specific book title or subject. The URL is http://docs.sun.com.

What Typographic Conventions Mean

The following table describes the typographic changes used in this book.

Table P-3 Typographic Conventions

Typeface or Symbol 




 The names of commands, files, and directories; on-screen computer output

Edit your .login file.

Use ls -a to list all files.

machine_name% you have mail.


 What you type, contrasted with on-screen computer outputmachine_name% su Password:


 Command-line placeholder: replace with a real name or value

To delete a file, type rm filename.


Book titles, new words, or terms, or words to be emphasized. 

Read Chapter 6 in User's Guide.

These are called class options.

You must be root to do this.

Shell Prompts in Command Examples

The following table shows the default system prompt and superuser prompt for the C shell, Bourne shell, and Korn shell.

Table P-4 Shell Prompts



 C shell promptmachine_name%
 C shell superuser promptmachine_name#
 Bourne shell and Korn shell prompt$
 Bourne shell and Korn shell superuser prompt#