root/src/add-ons/media/media-add-ons/video_mixer/CpuCapabilities.h
/*
 * Copyright (C) 2009 David McPaul
 *
 * All rights reserved. Distributed under the terms of the MIT License.
 */
 
#ifndef __CPU_CAPABILITIES__
#define __CPU_CAPABILITIES__

#define CAPABILITY_MMX 1
#define CAPABILITY_SSE1 2
#define CAPABILITY_SSE2 3
#define CAPABILITY_SSE3 4
#define CAPABILITY_SSSE3 5
#define CAPABILITY_SSE41 6
#define CAPABILITY_SSE42 7


class CPUCapabilities {
        public:
                CPUCapabilities();
                ~CPUCapabilities();
        
                bool HasMMX();
                bool HasSSE1();
                bool HasSSE2();
                bool HasSSE3();
                bool HasSSSE3();
                bool HasSSE41();
                bool HasSSE42();
        
                void PrintCapabilities();
        
        private:
                uint32          capabilities;

#ifdef __i386__
                void setIntelCapabilities();
#endif
};

#endif  //__CPU_CAPABILITIES__