Commit 5164757c authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

Beginnings of an MSCMS implementation based on LittleCMS.

parent 2d02afbc
......@@ -80,6 +80,7 @@ DLLs (under dlls/):
msacm/msadp32/ - MS ADPCM Audio Codec
msacm/msg711/ - MS G711 Audio Codec (includes A-Law & MU-Law)
msacm/winemp3/ - Mpeg Layer 3 Audio Codec
mscms/ - Color Management System
msdmo/ - DirectX Media Objects
mshtml/ - MS HTML component
msi/ - Microsoft Installer
......
......@@ -631,6 +631,15 @@ AC_CHECK_HEADERS(libaudioio.h,
[AUDIOIOLIBS="-laudioio"
AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])])
dnl **** Check for lcms ****
AC_CHECK_HEADERS(lcms.h,
[AC_CHECK_LIB(lcms,cmsOpenProfileFromFile,
[AC_DEFINE(HAVE_LCMS,1,[Define if you have lcms libs and headers])
AC_SUBST(LCMSLIBS,"-llcms")
])
])
dnl **** Check for capi4linux ****
AC_CHECK_HEADERS(capi20.h,[
......@@ -1596,6 +1605,7 @@ dlls/msacm/msadp32/Makefile
dlls/msacm/msg711/Makefile
dlls/msacm/winemp3/Makefile
dlls/msacm/tests/Makefile
dlls/mscms/Makefile
dlls/msdmo/Makefile
dlls/mshtml/Makefile
dlls/msi/Makefile
......
......@@ -76,6 +76,7 @@ BASEDIRS = \
msacm/msadp32 \
msacm/msg711 \
msacm/winemp3 \
mscms \
msdmo \
mshtml \
msi \
......@@ -311,6 +312,7 @@ SYMLINKS_SO = \
msacm.drv.so \
msacm32.dll.so \
msadp32.acm.so \
mscms.dll.so \
msdmo.dll.so \
msg711.acm.so \
mshtml.dll.so \
......@@ -645,6 +647,9 @@ msacm.dll.so : msacm32.dll.so
msadp32.acm.so: msacm/msadp32/msadp32.acm.so
$(RM) $@ && $(LN_S) msacm/msadp32/msadp32.acm.so $@
mscms.dll.so: mscms/mscms.dll.so
$(RM) $@ && $(LN_S) mscms/mscms.dll.so $@
msdmo.dll.so: msdmo/msdmo.dll.so
$(RM) $@ && $(LN_S) msdmo/msdmo.dll.so $@
......@@ -1025,6 +1030,7 @@ IMPORT_LIBS = \
libmlang.$(IMPLIBEXT) \
libmpr.$(IMPLIBEXT) \
libmsacm32.$(IMPLIBEXT) \
libmscms.$(IMPLIBEXT) \
libmsdmo.$(IMPLIBEXT) \
libmshtml.$(IMPLIBEXT) \
libmsi.$(IMPLIBEXT) \
......@@ -1389,6 +1395,11 @@ libmsacm32.def: msacm/msacm32.spec.def
libmsacm32.a: msacm/msacm32.spec.def
$(DLLTOOL) -k -l $@ -d msacm/msacm32.spec.def
libmscms.def: mscms/mscms.spec.def
$(RM) $@ && $(LN_S) mscms/mscms.spec.def $@
libmscms.a: mscms/mscms.spec.def
$(DLLTOOL) -k -l $@ -d mscms/mscms.spec.def
libmsdmo.def: msdmo/msdmo.spec.def
$(RM) $@ && $(LN_S) msdmo/msdmo.spec.def $@
libmsdmo.a: msdmo/msdmo.spec.def
......@@ -1777,6 +1788,7 @@ mapi32/mapi32.spec.def: $(WINEBUILD)
mlang/mlang.spec.def: $(WINEBUILD)
mpr/mpr.spec.def: $(WINEBUILD)
msacm/msacm32.spec.def: $(WINEBUILD)
mscms/mscms.spec.def: $(WINEBUILD)
msdmo/msdmo.spec.def: $(WINEBUILD)
mshtml/mshtml.spec.def: $(WINEBUILD)
msi/msi.spec.def: $(WINEBUILD)
......@@ -1921,6 +1933,7 @@ mpr/mpr.dll.so: mpr
winmm/wavemap/msacm.drv.so: winmm/wavemap
msacm/msacm32.dll.so: msacm
msacm/msadp32/msadp32.acm.so: msacm/msadp32
mscms/mscms.dll.so: mscms
msdmo/msdmo.dll.so: msdmo
msacm/msg711/msg711.acm.so: msacm/msg711
mshtml/mshtml.dll.so: mshtml
......
Makefile
mscms.dll.dbg.c
mscms.spec.def
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = mscms.dll
IMPORTS = kernel32
EXTRALIBS = @LCMSLIBS@
C_SRCS = \
mscms_main.c
@MAKE_DLL_RULES@
### Dependencies:
@ stub AssociateColorProfileWithDeviceA
@ stub AssociateColorProfileWithDeviceW
@ stub CheckBitmapBits
@ stub CheckColors
@ stdcall CloseColorProfile(ptr)
@ stub ConvertColorNameToIndex
@ stub ConvertIndexToColorName
@ stub CreateColorTransformA
@ stub CreateColorTransformW
@ stub CreateDeviceLinkProfile
@ stub CreateMultiProfileTransform
@ stub CreateProfileFromLogColorSpaceA
@ stub CreateProfileFromLogColorSpaceW
@ stub DeleteColorTransform
@ stub DisassociateColorProfileFromDeviceA
@ stub DisassociateColorProfileFromDeviceW
@ stub EnumColorProfilesA
@ stub EnumColorProfilesW
@ stub GenerateCopyFilePaths
@ stub GetCMMInfo
@ stub GetColorDirectoryA
@ stub GetColorDirectoryW
@ stub GetColorProfileElement
@ stub GetColorProfileElementTag
@ stub GetColorProfileFromHandle
@ stub GetColorProfileHeader
@ stub GetCountColorProfileElements
@ stub GetNamedProfileInfo
@ stub GetPS2ColorRenderingDictionary
@ stub GetPS2ColorRenderingIntent
@ stub GetPS2ColorSpaceArray
@ stub GetStandardColorSpaceProfileA
@ stub GetStandardColorSpaceProfileW
@ stub InstallColorProfileA
@ stub InstallColorProfileW
@ stub InternalGetDeviceConfig
@ stub InternalGetPS2CSAFromLCS
@ stub InternalGetPS2ColorRenderingDictionary
@ stub InternalGetPS2ColorSpaceArray
@ stub InternalGetPS2PreviewCRD
@ stub InternalSetDeviceConfig
@ stub IsColorProfileTagPresent
@ stub IsColorProfileValid
@ stdcall OpenColorProfileA(ptr long long long)
@ stdcall OpenColorProfileW(ptr long long long)
@ stub RegisterCMMA
@ stub RegisterCMMW
@ stub SelectCMM
@ stub SetColorProfileElement
@ stub SetColorProfileElementReference
@ stub SetColorProfileElementSize
@ stub SetColorProfileHeader
@ stub SetStandardColorSpaceProfileA
@ stub SetStandardColorSpaceProfileW
@ stub SpoolerCopyFileEvent
@ stub TranslateBitmapBits
@ stub TranslateColors
@ stub UninstallColorProfileA
@ stub UninstallColorProfileW
@ stub UnregisterCMMA
@ stub UnregisterCMMW
/*
* MSCMS - Color Management System for Wine
*
* Copyright 2004 Hans Leidekker
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "icm.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(mscms);
#ifdef HAVE_LCMS
/* These basic Windows types are defined in lcms.h when compiling on
* a non-Windows platforms (why?), so they would normally not conflict
* with anything included earlier. But since we are building Wine they
* most certainly will have been defined before we include lcms.h.
* The preprocessor comes to the rescue.
*/
#define BYTE LCMS_BYTE
#define LPBYTE LCMS_LPBYTE
#define WORD LCMS_WORD
#define LPWORD LCMS_LPWORD
#define DWORD LCMS_DWORD
#define LPDWORD LCMS_LPDWORD
#define BOOL LCMS_BOOL
#define LPSTR LCMS_LPSTR
#define LPVOID LCMS_LPVOID
#undef cdecl
#undef FAR
#undef ZeroMemory
#undef CopyMemory
#undef LOWORD
#undef MAX_PATH
#include <lcms.h>
/* Funny thing is lcms.h defines DWORD as an 'unsigned int' whereas Wine
* defines it as an 'unsigned long'. To avoid compiler warnings we use a
* preprocessor define for DWORD and LPDWORD to get back Wine's orginal
* (typedef) definitions.
*/
#undef DWORD
#undef LPDWORD
#define DWORD DWORD
#define LPDWORD LPDWORD
#endif
HPROFILE WINAPI OpenColorProfileA( PPROFILE profile, DWORD access, DWORD sharing, DWORD creation )
{
FIXME("( %p, %lx, %lx, %lx ) stub!\n", profile, access, sharing, creation );
return NULL;
}
HPROFILE WINAPI OpenColorProfileW( PPROFILE profile, DWORD access, DWORD sharing, DWORD creation )
{
FIXME("( %p, %lx, %lx, %lx ) stub!\n", profile, access, sharing, creation );
return NULL;
}
BOOL WINAPI CloseColorProfile( HPROFILE profile )
{
FIXME("( %p ) stub!\n", profile );
return FALSE;
}
......@@ -239,6 +239,12 @@
/* Define to 1 if you have the <jpeglib.h> header file. */
#undef HAVE_JPEGLIB_H
/* Define if you have lcms libs and headers */
#undef HAVE_LCMS
/* Define to 1 if you have the <lcms.h> header file. */
#undef HAVE_LCMS_H
/* Define if you have libaudioIO */
#undef HAVE_LIBAUDIOIO
......
......@@ -98,6 +98,14 @@ typedef struct tagPROFILE {
DWORD cbDataSize;
} PROFILE, *PPROFILE, *LPPROFILE;
HPROFILE WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD);
HPROFILE WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD);
#define OpenColorProfile WINELIB_NAME_AW(OpenColorProfile)
BOOL WINAPI CloseColorProfile(HPROFILE);
#define PROFILE_FILENAME 1
#define PROFILE_MEMBUFFER 2
#ifdef __cplusplus
}
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment