Program Listing for File GenieCommon.h

Return to documentation for file (include/Genie/GenieCommon.h)

//=============================================================================
//
//  Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
//  All Rights Reserved.
//  Confidential and Proprietary - Qualcomm Technologies, Inc.
//
//=============================================================================

/**
 * @file
 * @brief   A header which contains common components shared between different
 *          components of the Genie C API.
 */

#ifndef GENIE_COMMON_H
#define GENIE_COMMON_H
#ifdef __cplusplus
#include <cstddef>
#include <cstdint>
#else
#include <stddef.h>
#include <stdint.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

//=============================================================================
// Macros
//=============================================================================

// Macro controlling visibility of Genie API
#ifndef GENIE_API
#define GENIE_API
#endif

// Provide values to use for the Genie API version.
#define GENIE_API_VERSION_MAJOR 1
#define GENIE_API_VERSION_MINOR 13
#define GENIE_API_VERSION_PATCH 0

//=============================================================================
// Data Types
//=============================================================================

/**
 * @brief A typedef to indicate GENIE API return handle.
 */
typedef int32_t Genie_Status_t;

/**
 * @brief A client defined callback function to provide the Genie library with client-allocated
 * memory.
 *
 * @param[in] size The size of the memory to be allocated.
 *
 * @param[out] allocatedData An output pointer to a pointer of client-allocated memory.
 *
 * @return None
 *
 */
typedef void (*Genie_AllocCallback_t)(const size_t size, const char** allocatedData);

//=============================================================================
// Status Codes
//=============================================================================

#define GENIE_STATUS_SUCCESS                   0
#define GENIE_STATUS_WARNING_ABORTED           1
#define GENIE_STATUS_WARNING_BOUND_HANDLE      2
#define GENIE_STATUS_WARNING_PAUSED            3
#define GENIE_STATUS_WARNING_CONTEXT_EXCEEDED  4
#define GENIE_STATUS_ERROR_GENERAL             -1
#define GENIE_STATUS_ERROR_INVALID_ARGUMENT    -2
#define GENIE_STATUS_ERROR_MEM_ALLOC           -3
#define GENIE_STATUS_ERROR_INVALID_CONFIG      -4
#define GENIE_STATUS_ERROR_INVALID_HANDLE      -5
#define GENIE_STATUS_ERROR_QUERY_FAILED        -6
#define GENIE_STATUS_ERROR_JSON_FORMAT         -7
#define GENIE_STATUS_ERROR_JSON_SCHEMA         -8
#define GENIE_STATUS_ERROR_JSON_VALUE          -9
#define GENIE_STATUS_ERROR_GENERATE_FAILED     -10
#define GENIE_STATUS_ERROR_GET_HANDLE_FAILED   -11
#define GENIE_STATUS_ERROR_APPLY_CONFIG_FAILED -12
#define GENIE_STATUS_ERROR_SET_PARAMS_FAILED   -13
#define GENIE_STATUS_ERROR_BOUND_HANDLE        -14

//=============================================================================
// Enums
//=============================================================================
/**
 * @brief An enum which defines the dialog performance policy.
 */
typedef enum {
  GENIE_PERFORMANCE_BURST                      = 10,
  GENIE_PERFORMANCE_SUSTAINED_HIGH_PERFORMANCE = 20,
  GENIE_PERFORMANCE_HIGH_PERFORMANCE           = 30,
  GENIE_PERFORMANCE_BALANCED                   = 40,
  GENIE_PERFORMANCE_LOW_BALANCED               = 50,
  GENIE_PERFORMANCE_HIGH_POWER_SAVER           = 60,
  GENIE_PERFORMANCE_POWER_SAVER                = 70,
  GENIE_PERFORMANCE_LOW_POWER_SAVER            = 80,
  GENIE_PERFORMANCE_EXTREME_POWER_SAVER        = 90,
} Genie_PerformancePolicy_t;

//=============================================================================
// Functions
//=============================================================================

/**
 * @brief A function to get the major API version.
 *
 * @return GENIE_API_VERSION_MAJOR.
 */
GENIE_API
uint32_t Genie_getApiMajorVersion(void);

/**
 * @brief A function to get the mino API version.
 *
 * @return GENIE_API_VERSION_MINOR.
 */
GENIE_API
uint32_t Genie_getApiMinorVersion(void);

/**
 * @brief A function to get the patch API version.
 *
 * @return GENIE_API_VERSION_PATCH.
 */
GENIE_API
uint32_t Genie_getApiPatchVersion(void);

#ifdef __cplusplus
}  // extern "C"
#endif

#endif  // GENIE_COMMON_H