//! \file viewKeys.h

//
//  Copyright © 2015 Apple Inc. Proprietary and confidential. All rights reserved.
//

#pragma once

#include <CoreFoundation/CoreFoundation.h>

//
// Constants
//
extern const CFStringRef kViewFrameworkVersion;			//!< CFString - Framework Version
extern const CFStringRef kViewFrameworkVersionShort;	//!< CFString - Framework Version (short)
extern const CFStringRef kViewKextVersion;				//!< CFString - Kext version

extern const CFStringRef kViewBoardID;                  //!< CFString - Board ID string - If the ID ROM is not present this will equal kViewBoardIDNotPresent
extern const CFStringRef kViewBoardIDNotPresent;        //!< CFString - Value when teh Board ID is not present.

extern const CFStringRef kViewSerialNum;				//!< CFNumber - Board serial number stored as CFNumber
extern const CFStringRef kViewCalibrationDate;			//!< CFString - Board calibration date stored as CFString
extern const CFStringRef kViewSampleRate;				//!< CFNumber - Board Sample Rate
extern const CFStringRef kViewPreampSerialNum;          //!< CFString - Serial number for the preamp card used
extern const CFStringRef kViewADCSerialNum;             //!< CFString - Serial number for the ADC card used

extern const CFStringRef kViewSupportedGains;           //!< CFArray of CFNumbers with the supported gain values

extern const CFStringRef kViewInterChannelPhaseDelay;   //!< CFArray of CFNumbers with the time in seconds that each channel is offset from the reported timestamp

extern const CFStringRef kViewNotificationConnect;      //!< CFString - View connection event
extern const CFStringRef kViewNotificationDisconnect;   //!< CFString - View disconnection event
extern const CFStringRef kViewNotificationObject;       //!< CFString - View notification object referece
extern const CFStringRef kViewNotificationKey;          //!< CFString - View notification key for device ID

// TODO - device name(ip address, pci name), family, numChannels, name/path, etc

//
// Device specific configuration
//

extern const CFStringRef kView1BoardType;				//!< CFNumber - Board Type (3 for mobile mac and 2 for others)
extern const CFStringRef kView2BoardType;				//!< CFNumber - Board Type

extern const CFStringRef kView2FastCalType;

extern const CFStringRef kView2IOVoltage;               //!< CFNumber - Used by the gpio capture to set the voltage level for input and output
//!
//!
//Fife
extern const CFStringRef kView2Fife_SelectPd;           //!<CFDictionary - Selects a specific photodiode on a Fife preamp. Must contain the following keys:
extern const CFStringRef kView2Fife_SelectPd_Row;       //!<CFNumber - Row index of the diode to select
extern const CFStringRef kView2Fife_SelectPd_Column;    //!<CFNumber - Column index of the diode to select

extern const CFStringRef kView2Fife_SetIO;
extern const CFStringRef kView2Fife_SetIO_Expander;
extern const CFStringRef kView2Fife_SetIO_Port;
extern const CFStringRef kView2Fife_SetIO_Pin;
extern const CFStringRef kView2Fife_SetIO_State;

//Knox
extern const CFStringRef kViewKnoxURL;
extern const CFStringRef kViewKnoxSpace;
extern const CFStringRef kViewKnoxPointerType;
extern const CFStringRef kViewKnoxQuery;
extern const CFStringRef kViewKnoxDownloadDirectory;
extern const CFStringRef kViewKnoxDownloadFilename;

