KCMS CMM Reference Manual

Preface

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 section 1: User Commands and man pages section 3: Basic Library Functions:

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 9 Installation Guide.

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

Item 

Convention 

Examples 

const

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

KcsSharIOId

#define

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

KcsSharIOIdd

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 

attribute 

tag 

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.


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.

Typographic Conventions

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

Table P-3 Typographic Conventions

Typeface or Symbol 

Meaning 

Example 

AaBbCc123

 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.

AaBbCc123

 What you type, contrasted with on-screen computer output

machine_name% su

Password:

AaBbCc123

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

To delete a file, type rm filename.

AaBbCc123

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

Shell 

Prompt 

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