// (c) 2004-2006 Criterion Software Limited and its licensors. All Rights Reserved
/**
\file
Define the major, minor and patch versions.
*/

#ifndef RW_CONTROLLER_VERSION_H
#define RW_CONTROLLER_VERSION_H

#if defined _MSC_VER
#pragma once
#endif

// Define the major, minor and patch versions.
// This information is updated with each release.

//! This define indicates the major version number for the controller package.
//! \sa RW_CONTROLLER_VERSION
#define RW_CONTROLLER_VERSION_MAJOR   1
//! This define indicates the minor version number for the controller package.
//! \sa RW_CONTROLLER_VERSION
#define RW_CONTROLLER_VERSION_MINOR   4
//! This define indicates the patch version number for the controller package.
//! \sa RW_CONTROLLER_VERSION
#define RW_CONTROLLER_VERSION_PATCH   0

/*!
 * \brief This is a utility macro that users may use to create a single version number
 * that can be compared against RW_CONTROLLER_VERSION.
 *
 * For example:
 *
 * \code
 *
 * #if RW_CONTROLLER_VERSION > RW_CONTROLLER_CREATE_VERSION_NUMBER( 1, 1, 0 )
 * printf("Controller version is greater than 1.1.0.\n");
 * #endif
 *
 * \endcode
 */
#define RW_CONTROLLER_CREATE_VERSION_NUMBER( major_ver, minor_ver, patch_ver ) \
    ((major_ver) * 1000000 + (minor_ver) * 1000 + (patch_ver))

/*!
 * \brief This macro is an aggregate of the major, minor and patch version numbers.
 * \sa RW_CONTROLLER_CREATE_VERSION_NUMBER
 */
#define RW_CONTROLLER_VERSION \
    RW_CONTROLLER_CREATE_VERSION_NUMBER( RW_CONTROLLER_VERSION_MAJOR, RW_CONTROLLER_VERSION_MINOR, RW_CONTROLLER_VERSION_PATCH )

#endif // RW_CONTROLLER_VERSION_H
