void cConfigs::ZenFixes()
{
	Zen.NormalZen					= GetInt(0, 65535,				20,		"ZenSettings",	"ZenDrop",			GreatDevelopCommon);
	Zen.ZenInParty					= GetInt(0, 65535,				20,		"ZenSettings",	"ZenPartyDrop",		GreatDevelopCommon);
}
WORD Cx_CfgRecord::GetUInt16(const wchar_t* pszEntry, WORD nDefault)
{
    return (WORD)GetInt(pszEntry, nDefault);
}
Exemple #3
0
int main(int argc, string argv[])
{
    // greet player
    greet();

    // ensure proper usage
    if (argc != 2)
    {
        printf("Usage: ./fifteen d\n");
        return 1;
    }

    // ensure valid dimensions
    d = atoi(argv[1]);
    if (d < MIN || d > MAX)
    {
        printf("Board must be between %i x %i and %i x %i, inclusive.\n",
            MIN, MIN, MAX, MAX);
        return 2;
    }
    
    // initialize the board, 
    init(d);

    // accept moves until game is won
    while (true)
    {
        // clear the screen
        clear();

        // draw the current state of the board
        draw(d);

        // saves the current state of the board (for testing)
        save();

        // check for win
        if (won())
        {
            printf("ftw!\n");
            break;
        }

        // prompt for move
        printf("Tile to move: ");
        int tile = GetInt();

        // move if possible, else report illegality
        if (!move(tile))
        {
            printf("\nIllegal move.\n");
            usleep(500000);
        }

        // sleep for animation's sake
        usleep(500000);
    }

    // that's all folks
    return 0;
}
void HMISong::SetupForHMP(int len)
{
	int track_data;
	int i, p;

	ReadVarLen = ReadVarLenHMP;
	if (MusHeader[8] == 0)
	{
		track_data = HMP_TRACK_OFFSET_0;
	}
	else if (memcmp(MusHeader + 8, HMP_NEW_DATE, sizeof(HMP_NEW_DATE)) == 0)
	{
		track_data = HMP_TRACK_OFFSET_1;
	}
	else
	{ // unknown HMIMIDIP version
		return;
	}

	NumTracks = GetInt(MusHeader + HMP_TRACK_COUNT_OFFSET);

	if (NumTracks <= 0)
	{
		return;
	}

	// The division is the number of pulses per quarter note (PPQN).
	Division = GetInt(MusHeader + HMP_DIVISION_OFFSET);
	InitialTempo = 1000000;

	Tracks = new TrackInfo[NumTracks + 1];

	// Gather information about each track
	for (i = 0, p = 0; i < NumTracks; ++i)
	{
		int start = track_data;
		int tracklen;

		if (start > len - HMPTRACK_MIDI_DATA_OFFSET)
		{ // Track is incomplete.
			break;
		}

		tracklen = GetInt(MusHeader + start + HMPTRACK_LEN_OFFSET);
		track_data += tracklen;

		// Clamp incomplete tracks to the end of the file.
		tracklen = MIN(tracklen, len - start);
		if (tracklen <= 0)
		{
			continue;
		}

		// Subtract track header size.
		tracklen -= HMPTRACK_MIDI_DATA_OFFSET;
		if (tracklen <= 0)
		{
			continue;
		}

		// Store track information
		Tracks[p].TrackBegin = MusHeader + start + HMPTRACK_MIDI_DATA_OFFSET;
		Tracks[p].TrackP = 0;
		Tracks[p].MaxTrackP = tracklen;

		// Retrieve track designations. We can't check them yet, since we have not yet
		// connected to the MIDI device.
#if 0
		// This is completely a guess based on knowledge of how designations work with
		// HMI files. Some songs contain nothing but zeroes for this data, so I'd rather
		// not go around using it without confirmation.

		Printf("Track %d: %d %08x %d:  \034I", i, GetInt(MusHeader + start),
			GetInt(MusHeader + start + 4), GetInt(MusHeader + start + 8));

		int designations = HMP_DESIGNATIONS_OFFSET +
			GetInt(MusHeader + start + HMPTRACK_DESIGNATION_OFFSET) * 4 * NUM_HMP_DESIGNATIONS;
		for (int ii = 0; ii < NUM_HMP_DESIGNATIONS; ++ii)
		{
			Printf(" %04x", GetInt(MusHeader + designations + ii*4));
		}
		Printf("\n");
#endif
		Tracks[p].Designation[0] = HMI_DEV_GM;
		Tracks[p].Designation[1] = HMI_DEV_GUS;
		Tracks[p].Designation[2] = HMI_DEV_OPL2;
		Tracks[p].Designation[3] = 0;

		p++;
	}

	// In case there were fewer actual chunks in the file than the
	// header specified, update NumTracks with the current value of p.
	NumTracks = p;
}
ULONG Cx_CfgRecord::GetUInt32(const wchar_t* pszEntry, ULONG nDefault)
{
    return GetInt(pszEntry, nDefault);
}
Exemple #6
0
BOOL VFDTestApp::InitInstance()
{
	// 防止重复启动,扫描程序重复启动时异常。
	// Add this code in InistInstance function
	TCHAR *lpszName = _T("VFDTEST");
	HANDLE hMutex = ::CreateMutex(NULL, FALSE, lpszName);
	DWORD dwRet = ::GetLastError();
	if (hMutex)
	{
		if (ERROR_ALREADY_EXISTS == dwRet)
		{
			AfxMessageBox(_T("VFDTEST has been running."));
			CloseHandle(hMutex);  // should be closed
			hMutex = 0;
			return FALSE;
		}
	}
	else
	{
		AfxMessageBox(_T("Create Mutex Error"));
	}



	// 如果一个运行在 Windows XP 上的应用程序清单指定要
	// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
	//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
	INITCOMMONCONTROLSEX InitCtrls;
	InitCtrls.dwSize = sizeof(InitCtrls);
	// 将它设置为包括所有要在应用程序中使用的
	// 公共控件类。
	InitCtrls.dwICC = ICC_WIN95_CLASSES;
	InitCommonControlsEx(&InitCtrls);

	CWinAppEx::InitInstance();

	// 初始化 OLE 库
	if (!AfxOleInit())
	{
		AfxMessageBox(IDP_OLE_INIT_FAILED);
		return FALSE;
	}

	
	//取应用程序路径
	GetModuleFileName(NULL, m_szAppPath, MAX_PATH);
	PathRemoveFileSpec( m_szAppPath );

	// 取临时文件夹
	GetTempPath(MAX_PATH-1, m_szTempPath );//获取临时文件夹路径

	AfxEnableControlContainer();

	EnableTaskbarInteraction(FALSE);

	// 使用 RichEdit 控件需要  AfxInitRichEdit2()	
	// AfxInitRichEdit2();

	// 标准初始化
	// 如果未使用这些功能并希望减小
	// 最终可执行文件的大小,则应移除下列
	// 不需要的特定初始化例程
	// 更改用于存储设置的注册表项
	// TODO: 应适当修改该字符串,
	// 例如修改为公司或组织名
	SetRegistryKey(_T("VFDTest"));

	/* 改为创建一个普通的主窗口

	// 若要创建主窗口,此代码将创建新的框架窗口
	// 对象,然后将其设置为应用程序的主窗口对象
	CMainFrame* pFrame = new CMainFrame;
	if (!pFrame)
		return FALSE;
	m_pMainWnd = pFrame;
	// 创建并加载框架及其资源
	pFrame->LoadFrame(IDR_MAINFRAME,
		WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
		NULL);
	*/
	
    // Register your unique class name that you wish to use
    WNDCLASS wndcls;
    memset(&wndcls, 0, sizeof(WNDCLASS));   // start with NULL
                                            // defaults
    //wndcls.style = CS_DBLCLKS; //双击

    //you can specify your own window procedure
    wndcls.lpfnWndProc = ::DefWindowProc; 
    wndcls.hInstance = AfxGetInstanceHandle();
    wndcls.hIcon = LoadIcon(IDR_MAINFRAME); // or load a different icon
    wndcls.hCursor = LoadStandardCursor( IDC_ARROW );

	//backGrush.CreateSolidBrush(RGB(247,247,247));   // Blue brush.
	//wndcls.hbrBackground = (HBRUSH)backGrush.m_hObject;
    wndcls.lpszMenuName = NULL;

    // Specify your own class name for using FindWindow later
    wndcls.lpszClassName = _T("VFDTest");

    // Register the new class and exit if it fails
    if(!AfxRegisterClass(&wndcls))
    {
       TRACE(_T("Class Registration Failed\n"));
       return FALSE;
	}

	// 主窗口
	MainForm* pFrame = new MainForm();

	// 取系统参数,确定显示位置和大小
	CRect drc; 	// 桌面工作区大小,不算任务栏 
	SystemParametersInfo(SPI_GETWORKAREA,0,drc,0);
	int dwidth = drc.Width();		// 桌面工作区宽
	int dheight = drc.Height();		// 桌面工作区高

	// 上次保存的窗口大小
	CRect rc;
	rc.right = dwidth;		// 第一次进窗口状态,充满桌面,有边框,可改变大小。
	rc.bottom = dheight;
	//this->GetInt();
	rc.left = GetInt( _T("WindowLeft"), rc.left );
	rc.top = GetInt( _T("WindowTop"), rc.top );
	rc.right = GetInt( _T("WindowRight"), rc.right );
	rc.bottom = GetInt( _T("WindowBottom"), rc.bottom );

	// 最小尺寸200x200
	const int s = 300;		// ?? 应该考虑系统DPI
	if( rc.Width() < s )
		rc.right = rc.left + s;
	if( rc.Height() < s )
		rc.bottom = rc.top + s;

	// 与桌面相交最少200
	int dx = 0, dy = 0, d = 0;
	if( rc.right < s )
		dx = s - rc.right;
	else if( (d = dwidth - rc.left) < s )
		dx = d - s;
	if( rc.bottom < s )
		dy = s - rc.bottom;
	else if( (d = dheight - rc.top) < s )
		dy = d - s;

	// 窗口的左右都超出桌面,窗口移到桌面内
	if( rc.left < 0 && rc.right > dwidth )
		dx = -rc.left;
	if( rc.top < 0 && rc.bottom > dheight )
		dy = -rc.top;

	// 移动显示区
	if( dx || dy )
		rc.OffsetRect( dx, dy );

	// 创建窗口
	// 唯一的一个窗口已初始化,因此显示它并对其进行更新
	m_nFullScreen = GetInt( _T("FullScreen"), m_nFullScreen );		// 全屏状态
	m_nMaximized = GetInt( _T("ShowMaximized"), m_nMaximized );	// 最大化状态
	DWORD style = (m_nFullScreen ? WS_POPUP : WS_OVERLAPPEDWINDOW);
	if( m_nFullScreen | m_nMaximized )
		style |= WS_MAXIMIZE;
	if( !pFrame->CreateEx( NULL, wndcls.lpszClassName, _T("VFDTest"), style, rc, NULL, NULL, NULL ) )	// 无边框,充满屏
	{
		delete pFrame;
		return FALSE;
	}

	m_pMainWnd = pFrame;


	pFrame->ShowWindow(SW_SHOW);
	//pFrame->UpdateWindow();
	// 仅当具有后缀时才调用 DragAcceptFiles
	//  在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生

	return TRUE;
}
Exemple #7
0
template<> BodyType2D Variant::Get<BodyType2D>() const
{
    return (BodyType2D)GetInt();
}
HRESULT SWLPRVenusCameraParameter::InitCamera(VOID)
{
    GetInt("\\CamApp"
        , "JpegCompressRate"
        , &Get().cCamAppParam.iJpegCompressRate
        , Get().cCamAppParam.iJpegCompressRate
        , 1
        , 99
        , "视频流Jpeg压缩品质"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "IFrameInterval"
        , &Get().cCamAppParam.iIFrameInterval
        , Get().cCamAppParam.iIFrameInterval
        , 2			//金星要求最小I帧间隔为2
        , 25
        , "H.264流I帧间隔"
        , ""
        , CUSTOM_LEVEL
    );
    if( Get().cGb28181.fEnalbe )
    {
    	Get().cCamAppParam.iIFrameInterval = 4;
        UpdateInt("\\CamApp"
            , "IFrameInterval"
            , Get().cCamAppParam.iIFrameInterval
            );
    }

    GetEnum("\\CamApp"
        , "Resolution"
        , &Get().cCamAppParam.iResolution
        , Get().cCamAppParam.iResolution
        , "0:1080P;1:720P"
        , "H.264图像分辨率"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "TargetBitRate"
        , &Get().cCamAppParam.iTargetBitRate
        , Get().cCamAppParam.iTargetBitRate
        , 512
        , 16*1024
        , "H.264流输出比特率"
        , "单位:Kbps(千比特每秒)"
        , CUSTOM_LEVEL
    );
//第二路H264参数
//暂时不支持单独设置I帧间隔
/*
	GetInt("\\CamApp"
		, "IFrameIntervalSecond"
		, &Get().cCamAppParam.iIFrameIntervalSecond
		, Get().cCamAppParam.iIFrameIntervalSecond
		, 2
		, 25
		, "第二路H.264流I帧间隔"
		, ""
		, CUSTOM_LEVEL
	);
*/
	GetEnum("\\CamApp"
		, "ResolutionSecond"
		, &Get().cCamAppParam.iResolutionSecond
		, Get().cCamAppParam.iResolutionSecond
		, "0:1080P;1:720P;2:576P;3:480P"
		, "第二路H.264图像分辨率"
		, ""
		, CUSTOM_LEVEL
	);

	GetInt("\\CamApp"
		, "TargetBitRateSecond"
		, &Get().cCamAppParam.iTargetBitRateSecond
		, Get().cCamAppParam.iTargetBitRateSecond
		, 512
		, 16*1024
		, "第二路H.264流输出比特率"
		, "单位:Kbps(千比特每秒)"
		, CUSTOM_LEVEL
	);

	//
	GetInt("\\CamApp"
		, "FrameRateSecond"
		, &Get().cCamAppParam.iFrameRateSecond
		, Get().cCamAppParam.iFrameRateSecond
		, 15
		, 25
		, "第二路H.264流输出帧率"
		, "单位:fps(帧每秒)"
		, CUSTOM_LEVEL
	);
//end

    GetInt("\\CamApp"
        , "AGCTh"
        , &Get().cCamAppParam.iAGCTh
        , Get().cCamAppParam.iAGCTh
        , 0
        , 255
        , "AGC测光基准值"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "AGCShutterLOri"
        , &Get().cCamAppParam.iAGCShutterLOri
        , Get().cCamAppParam.iAGCShutterLOri
        , 0
        , 30000
        , "AGC快门调节下限"
        , ""
        , CUSTOM_LEVEL
    );

    Get().cCamAppParam.iAGCShutterHOri = 10000;
    GetInt("\\CamApp"
        , "AGCShutterHOri"
        , &Get().cCamAppParam.iAGCShutterHOri
        , Get().cCamAppParam.iAGCShutterHOri
        , 0
        , 30000
        , "AGC快门调节上限"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "AGCGainLOri"
        , &Get().cCamAppParam.iAGCGainLOri
        , Get().cCamAppParam.iAGCGainLOri
        , 0
        , 480					//金星185前端增益范围为0~480
        , "AGC增益调节下限"
        , ""
        , PROJECT_LEVEL
    );

    Get().cCamAppParam.iAGCGainHOri = 100;
    GetInt("\\CamApp"
        , "AGCGainHOri"
        , &Get().cCamAppParam.iAGCGainHOri
        , Get().cCamAppParam.iAGCGainHOri
        , 0
        , 480					//金星185前端增益范围为0~480
        , "AGC增益调节上限"
        , ""
        , CUSTOM_LEVEL
    );

    GetEnum("\\CamApp"
        , "AGCScene"
        , &Get().cCamAppParam.iAGCScene
        , Get().cCamAppParam.iAGCScene
        , "0:自动;1:偏暗;2:标准;3:较亮"
        , "情景模式"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "GainR"
        , &Get().cCamAppParam.iGainR
        , Get().cCamAppParam.iGainR
        , 36
        , 255
        , "R增益"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "GainG"
        , &Get().cCamAppParam.iGainG
        , Get().cCamAppParam.iGainG
        , 36
        , 255
        , "G增益"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "GainB"
        , &Get().cCamAppParam.iGainB
        , Get().cCamAppParam.iGainB
        , 36
        , 255
        , "B增益"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "Gain"
        , &Get().cCamAppParam.iGain
        , Get().cCamAppParam.iGain
        , 0
        , 480					//金星185前端最大增益为480
        , "增益"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "Shutter"
        , &Get().cCamAppParam.iShutter
        , Get().cCamAppParam.iShutter
        , 0
        , 30000
        , "快门"
        , "单位:us"
        , CUSTOM_LEVEL
    );

    GetEnum("\\CamApp"
        , "JpegAutoCompressEnable"
        , &Get().cCamAppParam.iJpegAutoCompressEnable
        , Get().cCamAppParam.iJpegAutoCompressEnable
        , "0:不使能;1:使能"
        , "Jpeg自动调节开关"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "JpegExpectSize"
        , &Get().cCamAppParam.iJpegExpectSize
        , Get().cCamAppParam.iJpegExpectSize
        , 0
        , 1024*1024
        , "Jpeg图片期望大小"
        , "单位:Byte(字节)注:为0则表示忽略该参数"
        , CUSTOM_LEVEL
    );

    GetEnum("\\CamApp"
        , "JpegType"
        , &Get().cCamAppParam.iJpegType
        , Get().cCamAppParam.iJpegType
        , "0:YUV分开;1:YUV混合"
        , "Jpeg图片格式"
        , ""
        , PROJECT_LEVEL
    );

    GetInt("\\CamApp"
        , "JpegCompressRateLow"
        , &Get().cCamAppParam.iJpegCompressRateL
        , Get().cCamAppParam.iJpegCompressRateL
        , 1
        , 79
        , "Jpeg压缩率自动调节下限"
        , ""
        , CUSTOM_LEVEL
    );

    Get().cCamAppParam.iJpegCompressRateH = 80;
    GetInt("\\CamApp"
        , "JpegCompressRateHigh"
        , &Get().cCamAppParam.iJpegCompressRateH
        , Get().cCamAppParam.iJpegCompressRateH
        , 1
        , 80
        , "Jpeg压缩率自动调节上限"
        , ""
        , PROJECT_LEVEL 
    );

    Get().cCamAppParam.iAGCEnable = 1;
    GetEnum("\\CamApp"
        , "AGCEnable"
        , &Get().cCamAppParam.iAGCEnable
        , Get().cCamAppParam.iAGCEnable
        , "0:不使能;1:使能"
        , "AGC使能"
        , ""
        , CUSTOM_LEVEL
    );

    Get().cCamAppParam.iAWBEnable = 1;
    GetEnum("\\CamApp"
        , "AWBEnable"
        , &Get().cCamAppParam.iAWBEnable
        , Get().cCamAppParam.iAWBEnable
        , "0:不使能;1:使能"
        , "AWB使能"
        , ""
        , CUSTOM_LEVEL
    );

    //该参数不光跟抓拍有关,还跟"TriggerOutEnable""触发输出使能开关"有关,不能去掉
    GetEnum("\\CamApp"
        , "CaptureSynOutputType"
        , &Get().cCamAppParam.iCaptureSynOutputType
        , Get().cCamAppParam.iCaptureSynOutputType
        , "0:上拉(电平);1:OC(开关)"
        , "抓拍输出类型"
        , ""
        , CUSTOM_LEVEL
        );

    GetEnum("\\CamApp"
        , "ExternSyncMode"
        , &Get().cCamAppParam.iExternalSyncMode
        , Get().cCamAppParam.iExternalSyncMode
        , "0:不同步;1:内部电网同步"
        , "外同步模式"
        , ""
        , CUSTOM_LEVEL
        );
    GetInt("\\CamApp"
        , "SyncRelay"
        , &Get().cCamAppParam.iSyncRelay
        , Get().cCamAppParam.iSyncRelay
        , 0
        , 20000
        , "外同步信号延时"
        , "单位:微秒"
        , CUSTOM_LEVEL
        );

    /*GetEnum("\\CamApp"
        , "CaptureEdge"
        , &Get().cCamAppParam.iCaptureEdge
        , Get().cCamAppParam.iCaptureEdge
        , "0:不触发;1:外部下降沿触发;2:外部上升沿触发;3:上升沿下降沿都触发"
        , "触发抓拍沿"
        , ""
        , CUSTOM_LEVEL
    );*/

    char szAGC[255];
    //BOOL fAllAGCZoneIsOff = TRUE;
    for (int i = 0; i < 16; i++)
    {
        sprintf(szAGC, "AGC%d", i+1);
        GetEnum("\\CamApp\\AGCZone"
            , szAGC
            , &Get().cCamAppParam.rgiAGCZone[i]
            , Get().cCamAppParam.rgiAGCZone[i]
            , "0:关闭;1:打开"
            , ""
            , ""
            , CUSTOM_LEVEL
        );
        /*
        if (1 == Get().cCamAppParam.rgiAGCZone[i])
        {
            fAllAGCZoneIsOff = FALSE;
        }*/
    }
    //底层做限制
    /*
    //测光区域必须选一个
    if (TRUE == fAllAGCZoneIsOff)
    {
        Get().cCamAppParam.rgiAGCZone[0] = 1;
        UpdateInt("\\CamApp\\AGCZone"
            , "AGC0"
            , Get().cCamAppParam.rgiAGCZone[0]
            );
    }
    */

    GetEnum("\\CamApp"
        , "EnableDCAperture"
        , &Get().cCamAppParam.iEnableDCAperture
        , Get().cCamAppParam.iEnableDCAperture
        , "0:不使能;1:使能"
        , "使能DC光圈"
        , ""
        , CUSTOM_LEVEL
    );

    GetEnum("\\CamApp"
        , "ColorMatrixMode"
        , &Get().cCamAppParam.iColorMatrixMode
        , Get().cCamAppParam.iColorMatrixMode
        , "0:不使能;1:使能"
        , "图像增强"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "ContrastValue"
        , &Get().cCamAppParam.iContrastValue
        , Get().cCamAppParam.iContrastValue
        , -100
        , 100
        , "对比度"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "SaturationValue"
        , &Get().cCamAppParam.iSaturationValue
        , Get().cCamAppParam.iSaturationValue
        , -100
        , 100
        , "饱和度"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\CamApp"
        , "WDRThreshold"
        , &Get().cCamAppParam.iWDRValue
        , Get().cCamAppParam.iWDRValue
        , 0
        , 4095					//宽动态范围为 0~4095
        , "WDR强度"
        , ""
        , CUSTOM_LEVEL
    );

    Get().cCamAppParam.iSNFTNFMode == 3;
    GetEnum("\\CamApp"
            , "NoiseReduction"
            , &Get().cCamAppParam.iSNFTNFMode
            , Get().cCamAppParam.iSNFTNFMode
            , "0:不使能;1:TNF模式;2:SNF模式;3:TNF与SNF模式"
            , "降噪模式"
            , ""
            , CUSTOM_LEVEL
            );

    Get().cCamAppParam.iTNFSNFValue = 0;
    GetEnum("\\CamApp"
            , "NoiseReductionThreshold"
            , &Get().cCamAppParam.iTNFSNFValue
            , Get().cCamAppParam.iTNFSNFValue
            , "0:自动;1:低;2:中;3:高"
            , "降噪强度"
            , ""
            , CUSTOM_LEVEL
            );

    GetEnum("\\CamApp"
        , "CVBSMode"
        , &Get().cCamAppParam.iCVBSMode
        , Get().cCamAppParam.iCVBSMode
        , "0:PAL;1:NTSC"
        , "CVBS制式"
        , ""
        , CUSTOM_LEVEL
    );
    GetEnum("\\CamApp"
        , "BlackWhiteMode"
        , &Get().cCamAppParam.iGrayImageEnable
        , Get().cCamAppParam.iGrayImageEnable
        , "0:不使能;1:使能 "
        , "黑白图输出模式"
        ,""
        , CUSTOM_LEVEL
    );
    //todo使能伽马会导致图像偏色
    /*
    GetInt("\\CamApp"
        , "GammaValue"
        , &Get().cCamAppParam.iGammaValue
        , Get().cCamAppParam.iGammaValue
        , 10
        , 22
        , "相机伽玛"
        , ""
        , CUSTOM_LEVEL
    );
    GetEnum("\\CamApp"
        , "GammaEnable"
        , &Get().cCamAppParam.iGammaEnable
        , Get().cCamAppParam.iGammaEnable
        ,"0:不使能;1:使能"
        , "相机伽玛使能"
        , ""
        , CUSTOM_LEVEL
    );
    */

    GetInt("\\CamApp"
        , "EdgeValue"
        , &Get().cCamAppParam.iEdgeValue
        , Get().cCamAppParam.iEdgeValue
        ,0
        ,255
        , "图像边缘增强"
        , "图像边缘增强"
        , CUSTOM_LEVEL
    );

    /*GetEnum("\\CamApp"
        , "LEDPolarity"
        , &Get().cCamAppParam.iLEDPolarity
        , Get().cCamAppParam.iLEDPolarity
        , "0:负极性;1:正极性"
        , "补光灯控制极性"
        , ""
        , CUSTOM_LEVEL
    );

    GetEnum("\\CamApp"
        , "LEDOutputType"
        , &Get().cCamAppParam.iLEDOutputType
        , Get().cCamAppParam.iLEDOutputType
        , "0:上拉(电平);1:OC(开关)"
        , "补光灯输出类型"
        , ""
        , CUSTOM_LEVEL
    );*/

    GetEnum("\\CamApp"
        , "ALMPolarity"
        , &Get().cCamAppParam.iALMPolarity
        , Get().cCamAppParam.iALMPolarity
        , "0:负极性;1:正极性"
        , "报警控制极性"
        , ""
        , PROJECT_LEVEL
    );
    GetEnum("\\CamApp"
        , "ALMOutputType"
        , &Get().cCamAppParam.iALMOutputType
        , Get().cCamAppParam.iALMOutputType
        , "0:上拉(电平);1:OC(开关)"
        , "报警输出类型"
        , ""
        , PROJECT_LEVEL
    );
    GetEnum("\\CamApp"
        , "ColorGradation"
        , &Get().cCamAppParam.iColorGradation
        , Get().cCamAppParam.iColorGradation
        , "0:0~255;1:16~234"
        , "色阶"
        , "色阶"
        , CUSTOM_LEVEL
    );
	
	//Get().cCamAppParam.iCVBSExport = 1;
	GetEnum("\\CamApp"
		, "CVBSIMAGEMode"
		, &Get().cCamAppParam.iCVBSExport
		, Get().cCamAppParam.iCVBSExport
		, "0:CVBS 缩小输出;1:CVBS 剪切输出;2:自定义剪切输出"
		, "CVBS图像模式"
		, ""
		, CUSTOM_LEVEL
	);
	if (Get().cCamAppParam.iCVBSExport != 0)
	{
		Get().nMCFWUsecase = IMX185_DUALVIDEO_CVBSEXPORT;
	}

    Get().cCamAppParam.iCVBSCropStartX = 600;
    GetInt("\\CamApp"
		, "CVBSCropStartX"
		, &Get().cCamAppParam.iCVBSCropStartX
		, Get().cCamAppParam.iCVBSCropStartX
		, 0
		, 1199
		, "CVBS裁剪模式起始横坐标"
		, "CVBS裁剪模式起始横坐标"
		, CUSTOM_LEVEL
	);

    Get().cCamAppParam.iCVBSCropStartY = 252;
    GetInt("\\CamApp"
		, "CVBSCropStartY"
		, &Get().cCamAppParam.iCVBSCropStartY
		, Get().cCamAppParam.iCVBSCropStartY
		, 0
		, 503
		, "CVBS裁剪模式起始纵坐标"
		, "CVBS裁剪模式起始纵坐标"
		, CUSTOM_LEVEL
	);


    return S_OK;
}
HRESULT SWLPRVenusCameraParameter::InitCharacter(VOID)
{
//第一路H264字符叠加
    GetEnum("\\Overlay\\H264"
          , "Enable"
          , &Get().cOverlay.fH264Eanble
          , Get().cOverlay.fH264Eanble
          , "0:不使能;1:使能"
          , "H264字符叠加使能"
          , ""
          , CUSTOM_LEVEL
    );

    GetInt("\\Overlay\\H264"
          , "X"
          , &Get().cOverlay.cH264Info.iTopX
          , Get().cOverlay.cH264Info.iTopX
          , 0
          , 1920
          , "X坐标"
          , ""
          , CUSTOM_LEVEL
      );

    GetInt("\\Overlay\\H264"
          , "Y"
          , &Get().cOverlay.cH264Info.iTopY
          , Get().cOverlay.cH264Info.iTopY
          , 0
          , 1080
          , "Y坐标"
          , ""
          , CUSTOM_LEVEL
      );

    GetInt("\\Overlay\\H264"
          , "Size"
          , &Get().cOverlay.cH264Info.iFontSize
          , 32
          , 16
          , 128
          , "字体大小"
          , ""
          , CUSTOM_LEVEL
      );
    DWORD dwR = 255, dwG = 0,dwB = 0;
    GetInt("\\Overlay\\H264"
          , "R"
          , (INT *)&dwR
          , dwR
          , 0
          , 255
          , "字体颜色R分量"
          , ""
          , CUSTOM_LEVEL
      );
    GetInt("\\Overlay\\H264"
          , "G"
          , (INT *)&dwG
          , dwG
          , 0
          , 255
          , "字体颜色G分量"
          , ""
          , CUSTOM_LEVEL
      );
    GetInt("\\Overlay\\H264"
          , "B"
          , (INT *)&dwB
          , dwB
          , 0
          , 255
          , "字体颜色B分量"
          , ""
          , CUSTOM_LEVEL
      );
    Get().cOverlay.cH264Info.dwColor = (dwB | (dwG << 8) | (dwR << 16));
      SW_TRACE_DEBUG("h264 color[0x%08x][0x%02x,0x%02x,0x%02x]", Get().cOverlay.cH264Info.dwColor, dwR, dwG, dwB);
    GetEnum("\\Overlay\\H264"
          , "DateTime"
          , &Get().cOverlay.cH264Info.fEnableTime
          , Get().cOverlay.cH264Info.fEnableTime
          , "0:不使能;1:使能"
          , "叠加时间"
          , ""
          , CUSTOM_LEVEL
      );

     GetString("\\Overlay\\H264"
          , "String"
          , Get().cOverlay.cH264Info.szInfo
          , Get().cOverlay.cH264Info.szInfo
          , sizeof(Get().cOverlay.cH264Info.szInfo)
          , ""
          , "叠加信息"
          , CUSTOM_LEVEL
      );
    if(!swpa_strcmp(Get().cOverlay.cH264Info.szInfo, "NULL"))
    {
      swpa_strcpy(Get().cOverlay.cH264Info.szInfo, "");
    }

    // todo.字符叠加计算字符总长度有问题,在设置时多加两个空格在尾部,避免因过长叠加显示不全。
    if( strlen(Get().cOverlay.cH264Info.szInfo) + 3 < sizeof(Get().cOverlay.cH264Info.szInfo) )
    {
        strcpy(Get().cOverlay.cH264Info.szInfo + strlen(Get().cOverlay.cH264Info.szInfo), "  ");
        SW_TRACE_NORMAL("<param>change overlay h264 len.%s", Get().cOverlay.cH264Info.szInfo);
    }
//第二路H264字符叠加
	  
	GetEnum("\\Overlay\\H264Second"
          , "Enable"
          , &Get().cOverlay.fH264SecondEnable
          , Get().cOverlay.fH264SecondEnable
          , "0:不使能;1:使能"
          , "H264字符叠加使能"
          , ""
          , CUSTOM_LEVEL
    );

    GetInt("\\Overlay\\H264Second"
          , "X"
          , &Get().cOverlay.cH264SecondInfo.iTopX
          , Get().cOverlay.cH264SecondInfo.iTopX
          , 0
          , 1920
          , "X坐标"
          , ""
          , CUSTOM_LEVEL
      );

    GetInt("\\Overlay\\H264Second"
          , "Y"
          , &Get().cOverlay.cH264SecondInfo.iTopY
          , Get().cOverlay.cH264SecondInfo.iTopY
          , 0
          , 1080
          , "Y坐标"
          , ""
          , CUSTOM_LEVEL
      );

    GetInt("\\Overlay\\H264Second"
          , "Size"
          , &Get().cOverlay.cH264SecondInfo.iFontSize
          , 32
          , 16
          , 128
          , "字体大小"
          , ""
          , CUSTOM_LEVEL
      );
   	dwR = 255, dwG = 0,dwB = 0;
    GetInt("\\Overlay\\H264Second"
          , "R"
          , (INT *)&dwR
          , dwR
          , 0
          , 255
          , "字体颜色R分量"
          , ""
          , CUSTOM_LEVEL
      );
    GetInt("\\Overlay\\H264Second"
          , "G"
          , (INT *)&dwG
          , dwG
          , 0
          , 255
          , "字体颜色G分量"
          , ""
          , CUSTOM_LEVEL
      );
    GetInt("\\Overlay\\H264Second"
          , "B"
          , (INT *)&dwB
          , dwB
          , 0
          , 255
          , "字体颜色B分量"
          , ""
          , CUSTOM_LEVEL
      );
    Get().cOverlay.cH264SecondInfo.dwColor = (dwB | (dwG << 8) | (dwR << 16));
    SW_TRACE_DEBUG("h264 second color[0x%08x][0x%02x,0x%02x,0x%02x]", 
		Get().cOverlay.cH264SecondInfo.dwColor, dwR, dwG, dwB);
    GetEnum("\\Overlay\\H264Second"
          , "DateTime"
          , &Get().cOverlay.cH264SecondInfo.fEnableTime
          , Get().cOverlay.cH264SecondInfo.fEnableTime
          , "0:不使能;1:使能"
          , "叠加时间"
          , ""
          , CUSTOM_LEVEL
      );

     GetString("\\Overlay\\H264Second"
          , "String"
          , Get().cOverlay.cH264SecondInfo.szInfo
          , Get().cOverlay.cH264SecondInfo.szInfo
          , sizeof(Get().cOverlay.cH264SecondInfo.szInfo)
          , ""
          , "叠加信息"
          , CUSTOM_LEVEL
      );
    if(!swpa_strcmp(Get().cOverlay.cH264SecondInfo.szInfo, "NULL"))
    {
      swpa_strcpy(Get().cOverlay.cH264SecondInfo.szInfo, "");
    }

    // todo.字符叠加计算字符总长度有问题,在设置时多加两个空格在尾部,避免因过长叠加显示不全。
    if( strlen(Get().cOverlay.cH264SecondInfo.szInfo) + 3 < sizeof(Get().cOverlay.cH264SecondInfo.szInfo) )
    {
        strcpy(Get().cOverlay.cH264SecondInfo.szInfo + strlen(Get().cOverlay.cH264SecondInfo.szInfo), "  ");
        SW_TRACE_NORMAL("<param>change overlay h264 len.%s", Get().cOverlay.cH264SecondInfo.szInfo);
    }
//end

      GetEnum("\\Overlay\\JPEG"
          , "Enable"
          , &Get().cOverlay.cJPEGInfo.fEnable
          , Get().cOverlay.cJPEGInfo.fEnable
          , "0:不使能;1:使能"
          , "JPEG字符叠加使能"
          , ""
          , CUSTOM_LEVEL
      );

    GetInt("\\Overlay\\JPEG"
          , "X"
          , &Get().cOverlay.cJPEGInfo.iX
          , Get().cOverlay.cJPEGInfo.iX
          , 0
          , 1920
          , "X坐标"
          , ""
          , CUSTOM_LEVEL
      );

    GetInt("\\Overlay\\JPEG"
          , "Y"
          , &Get().cOverlay.cJPEGInfo.iY
          , Get().cOverlay.cJPEGInfo.iY
          , 0
          , 1080
          , "Y坐标"
          , ""
          , CUSTOM_LEVEL
      );

    GetInt("\\Overlay\\JPEG"
          , "Size"
          , &Get().cOverlay.cJPEGInfo.iFontSize
          , Get().cOverlay.cJPEGInfo.iFontSize
          , 16
          , 128
          , "字体大小"
          , ""
          , CUSTOM_LEVEL
      );

    dwR = 255;
    dwG = 0;
    dwB = 0;
    GetInt("\\Overlay\\JPEG"
          , "R"
          , (INT *)&dwR
          , dwR
          , 0
          , 255
          , "字体颜色R分量"
          , ""
          , CUSTOM_LEVEL
      );
    GetInt("\\Overlay\\JPEG"
          , "G"
          , (INT *)&dwG
          , dwG
          , 0
          , 255
          , "字体颜色G分量"
          , ""
          , CUSTOM_LEVEL
      );
    GetInt("\\Overlay\\JPEG"
          , "B"
          , (INT *)&dwB
          , dwB
          , 0
          , 255
          , "字体颜色B分量"
          , ""
          , CUSTOM_LEVEL
      );
    Get().cOverlay.cJPEGInfo.iColor = (dwB | (dwG << 8) | (dwR << 16));
    SW_TRACE_DEBUG("jpeg color[0x%08x][0x%02x,0x%02x,0x%02x]", Get().cOverlay.cJPEGInfo.iColor, dwR, dwG, dwB);
    GetEnum("\\Overlay\\JPEG"
          , "DateTime"
          , &Get().cOverlay.cJPEGInfo.fEnableTime
          , Get().cOverlay.cJPEGInfo.fEnableTime
          , "0:不使能;1:使能"
          , "叠加时间"
          , ""
          , CUSTOM_LEVEL
      );

     GetString("\\Overlay\\JPEG"
          , "String"
          , Get().cOverlay.cJPEGInfo.szInfo
          , Get().cOverlay.cJPEGInfo.szInfo
          , sizeof(Get().cOverlay.cJPEGInfo.szInfo)
          , ""
          , "叠加信息"
          , CUSTOM_LEVEL
      );
    if(!swpa_strcmp(Get().cOverlay.cJPEGInfo.szInfo, "NULL"))
    {
      swpa_strcpy(Get().cOverlay.cJPEGInfo.szInfo, "");
    }
     // todo.字符叠加计算字符总长度有问题,在设置时多加两个空格在尾部,避免因过长叠加显示不全。
     if( strlen(Get().cOverlay.cJPEGInfo.szInfo) + 3 < sizeof(Get().cOverlay.cJPEGInfo.szInfo) )
     {
        strcpy(Get().cOverlay.cJPEGInfo.szInfo + strlen(Get().cOverlay.cJPEGInfo.szInfo), "  ");
        SW_TRACE_NORMAL("<param>change overlay jpeg len.%s", Get().cOverlay.cJPEGInfo.szInfo);
     }

      //金星没有叠加车牌号码使能开关
    /*GetEnum("\\Overlay\\JPEG"
          , "Plate"
          , &Get().cOverlay.cJPEGInfo.fEnablePlate
          , Get().cOverlay.cJPEGInfo.fEnablePlate
          , "0:不使能;1:使能"
          , "叠加车牌号码"
          , ""
          , CUSTOM_LEVEL
      );*/
      return S_OK;
}
void cConfigs::LoadConfigsInGS()
{								  	 

	#ifdef _GS
	DWORD *LoreGuard = (DWORD*)GUARD_SAY;
	char Lore[25];
	GetPrivateProfileString("Connect","GuardSay","Don't waste my time!",Lore,25,GreatDevelopGS);
	memset(&LoreGuard[0],0,25);
	memcpy(&LoreGuard[0],Lore,strlen(Lore));
	#endif

	DWORD dword;
	BYTE byte;

	dword = GetInt(300, 1000, 400,"LevelSettings", "MaxLevel", GreatDevelopCommon);
	*(unsigned int*) GS_MAX_LEVEL1 = dword;
	*(unsigned int*) GS_MAX_LEVEL2 = dword;
	*(unsigned int*) GS_MAX_LEVEL3 = dword;
	*(unsigned int*) GS_MAX_LEVEL4 = dword;
	*(unsigned int*) GS_MAX_LEVEL5 = dword;

	*(unsigned int*) GS_NOEXP_LEVEL = GetInt(401, 1001, 401,"LevelSettings", "MaxXPLevel", GreatDevelopCommon);
	*(unsigned int*) GS_MAX_MASTERLEVEL = GetInt(1, 400, 200,"LevelSettings", "MaxMasterLevel", GreatDevelopCommon);

	dword = GetInt(0, 360, 120,"ItemDropRates", "LootingTime", GreatDevelopItems);
	*(unsigned int*) GS_ITEM_TIME1 =	1000 * dword;
	*(unsigned int*) GS_ITEM_TIME2 =	1000 * dword;

	*(unsigned int*) GS_TRANSFORMATIONRING1 = GetInt(0, 600, 2,"TransformationRings","TransformRing1",GreatDevelopItems);
	*(unsigned int*) GS_TRANSFORMATIONRING2 = GetInt(0, 600, 7,"TransformationRings","TransformRing2",GreatDevelopItems);
	*(unsigned int*) GS_TRANSFORMATIONRING3 = GetInt(0, 600, 14,"TransformationRings","TransformRing3",GreatDevelopItems);
	*(unsigned int*) GS_TRANSFORMATIONRING4 = GetInt(0, 600, 8,"TransformationRings","TransformRing4",GreatDevelopItems);
	*(unsigned int*) GS_TRANSFORMATIONRING5 = GetInt(0, 600, 9,"TransformationRings","TransformRing5",GreatDevelopItems);
	*(unsigned int*) GS_TRANSFORMATIONRING6 = GetInt(0, 600, 41,"TransformationRings","TransformRing6",GreatDevelopItems);

	*(unsigned char*) GS_SUMMONORB1 = GetChar(0, 600, 26,"SummonOrbs","OrbSummon1",GreatDevelopItems);
	*(unsigned char*) GS_SUMMONORB2 = GetChar(0, 600, 32,"SummonOrbs","OrbSummon2",GreatDevelopItems);
	*(unsigned char*) GS_SUMMONORB3 = GetChar(0, 600, 21,"SummonOrbs","OrbSummon3",GreatDevelopItems);
	*(unsigned char*) GS_SUMMONORB4 = GetChar(0, 600, 20,"SummonOrbs","OrbSummon4",GreatDevelopItems);
	*(unsigned char*) GS_SUMMONORB5 = GetChar(0, 600, 10,"SummonOrbs","OrbSummon5",GreatDevelopItems);
	*(unsigned char*) GS_SUMMONORB6 = GetChar(0, 600, 150,"SummonOrbs","OrbSummon6",GreatDevelopItems);
	*(unsigned char*) GS_SUMMONORB7 =  GetChar(0, 600, 151,"SummonOrbs","OrbSummon7",GreatDevelopItems);

	
	*(unsigned int*) GS_BLESS_PRICE = GetInt(0, 2000000000, 6000000,"JewelPrices","JewelOfBlessPrice",GreatDevelopItems);
 	*(unsigned int*) GS_SOUL_PRICE = GetInt(0, 2000000000, 9000000,"JewelPrices","JewelOfSoulPrice",GreatDevelopItems);
	*(unsigned int*) GS_CHAOS_PRICE = GetInt(0, 2000000000, 810000,"JewelPrices","JewelOfChaosPrice",GreatDevelopItems);
	*(unsigned int*) GS_LIFE_PRICE =  GetInt(0, 2000000000, 45000000,"JewelPrices","JewelOfLifePrice",GreatDevelopItems);
	*(unsigned int*) GS_CREATION_PRICE = GetInt(0, 2000000000, 36000000,"JewelPrices","JewelOfCreationPrice",GreatDevelopItems);
	*(unsigned int*) GS_GUARDIAN_PRICE = GetInt(0, 2000000000, 60000000,"JewelPrices","JewelOfGuardianPrice",GreatDevelopItems);
	*(unsigned int*) GS_FRUITS_PRICE = GetInt(0, 2000000000, 33000000,"JewelPrices","FruitPrice",GreatDevelopItems);
	*(unsigned int*) GS_MONARCH_PRICE = GetInt(0, 2000000000, 750000,"JewelPrices","CrestOfMonarchPrice",GreatDevelopItems);
	*(unsigned int*) GS_FEATHER_PRICE = GetInt(0, 2000000000, 180000,"JewelPrices","LochsFeatherPrice",GreatDevelopItems);
	*(unsigned int*) GS_BLESSPOT_PRICE = GetInt(0, 2000000000, 900000,"JewelPrices","PotionOfBlessPrice",GreatDevelopItems);
	*(unsigned int*) GS_SOULPOT_PRICE = GetInt(0, 2000000000, 450000,"JewelPrices","PotionOfSoulPrice",GreatDevelopItems);
#ifdef _GS
	*(unsigned int*) GS_KUNDUN_ANC_PERCT = GetInt(0,10000,25,"Kundun","KundunDropAncRate",GreatDevelopItems);
	*(unsigned char*) GS_KUNDUN_ITEM_NUMB = GetChar(0,20,3,"Kundun","KundunDropItemCount",GreatDevelopItems);

	*(unsigned char*) GS_CCPLAYER = GetChar(0,20,2,"ChaosCastle","ChaosCastleMinPlayers",GreatDevelopEvents); 
	*(unsigned char*) GS_ITPLAYER = GetChar(0,20,4,"IllusionTemple","ItMinPlayers",GreatDevelopEvents); 
	/*
	*(unsigned char*) GS_CCREWARD1 = GetChar(0,15,14,"ChaosCastle","ChaosCastleRewardType1GroupID",GreatDevelopEvents) * 512 + GetChar(0,255,16,"ChaosCastle","ChaosCastleRewardType1IndexID",GreatDevelopEvents);
	*(unsigned char*) GS_CCREWARD2 = GetChar(0,15,14,"ChaosCastle","ChaosCastleRewardType2GroupID",GreatDevelopEvents) * 512 + GetChar(0,255,13,"ChaosCastle","ChaosCastleRewardType2IndexID",GreatDevelopEvents);
	*(unsigned char*) GS_CCREWARD3 = GetChar(0,15,14,"ChaosCastle","ChaosCastleRewardType3GroupID",GreatDevelopEvents) * 512 + GetChar(0,255,22,"ChaosCastle","ChaosCastleRewardType3IndexID",GreatDevelopEvents);
	*(unsigned char*) GS_CCREWARD4 = GetChar(0,15,14,"ChaosCastle","ChaosCastleRewardType4GroupID",GreatDevelopEvents) * 512 + GetChar(0,255,14,"ChaosCastle","ChaosCastleRewardType4IndexID",GreatDevelopEvents); 
	
	*(unsigned char*) GS_IT_GROUP_ID = GetChar(0,15,15,"IllusionTemple","ItDropGroup",GreatDevelopEvents);
	*(unsigned char*) GS_IT_DROP_ID = GetChar(0,255,12,"IllusionTemple","ItDropID",GreatDevelopEvents); 
	*(unsigned char*) GS_IT_ITEM_LVL = GetChar(0,15,0,"IllusionTemple","ItDropLevel",GreatDevelopEvents);
	*(unsigned char*) GS_IT_ITEM_SKL =  GetChar(0,1,0,"IllusionTemple","ItDropWithSkill",GreatDevelopEvents);
	*(unsigned char*) GS_IT_ITEM_LCK = GetChar(0,1,0,"IllusionTemple","ItDropWithLuck",GreatDevelopEvents);
	*(unsigned char*) GS_IT_ITEM_LIF = GetChar(0,7,0,"IllusionTemple","ItDropLifeAdd",GreatDevelopEvents);
	*(unsigned char*) GS_IT_ITEM_EXC = GetChar(0,63,0,"IllusionTemple","ItDropExcOpt",GreatDevelopEvents);
	*(unsigned char*) GS_IT_ITEM_ANC = GetChar(0,255,0,"IllusionTemple","ItDropAncOpt",GreatDevelopEvents); 

	*(unsigned char *) GS_BC_DROP_GROUP = GetChar(0,15,15,"BloodCastle","BcDropGroup",GreatDevelopEvents);
	*(unsigned char *) GS_BC_DROP_ID = GetChar(0,255,12,"BloodCastle","BcDropID",GreatDevelopEvents);
	*(unsigned char *) GS_BC_ITEM_LVL = GetChar(0,15,0,"BloodCastle","BcDropLevel",GreatDevelopEvents);
	*(unsigned char *) GS_BC_ITEM_SKL = GetChar(0,1,0,"BloodCastle","BcDropWithSkill",GreatDevelopEvents);
	*(unsigned char *) GS_BC_ITEM_LCK = GetChar(0,1,0,"BloodCastle","BcDropWithLuck",GreatDevelopEvents);
	*(unsigned char *) GS_BC_ITEM_LIF = GetChar(0,7,0,"BloodCastle","BcDropLifeAdd",GreatDevelopEvents);
	*(unsigned char *) GS_BC_ITEM_EXC = GetChar(0,63,0,"BloodCastle","BcDropExcOpt",GreatDevelopEvents);
	*(unsigned char *) GS_BC_ITEM_ANC = GetChar(0,255,0,"BloodCastle","BcDropAncOpt",GreatDevelopEvents); 

	*(unsigned char *) GS_WW_GROUP_ID = GetChar(0,15,13,"WhiteWizard","WizardDropGroup",GreatDevelopEvents);
	*(unsigned char *) GS_WW_DROP_ID = GetChar(0,255,20,"WhiteWizard","WizardDropItemID",GreatDevelopEvents);
	*(unsigned char *) GS_WW_ITEM_LVL = GetChar(0,15,0,"WhiteWizard","WizardDropLevel",GreatDevelopEvents);
	*(unsigned char *) GS_WW_ITEM_SKL = GetChar(0,1,0,"WhiteWizard","WizardDropWithSkill",GreatDevelopEvents);
	*(unsigned char *) GS_WW_ITEM_LCK = GetChar(0,1,0,"WhiteWizard","WizardDropWithLuck",GreatDevelopEvents);
	*(unsigned char *) GS_WW_ITEM_LIF = GetChar(0,7,0,"WhiteWizard","WizardDropLifeAdd",GreatDevelopEvents);
	*(unsigned char *) GS_WW_ITEM_EXC = GetChar(0,63,0,"WhiteWizard","WizardDropExcOpt",GreatDevelopEvents);
	*(unsigned char *) GS_WW_ITEM_ANC = GetChar(0,255,0,"WhiteWizard","WizardDropAncOpt",GreatDevelopEvents);
	*/
#endif
	*(unsigned char*) GS_GUILDALLIANCE = GetChar(0,50,20,"Guild","GuildAllianceMinPlayers",GreatDevelopCommon);

	*(unsigned char*) GS_PKBugLimitFix1 = GetChar(0, 1000, 20,"PKOptions", "PKKillLimit", GreatDevelopCommon);
    *(unsigned char*) GS_PKBugLimitFix2 = GetChar(0, 1000, 20,"PKOptions", "PKKillLimit", GreatDevelopCommon);
    *(unsigned char*) GS_PKBugLimitFix3 = GetChar(0, 1000, 20,"PKOptions", "PKKillLimit", GreatDevelopCommon);

	*(unsigned int*) GS_UDP_PORT = GetInt(0, 99999, 60006,"Connect","UDP-Port",GreatDevelopGS);

	*(unsigned char*) GS_SOUL_RATE_NORMAL = GetChar(0,100,60,"JewelRates","SoulSuccessRateNormal",GreatDevelopItems);
	*(unsigned char*) GS_SOUL_RATE_SPECIAL = GetChar(0,100,50,"JewelRates","SoulSuccessRateSpecial",GreatDevelopItems);
	*(unsigned char*) GS_SOUL_RATE_SOCKET = GetChar(0,100,40,"JewelRates","SoulSuccessRateSocket",GreatDevelopItems);
	*(unsigned char*) GS_SOUL_LUCK_ADD = GetChar(0,100,20,"JewelRates","SoulSuccessRateLuck",GreatDevelopItems);
	*(unsigned char*) GS_JOL_FAIL_RATE = GetChar(0,100,50,"JewelRates","LifeFailRate",GreatDevelopItems);

	byte = GetChar(0, 100, 60,"ChaosMachineMixes", "ChaosMix10Rate", GreatDevelopItems);
	*(unsigned char*)  GS_CM_MIX_10_NORMAL = byte;
	*(unsigned char*)  GS_CM_MIX_10_SPECIAL = byte;
	*(unsigned char*)  GS_CM_MIX_10_SOCKET = byte;
	byte = GetChar(0, 100, 50,"ChaosMachineMixes", "ChaosMix11_12Rate", GreatDevelopItems);
	*(unsigned char*)  GS_CM_MIX_11_12_NORMAL = byte;
	*(unsigned char*)  GS_CM_MIX_11_12_SPECIAL = byte;
	*(unsigned char*)  GS_CM_MIX_11_12_SOCKET = byte;
	byte = GetChar(0, 100, 40,"ChaosMachineMixes", "ChaosMix13Rate", GreatDevelopItems);
	*(unsigned char*)  GS_CM_MIX_13_NORMAL = byte;
	*(unsigned char*)  GS_CM_MIX_13_SPECIAL = byte;
	*(unsigned char*)  GS_CM_MIX_13_SOCKET = byte;
	byte = GetChar(0, 100, 75,"ChaosMachineMixes", "ChaosMixWithLuck", GreatDevelopItems);
	*(unsigned char*) GS_CM_MIX_10_LUCK = byte;
	*(unsigned char*) GS_CM_MIX_11_13_LUCK = byte;
	*(unsigned char*) GS_CM_MIX_LUCK_ADD = GetChar(0, 100, 20,"ChaosMachineMixes","ChaosMixRateIncreaseWithLuck",GreatDevelopItems);
	*(unsigned char*) DEFAULTMIXRATE = GetChar(0, 100, 45,"ChaosMachineMixes","ChaosMixDefaultRate",GreatDevelopItems);
	*(unsigned char*) GS_WINGLVL1MIX = GetChar(0, 100, 90,"ChaosMachineMixes","WingMixLvl1SuccessRate",GreatDevelopItems);
	*(unsigned char*) GS_WINGLVL2MIX = GetChar(0, 100, 90,"ChaosMachineMixes","WingMixLvl2SuccessRate",GreatDevelopItems);
	byte = GetChar(0, 100, 60,"ChaosMachineMixes","CondorMixSuccessRate",GreatDevelopItems);
	*(unsigned char *) GS_WINGLVL3MIX11 = byte;
	*(unsigned char *) GS_WINGLVL3MIX12 = byte;
	byte = GetChar(0, 100, 40,"ChaosMachineMixes","WingMixLvl3SuccessRate",GreatDevelopItems);
	*(unsigned char *) GS_WINGLVL3MIX21 = byte;
	*(unsigned char *) GS_WINGLVL3MIX22 = byte;

	*(unsigned char*) GS_SETITEMMIX1 = GetChar(0, 100, 80,"ChaosMachineMixes","380LevelMixSuccessRate",GreatDevelopItems);
	*(unsigned char*) GS_SETITEMMIX2 = GetChar(0, 100, 80,"ChaosMachineMixes","380LevelMixSuccessRate",GreatDevelopItems);
	*(unsigned int*) GS_DINO_MIX = GetInt(0, 100, 70,"ChaosMachineMixes","DinorantMixSuccessRate",GreatDevelopItems);
	
	*(unsigned int*) GS_DARK_HORSE = GetInt(0, 100, 60,"DLPets","DarkHorseMixSuccessRate",GreatDevelopItems);
	*(unsigned int*) GS_DARK_HORSE_PRICE = GetInt(0, 2000000000, 5000000,"DLPets","DarkHorseMixPrice",GreatDevelopItems);
   	*(unsigned int*) GS_DARK_SPIRIT = GetInt(0, 100, 60,"DLPets","DarkSpiritMixSuccessRate",GreatDevelopItems);
	*(unsigned int*) GS_DARK_SPIRIT_PRICE = GetInt(0, 2000000000, 1000000,"DLPets","DarkSpiritMixPrice",GreatDevelopItems);

	//Percentage for EXERate 0 - 100%
	int EXERate = GetInt(0, 100, 10,"ItemDropRates","ExcDropRate",GreatDevelopItems);
	*(unsigned int*) GS_EXC_DROP_RATE = 2000 - (20 * EXERate);
	//
	*(unsigned int*) GS_EXC_SKILL_RATE = GetInt(0, 100, 100,"ItemDropRates","ExcSkillDropRate",GreatDevelopItems);
	*(unsigned int*) GS_EXC_LUCK_RATE = GetInt(0, 100, 1,"ItemDropRates","ExcLuckDropRate",GreatDevelopItems);
	*(unsigned int*) GS_SKILL_RATE = GetInt(0, 100, 6,"ItemDropRates","NormalSkillDropRate",GreatDevelopItems);
	*(unsigned int*) GS_LUCK_RATE = GetInt(0, 100, 4,"ItemDropRates","NormalLuckDropRate",GreatDevelopItems);
	*(unsigned char*) GS_ANCREWARD_SKILL_RATE = GetChar(0, 100, 6,"ItemDropRates","AncientRewardSkillDropRate",GreatDevelopItems);
	*(unsigned char*) GS_ANCREWARD_LUCK_RATE = GetChar(0, 100, 4,"ItemDropRates","AncientRewardLuckDropRate",GreatDevelopItems);
	*(unsigned char*) GS_ANCRANDOM_SKILL_RATE = GetChar(0, 100, 6,"ItemDropRates","AncientRandomSkillDropRate",GreatDevelopItems);
	*(unsigned char*) GS_ANCRANDOM_LUCK_RATE = GetChar(0, 100, 4,"ItemDropRates","AncientRandomLuckDropRate",GreatDevelopItems);


	byte = GetChar(0, 20, 7,"LevelUpPoints","LevelUpPointsForDl",GreatDevelopCommon);
	*(unsigned char*) GS_LVL_UP_DL1 = byte;
	*(unsigned char*) GS_LVL_UP_DL2 = byte;
	*(unsigned char*) GS_LVL_UP_DL3 = byte;
	*(unsigned char*) GS_LVL_UP_DL4 = byte;
	*(unsigned char*) GS_LVL_UP_DL5 = byte;

	byte = GetChar(0, 20, 7,"LevelUpPoints","LevelUpPointsForMg",GreatDevelopCommon);
	*(unsigned char*) GS_LVL_UP_MG1 = byte;
	*(unsigned char*) GS_LVL_UP_MG2 = byte;
	*(unsigned char*) GS_LVL_UP_MG3 = byte;
	*(unsigned char*) GS_LVL_UP_MG4 = byte;
	*(unsigned char*) GS_LVL_UP_MG5 = byte;

	byte = GetChar(0, 20, 5,"LevelUpPoints","LevelUpPointsForDkElfDwSum",GreatDevelopCommon);
	*(unsigned char*) GS_LVL_UP_NORMAL1 = byte;
	*(unsigned char*) GS_LVL_UP_NORMAL2 = byte;
	*(unsigned char*) GS_LVL_UP_NORMAL3 = byte;
	*(unsigned char*) GS_LVL_UP_NORMAL4 = byte;
	*(unsigned char*) GS_LVL_UP_NORMAL5 = byte;

	byte = GetChar(0, 5, 1,"LevelUpPoints","ExtraPointsAfterMarlonQuest",GreatDevelopCommon);
	*(unsigned char*) GS_LVL_UP_QUEST1 = byte;
	*(unsigned char*) GS_LVL_UP_QUEST2 = byte;
	*(unsigned char*) GS_LVL_UP_QUEST3 = byte;
	*(unsigned char*) GS_LVL_UP_QUEST4 = byte;
	*(unsigned char*) GS_LVL_UP_QUEST5 = byte;

	*(unsigned char*) GS_ML_POINTS = GetChar(0, 20, 1,"LevelUpPoints","MasterlvlPoints",GreatDevelopCommon);

	*(unsigned int *) GS_TWISTINGSLASH_USELV = GetInt(0,5000,80,"SkillLevel", "TwistingSlashMinLevel", GreatDevelopSkills);
	*(unsigned int *) GS_RAGEFULBLOW_USELV = GetInt(0,5000,170,"SkillLevel", "RagefulBlowMinLevel", GreatDevelopSkills);
	*(unsigned int *) GS_DEATHSTAB_USELV = GetInt(0,5000,160,"SkillLevel", "DeathStabMinLevel", GreatDevelopSkills);
	*(unsigned int *) GS_IMPALE_USELV = GetInt(0,5000,25,"SkillLevel", "ImapleMinLevel", GreatDevelopSkills) ;
	*(unsigned int *) GS_INNERSTRENGTH_USELV = GetInt(0,5000,120,"SkillLevel", "GreaterFortitudeMinLevel", GreatDevelopSkills) ;
	*(unsigned int *) GS_PENETRATION_USELV = GetInt(0,5000,130,"SkillLevel", "PenetrationMinLevel", GreatDevelopSkills) ;

	*(unsigned int *) GS_MSNORMAL01 = GetInt(0,10000,250,"ManaShield", "ManaShieldAgiNormal", GreatDevelopSkills) ;
	*(unsigned int *) GS_MSNORMAL02 = GetInt(0,10000,200,"ManaShield", "ManaShieldEneNormal", GreatDevelopSkills) ;
	*(unsigned int *) GS_MSMASTER01 = GetInt(0,10000,50,"ManaShield", "ManaShieldAgiMaster", GreatDevelopSkills) ;
	*(unsigned int *) GS_MSMASTER02 = GetInt(0,10000,50,"ManaShield", "ManaShieldEneMaster", GreatDevelopSkills) ; 

	*(unsigned int *) NormalManaShieldTime1 = GetInt(0,10000,40,"ManaShield", "ManaShieldTime", GreatDevelopSkills) ;
	*(unsigned int *) MasterManaShieldTime2 = GetInt(0,10000,40,"ManaShield", "ManaShieldTimeMaster", GreatDevelopSkills) ;


	dword =  GetInt(0,5000,150,"GreatFortitude", "GreatFortitudeVitNormal", GreatDevelopSkills);
	*(unsigned int *) NormalGreatForitiuteVit01 = dword;
	*(unsigned int *) NormalGreatForitiuteVit02 = dword;
	*(unsigned int *) NormalGreatForitiuteVit03 = dword;
	*(unsigned int *) GS_GFNORMAL02 = GetInt(0,5000,100,"GreatFortitude", "GreatFortitudeEneNormal", GreatDevelopSkills) ;

	dword =  GetInt(0,5000,150,"GreatFortitude", "GreatFortitudeVitMaster", GreatDevelopSkills);
	*(unsigned int *) MasterGreatForitiuteVit01 = dword;
	*(unsigned int *) MasterGreatForitiuteVit02 = dword;
	*(unsigned int *) MasterGreatForitiuteVit03 = dword;
	*(unsigned int *) GS_GFMASTER02 = GetInt(0,5000,100,"GreatFortitude", "GreatFortitudeEneMaster", GreatDevelopSkills) ;

	*(unsigned int *) NormalGreatForitiuteTime = GetInt(0,10000,10,"GreatFortitude", "GreatFortitudeTime", GreatDevelopSkills) ;
	*(unsigned int *) MasterGreatForitiuteTime = GetInt(0,10000,10,"GreatFortitude", "GreatFortitudeMaster", GreatDevelopSkills) ;


	*(unsigned int*) GS_BERSERKER_DIV1 = GetInt(0,5000,20,"Berserker","BerserkerDiv1",GreatDevelopSkills);
	*(unsigned int*) GS_BERSERKER_DIV2 = GetInt(0,5000,30,"Berserker","BerserkerDiv2",GreatDevelopSkills);
	*(unsigned int*) GS_BERSERKER_DIV3 = GetInt(0,5000,60,"Berserker","BerserkerDiv3",GreatDevelopSkills);
	*(unsigned int*) GS_DAMAGEREF_DIV1 = GetInt(0,5000,42,"DamageRef","DamageRefDiv1",GreatDevelopSkills);
	*(unsigned int*) GS_DAMAGEREF_DIV2 = GetInt(0,5000,25,"DamageRef","DamageRefDiv2",GreatDevelopSkills);

	*(unsigned int*) GS_CRITICALDMG_COMMAND = GetInt(0,5000,25,"CriticalDmg","CriticalDmgLeaderShip",GreatDevelopSkills);
	*(unsigned int*) GS_CRITICALDMG_ENERGY = GetInt(0,5000,30,"CriticalDmg","CriticalDmgEnergy",GreatDevelopSkills);
	*(unsigned int*) GS_CRITICALDMG_TIME = GetInt(0,5000,10,"CriticalDmg","CriticalDmgTime",GreatDevelopSkills);

	*(unsigned int*) MaxZen  = GetInt(0, 2000000000, 2000000000,"MaximumZen", "MaxZenInBag", GreatDevelopCommon);

	dword = GetInt(0, 2000000000, 1000000000,"MaximumZen", "MaxZenInVault", GreatDevelopCommon);
	*(unsigned int*) MaxZen1 = dword;
	*(unsigned int*) MaxZen2 = dword;
	*(unsigned int*) MaxZen3 = dword;

	*(unsigned int *) GS_PARTYEXP_2_NORMAL = GetInt(0,5000,160,"PartyExp","NormalParty2Exp",GreatDevelopCommon);
	*(unsigned int *) GS_PARTYEXP_3_NORMAL = GetInt(0,5000,180,"PartyExp","NormalParty3Exp",GreatDevelopCommon);
	*(unsigned int *) GS_PARTYEXP_4_NORMAL = GetInt(0,5000,200,"PartyExp","NormalParty4Exp",GreatDevelopCommon);
	*(unsigned int *) GS_PARTYEXP_5_NORMAL = GetInt(0,5000,220,"PartyExp","NormalParty5Exp",GreatDevelopCommon);
	*(unsigned int *) GS_PARTYEXP_3_SET = GetInt(0,5000,230,"PartyExp","SetParty3Exp",GreatDevelopCommon);
	*(unsigned int *) GS_PARTYEXP_4_SET = GetInt(0,5000,270,"PartyExp","SetParty4Exp",GreatDevelopCommon);
	*(unsigned int *) GS_PARTYEXP_5_SET  = GetInt(0,5000,300,"PartyExp","SetParty5Exp",GreatDevelopCommon);
#ifdef _GS
	*(unsigned int*) GS_DS_PARTYEXP_2 = GetInt(0,5000,160,"DevilSquare","DevilSquarePartyExp2Players",GreatDevelopEvents);
	*(unsigned int*) GS_DS_PARTYEXP_3 = GetInt(0,5000,180,"DevilSquare","DevilSquarePartyExp3Players",GreatDevelopEvents);
	*(unsigned int*) GS_DS_PARTYEXP_4 = GetInt(0,5000,200,"DevilSquare","DevilSquarePartyExp4Players",GreatDevelopEvents);
	*(unsigned int*) GS_DS_PARTYEXP_5 = GetInt(0,5000,220,"DevilSquare","DevilSquarePartyExp5Players",GreatDevelopEvents);
	*(unsigned int*) GS_DS_PARTYDIFFEXP_3 = GetInt(0,5000,230,"DevilSquare","DevilSquareSetPartyExp3Players",GreatDevelopEvents);
	*(unsigned int*) GS_DS_PARTYDIFFEXP_4 = GetInt(0,5000,270,"DevilSquare","DevilSquareSetPartyExp4Players",GreatDevelopEvents);
	*(unsigned int*) GS_DS_PARTYDIFFEXP_5 = GetInt(0,5000,300,"DevilSquare","DevilSquareSetPartyExp5Players",GreatDevelopEvents);
#endif
#ifdef _GS_CS
	*(unsigned int*) GSCS_LOT_MAXPRICE = GetInt(0,1000000000,300000,"CastleSiege","CSLandOfTrialMaxPayment",GreatDevelopEvents);
	*(unsigned char*) GSCS_LORDMIX_MAXUSE  = GetChar(0,5000,0,"CastleSiege","CSLordMixMaxUsePerDay",GreatDevelopEvents);

	*(unsigned char*) GSCS_CRYWOLF_REWARD_ELF = GetChar(0,15,14,"CryWolf","CrywolfAltarElfRewardIndexID",GreatDevelopEvents) * 512 + GetChar(0,255,13,"CryWolf","CrywolfAltarElfRewardGroupID",GreatDevelopEvents);
	*(unsigned char*) GSCS_CRYWOLF_REWARD_TOP5 = GetChar(0,15,14,"CryWolf","CrywolfTop5RewardIndexID",GreatDevelopEvents) * 512 + GetChar(0,255,13,"CryWolf","CrywolfTop5RewardGroupID",GreatDevelopEvents);
	
	dword = GetInt(0,1000000000,200000000,"CastleSiege","CSSeniorMaxCash",GreatDevelopEvents);
	*(unsigned int*) GSCS_SENIOR_MAXZEN1 = dword;
	*(unsigned int*) GSCS_SENIOR_MAXZEN2 = dword;
#endif 
}	
HRESULT SWLPRVenusCameraParameter::InitHvDsp(VOID)
{
	GetEnum("HvDsp\\Misc"
    	, "IPNCLogOutput"
    	, &Get().cCamCfgParam.iIPNCLogOutput
    	, Get().cCamCfgParam.iIPNCLogOutput
    	, "0:不输出;1:输出"
    	, "输出IPNC日志信息"
    	, ""
    	, PROJECT_LEVEL
    );
	
    GetEnum("\\HvDsp\\Misc"
        , "HDVideoEnable"
        , &Get().cResultSenderParam.fSaveVideo
        , Get().cResultSenderParam.fSaveVideo
        , "0:不录像;1:录像"
        , "硬盘录像开关"
        , ""
        , CUSTOM_LEVEL
        );

    GetEnum("\\HvDsp\\Misc"
        , "SafeSaver"
        , &Get().cResultSenderParam.fIsSafeSaver
        , Get().cResultSenderParam.fIsSafeSaver
        , "0:不使能;1:使能"
        , "安全存储使能"
        , ""
        , PROJECT_LEVEL
    );

    GetEnum("\\HvDsp\\Misc"
        , "InitHdd"
        , &Get().cResultSenderParam.fInitHdd
        , Get().cResultSenderParam.fInitHdd
        , "0:无;1:分区格式化"
        , "初始化SD卡。注:一次性有效"
        , ""
        , CUSTOM_LEVEL
    );


    GetInt("\\HvDsp\\Misc"
        , "OneFileSize"
        , &Get().cResultSenderParam.iFileSize
        , Get().cResultSenderParam.iFileSize
        , 1
        , 1024
        , "定长存储单个文件大小,(单位K)"
        , ""
        , PROJECT_LEVEL
    );

    GetEnum("\\HvDsp\\Misc"
        , "SaveSafeType"
        , &Get().cResultSenderParam.iSaveSafeType
        , Get().cResultSenderParam.iSaveSafeType
        , "0:没有客户端连接时才存储;1:一直存储"
        , "SD卡存储方式"
        , ""
        , PROJECT_LEVEL
    );

    GetEnum("\\HvDsp\\Misc"
        , "DiskType"
        , &Get().cResultSenderParam.iDiskType
        , Get().cResultSenderParam.iDiskType
        , "0:无;2:SD卡"
        , "存储类型"
        , ""
        , CUSTOM_LEVEL
    );

    // zhaopy
    // 如果是固态硬盘需要设置是否使能硬盘的标志。
    if( 2 == Get().cResultSenderParam.iDiskType )
    {
        INT iUsed = (Get().cResultSenderParam.fIsSafeSaver || Get().cResultSenderParam.fSaveVideo) ? 1 : 0;
        INT iSet = 0;
        INT iRet = swpa_device_get_hdd_flag(&iSet);
        SW_TRACE_NORMAL("<Param>get hdd flag:%d. return:%d.", iSet, iRet);
        if( 0 == iRet && iSet != iUsed )
        {
            iRet = swpa_device_set_hdd_flag(iUsed);
            SW_TRACE_NORMAL("<Param>set hdd flag:%d. return:%d.", iUsed, iRet);
        }
    }

    /*GetString("\\HvDsp\\Misc"
        , "NetDiskIP"
        , Get().cResultSenderParam.szNetDiskIP
        , Get().cResultSenderParam.szNetDiskIP
        , sizeof(Get().cResultSenderParam.szNetDiskIP)
        , "网络存储的IP地址"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\HvDsp\\Misc"
        , "NetDiskSpace"
        , &Get().cResultSenderParam.iNetDiskSpace
        , Get().cResultSenderParam.iNetDiskSpace
        , 1
        , 3696
        , "网络存储的容量,单位G (存储初始化时有意义)"
        , ""
        , CUSTOM_LEVEL
    );

    GetString("\\HvDsp\\Misc"
        , "NFS"
        , Get().cResultSenderParam.szNFS
        , Get().cResultSenderParam.szNFS
        , sizeof(Get().cResultSenderParam.szNFS)
        , "NFS路径"
        , ""
        , CUSTOM_LEVEL
    );

    GetString("\\HvDsp\\Misc"
        , "NFSParam"
        , Get().cResultSenderParam.szNFSParam
        , Get().cResultSenderParam.szNFSParam
        , sizeof(Get().cResultSenderParam.szNFSParam)
        , "NFS挂载参数"
        , ""
        , PROJECT_LEVEL
    );*/

    GetEnum("\\HvDsp\\Misc"
        , "EnableNTP"
        , &Get().cResultSenderParam.fEnableNtp
        , Get().cResultSenderParam.fEnableNtp
        , "0:不使能;1:使能"
        , "NTP使能开关"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\HvDsp\\Misc"
        , "NTPSyncInterval"
        , &Get().cResultSenderParam.iNtpSyncInterval
        , Get().cResultSenderParam.iNtpSyncInterval
        , 1
        , 2147483647
        , "NTP时间同步间隔(单位秒)"
        , ""
        , CUSTOM_LEVEL
    );


    GetString("\\HvDsp\\Misc"
        , "NTPServerIP"
        , Get().cResultSenderParam.szNtpServerIP
        , Get().cResultSenderParam.szNtpServerIP
        , sizeof(Get().cResultSenderParam.szNtpServerIP)
        , "NTP服务器IP地址"
        , ""
        , CUSTOM_LEVEL
    );

	GetEnum("\\HvDsp\\Misc"
		, "TimeZone"
		, &Get().cResultSenderParam.iTimeZone
		, Get().cResultSenderParam.iTimeZone
		, "0:GMT-12;"
		  	"1:GMT-11;"
			"2:GMT-10;"
			"3:GMT-09;"
			"4:GMT-08;"
			"5:GMT-07;"
			"6:GMT-06;"
			"7:GMT-05;"
			"8:GMT-04;"
			"9:GMT-03;"
			"10:GMT-02;"
			"11:GMT-01;"
			"12:GMT+00;"
			"13:GMT+01;"
			"14:GMT+02;"
			"15:GMT+03;"
			"16:GMT+04;"
			"17:GMT+05;"
			"18:GMT+06;"
			"19:GMT+07;"
			"20:GMT+08;"
			"21:GMT+09;"
			"22:GMT+10;"
			"23:GMT+11;"
			"24:GMT+12"
		, "时区"
		, ""
		, CUSTOM_LEVEL
	);


    /*GetString("\\HvDsp\\Identify", "StreetName"
        , Get().cResultSenderParam.szStreetName
        , Get().cResultSenderParam.szStreetName
        , sizeof(Get().cResultSenderParam.szStreetName)
        , "路口名称"
        , ""
        , CUSTOM_LEVEL
        );

    GetString("\\HvDsp\\Identify"
        , "StreetDirection"
        , Get().cResultSenderParam.szStreetDirection
        , Get().cResultSenderParam.szStreetDirection
        , sizeof(Get().cResultSenderParam.szStreetDirection)
        , "路口方向"
        , ""
        , CUSTOM_LEVEL
        );*/

    GetInt("\\HvDsp\\Trigger"
        , "TriggerOutEnable"
        , &Get().cResultSenderParam.fEnableTriggerOut
        , Get().cResultSenderParam.fEnableTriggerOut
        , 0
        , 1
        , "触发输出使能开关"
        , ""
        , CUSTOM_LEVEL
        );

    GetEnum("\\HvDsp\\Trigger"
        , "TriggerOutNormalStatus"
        , &Get().cResultSenderParam.nTriggerOutNormalStatus
        , Get().cResultSenderParam.nTriggerOutNormalStatus
        , "0:高电平;1:低电平"
        , "触发输出常态控制"
        , ""
        , CUSTOM_LEVEL
    );

    GetInt("\\HvDsp\\Trigger"
        , "TriggerOutPlusWidth"
        , &Get().cResultSenderParam.nTriggerOutPlusWidth
        , Get().cResultSenderParam.nTriggerOutPlusWidth
        , 100
        , 30000
        , "触发输出通断时间,单位为ms"
        , ""
        , CUSTOM_LEVEL
        );

    return S_OK ;
}
void cConfigs::LoadNotice()
{	
	ConnectInfo					= GetInt(0, 1,					1,		"Connect",		"ConnectInfo",					GreatDevelopGS);
	GetPrivateProfileString("Connect","ConnectNotice","Powered by GreatDevelop 1.0.2",ConnectNotice,sizeof(ConnectNotice),GreatDevelopGS); 
	Log.CheckProcent(ConnectNotice);	 
} 
void cConfigs::MapSys()
{ 
	MapSystem.Enabled				= GetInt(0, 1, 1,"MapSystem", "EnableMapSystem", GreatDevelopMapSystem);	
	if(!MapSystem.Enabled)return; 
	MapSystem.Load();
}
void cConfigs::LoadPets()
{		  																									   
	Panda.PetPandaDefense				= GetInt(0, 1000,			10,		"Panda",		"PetPandaDefense",				GreatDevelopPets);
	Panda.PetPandaAttackDamageMinLeft	= GetInt(0, 1000,			10,		"Panda",		"PetPandaAttackDamageMinLeft",	GreatDevelopPets);
	Panda.PetPandaAttackDamageMaxLeft	= GetInt(0, 1000,			10,		"Panda",		"PetPandaAttackDamageMaxLeft",	GreatDevelopPets);
	Panda.PetPandaAttackDamageMinRight	= GetInt(0, 1000,			10,		"Panda",		"PetPandaAttackDamageMinRight",	GreatDevelopPets);
	Panda.PetPandaAttackDamageMaxRight	= GetInt(0, 1000,			10,		"Panda",		"PetPandaAttackDamageMaxRight",	GreatDevelopPets);
	Panda.PetPandaMagicDamageMin		= GetInt(0, 1000,			10,		"Panda",		"PetPandaMagicDamageMin",		GreatDevelopPets);
	Panda.PetPandaMagicDamageMax		= GetInt(0, 1000,			10,		"Panda",		"PetPandaMagicDamageMax",		GreatDevelopPets);
	Panda.PetPandaMagicSpeed			= GetInt(0, 1000,			10,		"Panda",		"PetPandaMagicSpeed",			GreatDevelopPets);
	Panda.PetPandaAttackSpeed			= GetInt(0, 1000,			10,		"Panda",		"PetPandaAttackSpeed",			GreatDevelopPets);

	Panda.PandaRingDefense				= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingDefense",				GreatDevelopPets);
	Panda.PandaRingAttackDamageMinLeft	= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingAttackDamageMinLeft",	GreatDevelopPets);
	Panda.PandaRingAttackDamageMaxLeft	= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingAttackDamageMaxLeft",	GreatDevelopPets);
	Panda.PandaRingAttackDamageMinRight	= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingAttackDamageMinRight",GreatDevelopPets);
	Panda.PandaRingAttackDamageMaxRight	= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingAttackDamageMaxRight",GreatDevelopPets);
	Panda.PandaRingMagicDamageMin		= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingMagicDamageMin",		GreatDevelopPets);
	Panda.PandaRingMagicDamageMax		= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingMagicDamageMax",		GreatDevelopPets);
	Panda.PandaRingMagicSpeed			= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingMagicSpeed",			GreatDevelopPets);
	Panda.PandaRingAttackSpeed			= GetInt(0, 1000,			10,		"PandaRing",	"PandaRingAttackSpeed",			GreatDevelopPets);
																										  
	Panda.PetPandaExpirence				= GetInt(0, 10000,			100,	"Panda",		"PetPandaExpirence",			GreatDevelopPets);
	Panda.PetPandaMLExpirence			= GetInt(0, 10000,			100,	"Panda",		"PetPandaMLExpirence",			GreatDevelopPets);

	Panda.PandaRingExpirence			= GetInt(0, 10000,			100,	"PandaRing",	"PandaRingExpirence",			GreatDevelopPets);
	Panda.PandaRingMLExpirence			= GetInt(0, 10000,			100,	"PandaRing",	"PandaRingMLExpirence",			GreatDevelopPets);
}
Exemple #15
0
int QueryByNo(int no){
	SendInt(fifo_ctstat, no);
	int shmid = GetInt(fifo_shstat);
	printf ( "%d memory = %d \n", no, shmid );
	return shmid;
}
Exemple #16
0
int CScValue::DbgGetValInt() {
	return GetInt();
}
Exemple #17
0
/*!
  \param Func
*/
xbShort xbExpn::ProcessFunction( char * Func )
{
/* 1 - pop function from stack
   2 - verify function name and get no of parms needed 
   3 - verify no of parms >= remainder of stack
   4 - pop parms off stack
   5 - execute function
   6 - push result back on stack
*/


  char   *buf = 0;
  xbExpNode *p1, *p2, *p3, *WorkNode, *FuncNode;
  xbShort  ParmsNeeded,len;
  char   ptype = 0;  /* process type s=string, l=logical, d=double */
  xbDouble DoubResult = 0;
  xbLong   IntResult = 0;
  FuncNode = (xbExpNode *) Pop();

  ParmsNeeded = GetFuncInfo( Func, 1 );

  if( ParmsNeeded == -1 ) {
    return XB_INVALID_FUNCTION;
  }
  else {
    ParmsNeeded = 0;
    if( FuncNode->Sibling1 ) ParmsNeeded++;
    if( FuncNode->Sibling2 ) ParmsNeeded++;
    if( FuncNode->Sibling3 ) ParmsNeeded++;
  }

  if( ParmsNeeded > GetStackDepth())
    return XB_INSUFFICIENT_PARMS;

  p1 = p2 = p3 = NULL;
  if( ParmsNeeded > 2 ) p3 = (xbExpNode *) Pop(); 
  if( ParmsNeeded > 1 ) p2 = (xbExpNode *) Pop(); 
  if( ParmsNeeded > 0 ) p1 = (xbExpNode *) Pop(); 
  memset( WorkBuf, 0x00, WorkBufMaxLen+1);

  if( strncmp( Func, "ABS", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = ABS( GetDoub( p1 ));
  }
  else if( strncmp( Func, "ASC", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = ASC( p1->StringResult );
  }
  else if( strncmp( Func, "AT", 2 ) == 0 ) {  
    ptype = 'd';
    DoubResult = AT( p1->StringResult, p2->StringResult );
  }
  else if( strncmp( Func, "CDOW", 4 ) == 0 ) {  
    ptype = 's';
    buf = CDOW( p1->StringResult );
  }
  else if( strncmp( Func, "CHR", 3 ) == 0 ) {  
    ptype = 's';
    buf = CHR( GetInt( p1 ));
  }
  else if( strncmp( Func, "CMONTH", 6 ) == 0 ) {  
    ptype = 's';
    buf = CMONTH( p1->StringResult );
  }
  else if( strncmp( Func, "CTOD", 4 ) == 0 ) {  
    ptype = 's';
    buf = CTOD( p1->StringResult );
  }
  else if( strncmp( Func, "DATE", 4 ) == 0 ) {  
    ptype = 's';
    buf = DATE();
  }
  else if( strncmp( Func, "DAY", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = DAY( p1->StringResult );
  }
  else if( strncmp( Func, "DESCEND", 7 ) == 0 && p1->ExpressionType == 'C' ) {  
    ptype = 's';
    buf = DESCEND( p1->StringResult.c_str() );
  }
  else if( strncmp( Func, "DESCEND", 7 ) == 0 && p1->ExpressionType == 'N' ) {  
    ptype = 'd';
    DoubResult = DESCEND( GetDoub( p1 ));
  }
  else if( strncmp( Func, "DESCEND", 7 ) == 0 && p1->ExpressionType == 'D' ) {  
    xbDate d( p1->StringResult );
    ptype = 'd';
    DoubResult = DESCEND( d );
  }
  else if( strncmp( Func, "DOW", 3 ) == 0 ) {
    ptype = 'd';
    DoubResult = DOW( p1->StringResult );
  }
  else if( strncmp( Func, "DTOC", 4 ) == 0 ) {  
    ptype = 's';
    buf = DTOC( p1->StringResult );
  }
  else if( strncmp( Func, "DTOS", 4 ) == 0 ) {  
    ptype = 's';
    buf = DTOS( p1->StringResult );
  }
  else if( strncmp( Func, "EXP", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = EXP( GetDoub( p1 ));
  }
  else if( strncmp( Func, "IIF", 3 ) == 0 ){
    ptype = 's';
    buf = IIF( p1->IntResult, p2->StringResult, p3->StringResult );
  }
  else if( strncmp( Func, "INT", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = INT( GetDoub( p1 ));
  }
  else if( strncmp( Func, "ISALPHA", 7 ) == 0 ) {  
    ptype = 'l';
    IntResult = ISALPHA( p1->StringResult );
  }
  else if( strncmp( Func, "ISLOWER", 7 ) == 0 ) {  
    ptype = 'l';
    IntResult = ISLOWER( p1->StringResult );
  }
  else if( strncmp( Func, "ISUPPER", 7 ) == 0 ) {  
    ptype = 'l';
    IntResult = ISUPPER( p1->StringResult );
  }
  else if( strncmp( Func, "LEN", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = LEN( p1->StringResult );
  }
  else if( strncmp( Func, "LEFT", 4 ) == 0 ) {  
    ptype = 's';
    buf = LEFT( p1->StringResult, INT( p2->DoubResult ));
  }
  else if( strncmp( Func, "LTRIM", 5 ) == 0 ) {  
    ptype = 's';
    buf = LTRIM( p1->StringResult );
  }  
  else if( strncmp( Func, "LOG", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = LOG( GetDoub( p1 ));
  }  
  else if( strncmp( Func, "LOWER", 5 ) == 0 ) {  
    ptype = 's';
    buf = LOWER( p1->StringResult );
  }  
  else if( strncmp( Func, "MAX", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = MAX( GetDoub( p1 ), GetDoub( p2 ));
  }  
  else if( strncmp( Func, "MIN", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = MIN( GetDoub( p1 ), GetDoub( p2 ));
  }  
  else if( strncmp( Func, "MONTH", 5 ) == 0 ) {  
    ptype = 'd';
    DoubResult = MONTH( p1->StringResult );
  } 

  else if( strncmp( Func, "RECNO", 5 ) == 0 )
  {
    ptype = 'd';
    DoubResult = RECNO( FuncNode->dbf );
  }

  else if( strncmp( Func, "REPLICATE", 9 ) == 0 ) {
    ptype = 's';
    buf = REPLICATE( p1->StringResult, GetInt( p2 ));
  }
  else if( strncmp( Func, "RIGHT", 5 ) == 0 ) {
    ptype = 's';
    buf = RIGHT( p1->StringResult, GetInt( p2 ));
  }
  else if( strncmp( Func, "RTRIM", 5 ) == 0 ) {  
    ptype = 's';
    buf = RTRIM( p1->StringResult );
  }  
  else if( strncmp( Func, "SPACE", 5 ) == 0 ) {  
    ptype = 's';
    buf = SPACE( INT( GetDoub( p1 )));
  }
  else if( strncmp( Func, "SQRT", 4 ) == 0 ) {  
    ptype = 'd';
    DoubResult = SQRT( GetDoub( p1 ));
  }
  else if( strncmp( Func, "STRZERO", 7 ) == 0 && ParmsNeeded == 1 ) {
    ptype = 's';
    buf = STRZERO( p1->StringResult );
  }   
  else if( strncmp( Func, "STRZERO", 7 ) == 0 && ParmsNeeded == 2 ) {
    ptype = 's';
    buf = STRZERO( p1->StringResult, GetInt( p2 ));
  }   
  else if( strncmp( Func, "STRZERO", 7 ) == 0 && ParmsNeeded == 3 ) {
    ptype = 's';
    buf = STRZERO( p1->StringResult, GetInt( p2 ), GetInt( p3 ));
  }   

  else if( strncmp( Func, "STR", 3 ) == 0 && p3 ) {
    ptype = 's';
    if(p1->ExpressionType == 'N')
      buf = STR( p1->DoubResult, GetInt( p2 ), GetInt( p3 ));
    else
      buf = STR( p1->StringResult, GetInt( p2 ), GetInt( p3 ));
  }   

  else if( strncmp( Func, "STR", 3 ) == 0 && p2 ) {
    ptype = 's';
    buf = STR( p1->StringResult, GetInt( p2 ));
  }

  else if( strncmp( Func, "STR", 3 ) == 0 && p1 ) {
    ptype = 's';
    buf = STR( p1->StringResult );
  }
   
  else if( strncmp( Func, "SUBSTR", 6 ) == 0 ) {
    ptype = 's';
    buf = SUBSTR( p1->StringResult, GetInt( p2 ), GetInt( p3 )); 
  }
  else if( strncmp( Func, "TRIM", 4 ) == 0 ) {  
    ptype = 's';
    buf = TRIM( p1->StringResult );
  }  
  else if( strncmp( Func, "UPPER", 5 ) == 0 ) {  
    ptype = 's';
    buf = UPPER( p1->StringResult );
  }  
  else if( strncmp( Func, "VAL", 3 ) == 0 ) {  
    ptype = 'd';
    DoubResult = VAL( p1->StringResult );
  }  
  else if( strncmp( Func, "YEAR", 4 ) == 0 ) {  
    ptype = 'd';
    DoubResult = YEAR( p1->StringResult );
  }  
  if( p1 && !p1->InTree ) delete p1;
  if( p2 && !p2->InTree ) delete p2;
  if( p3 && !p3->InTree ) delete p3;
  if( !FuncNode->InTree ) delete FuncNode;
  if( buf ){
    len = strlen( buf );
    WorkNode = new xbExpNode;
    if( !WorkNode )
      return XB_NO_MEMORY;
    WorkNode->ResultLen = len + 1;
    
  } else {    
    len = 0;
    WorkNode = new xbExpNode;
    if( !WorkNode )
      return XB_NO_MEMORY;
    WorkNode->ResultLen = 0;
  }

  switch( ptype ){
   case 's':                               /* string or char result */
    WorkNode->DataLen = len;
    WorkNode->ExpressionType = 'C';
    WorkNode->Type = 's';
    WorkNode->StringResult = buf;
    break;
   case 'd':                               /* numeric result */
    WorkNode->DataLen = 0;
    WorkNode->ExpressionType = 'N';
    WorkNode->Type = 'd';
    WorkNode->DoubResult = DoubResult;
    break;
   case 'l':                               /* logical result */
    WorkNode->DataLen = 0;
    WorkNode->ExpressionType = 'L';
    WorkNode->Type = 'l';
    WorkNode->IntResult = IntResult;
    break;
   default:
    std::cout << "\nInternal error. " << ptype;
    break;
  }
  Push(WorkNode);
  return XB_NO_ERROR;
}
Exemple #18
0
DWORD CRegistry::GetDword(LPCTSTR pszSection, LPCTSTR pszName, DWORD dwDefault)
{
	return (int)GetInt( pszSection, pszName, (int)dwDefault );
}
Exemple #19
0
void CDarkMarshalBuffer::GetMultiParm(sMultiParm& parm)
{
	parm._type = (eMultiParmType)(int)GetByte();
	parm._int = GetInt();	// Obviously, it doesn't matter which union member we retrieve here
}
Exemple #20
0
BOOL CBCGPOrganizerApp::InitInstance()
{
	// Initialize OLE libraries
	if (!AfxOleInit())
	{
		AfxMessageBox(IDP_OLE_INIT_FAILED);
		return FALSE;
	}

	AfxEnableControlContainer();

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

#if _MSC_VER < 1400
#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif
#endif

	// Change the registry key under which our settings are stored.
	// TODO: You should modify this string to be something appropriate
	// such as the name of your company or organization.
	SetRegistryKey(_T("BCGSoft\\BCGControlBarPro\\Examples"));

	LoadStdProfileSettings(0);  // Load standard INI file options (including MRU)

	SetRegistryBase (_T("Settings2"));

	m_OptionsPlanner.Load ();
	m_OptionsGantt.Load ();

	// Initialize all Managers for usage. They are automatically constructed
	// if not yet present
	InitContextMenuManager();
	InitKeyboardManager();
	InitTooltipManager();

	m_bShowFloaty = GetInt (_T("ShowFloaty"), TRUE);
	m_nAppLook = GetInt (_T("ApplicationLook"), 1);
	m_bShowToolTips = GetInt (_T("ShowToolTips"), TRUE);
	m_bShowKeyTips = GetInt (_T("ShowKeyTips"), TRUE);
	m_bShowToolTipDescr = GetInt (_T("ShowToolTipDescription"), TRUE);

	CBCGPToolTipParams params;
	params.m_bVislManagerTheme = TRUE;
	globalData.m_nMaxToolTipWidth = 150;

	theApp.GetTooltipManager ()->SetTooltipParams (
		0xFFFF,
		RUNTIME_CLASS (CRibbonTooltipCtrl),
		&params);
	
	if (m_OptionsPlanner.m_ShowToolTip == 2)
	{
		GetTooltipManager ()->SetTooltipParams (
			BCGP_TOOLTIP_TYPE_PLANNER,
			RUNTIME_CLASS (CPlannerTooltipCtrl),
			&params);
	}

	if (m_OptionsGantt.m_ShowToolTip == 2)
	{
 		GetTooltipManager ()->SetTooltipParams (
 			BCGP_TOOLTIP_TYPE_GANTT,
 			RUNTIME_CLASS (CGanttTooltipCtrl),
 			&params);
	}

	// Register the application's document templates.  Document templates
	//  serve as the connection between documents, frame windows and views.

	CSingleDocTemplate* pDocTemplate;
	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CBCGPOrganizerDoc),
		RUNTIME_CLASS(CMainFrame),       // main SDI frame window
		RUNTIME_CLASS(CBCGPOrganizerView));
	AddDocTemplate(pDocTemplate);

	// Parse command line for standard shell commands, DDE, file open
	CCommandLineInfo cmdInfo;
	ParseCommandLine(cmdInfo);

	// Dispatch commands specified on the command line
	if (!ProcessShellCommand(cmdInfo))
		return FALSE;

	// The one and only window has been initialized, so show and update it.
	m_pMainWnd->ShowWindow(SW_SHOW);
/*
	CRect rect;
	m_pMainWnd->GetWindowRect (rect);
	m_pMainWnd->SetWindowPos (NULL, -1, -1, rect.Width (), rect.Height (), SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);
*/
	m_pMainWnd->UpdateWindow();

	return TRUE;
}
void HMISong::SetupForHMI(int len)
{
	int i, p;

	ReadVarLen = ReadVarLenHMI;
	NumTracks = GetShort(MusHeader + HMI_TRACK_COUNT_OFFSET);

	if (NumTracks <= 0)
	{
		return;
	}

	// The division is the number of pulses per quarter note (PPQN).
	// HMI files have two values here, a full value and a quarter value. Some games, 
	// notably Quarantines, have identical values for some reason, so it's safer to
	// use the quarter value and multiply it by four than to trust the full value.
	Division = GetShort(MusHeader + HMI_DIVISION_OFFSET) << 2;
	InitialTempo = 4000000;

	Tracks = new TrackInfo[NumTracks + 1];
	int track_dir = GetInt(MusHeader + HMI_TRACK_DIR_PTR_OFFSET);

	// Gather information about each track
	for (i = 0, p = 0; i < NumTracks; ++i)
	{
		int start = GetInt(MusHeader + track_dir + i*4);
		int tracklen, datastart;

		if (start > len - HMITRACK_DESIGNATION_OFFSET - 4)
		{ // Track is incomplete.
			continue;
		}

		// BTW, HMI does not actually check the track header.
		if (memcmp(MusHeader + start, TRACK_MAGIC, 13) != 0)
		{
			continue;
		}

		// The track ends where the next one begins. If this is the
		// last track, then it ends at the end of the file.
		if (i == NumTracks - 1)
		{
			tracklen = len - start;
		}
		else
		{
			tracklen = GetInt(MusHeader + track_dir + i*4 + 4) - start;
		}
		// Clamp incomplete tracks to the end of the file.
		tracklen = MIN(tracklen, len - start);
		if (tracklen <= 0)
		{
			continue;
		}

		// Offset to actual MIDI events.
		datastart = GetInt(MusHeader + start + HMITRACK_DATA_PTR_OFFSET);
		tracklen -= datastart;
		if (tracklen <= 0)
		{
			continue;
		}

		// Store track information
		Tracks[p].TrackBegin = MusHeader + start + datastart;
		Tracks[p].TrackP = 0;
		Tracks[p].MaxTrackP = tracklen;

		// Retrieve track designations. We can't check them yet, since we have not yet
		// connected to the MIDI device.
		for (int ii = 0; ii < NUM_HMI_DESIGNATIONS; ++ii)
		{
			Tracks[p].Designation[ii] = GetShort(MusHeader + start + HMITRACK_DESIGNATION_OFFSET + ii*2);
		}

		p++;
	}

	// In case there were fewer actual chunks in the file than the
	// header specified, update NumTracks with the current value of p.
	NumTracks = p;
}
/*******************************************************************************
* Name:			Read3DS ()
*******************************************************************************/
int M3DMAGIC::Read3DS (int iNrOfBytes, byte* bp3DSData)
{
	int iCurrentByte = 0;	// Pointer to current byte in chunk
	int iChunkID;			// Chunk id
	long lChunkLength;		// Chunk length

	// Print status
	VerbosePrintf ("Begin reading M3DMAGIC chunk");

	// Check for zero length
	if (iNrOfBytes <= CHUNKHEADER_SIZE)
	{
		// Set error file contains no data
		ErrorPrintf ("File contains no data");

		// Return error
		return (-1);
	}

	// Get chunks from M3DMAGIC chunk
	while (iCurrentByte < iNrOfBytes)
	{
		// Get chunk id
		iChunkID = Get3DSChunkID (bp3DSData + iCurrentByte);
		iCurrentByte += CHUNKID_SIZE;
		
		// Get chunk length
		lChunkLength = GetInt (bp3DSData + iCurrentByte);
		iCurrentByte += CHUNKLENGTH_SIZE;
		
		// Check if length is correct
		if (lChunkLength > (iNrOfBytes - iCurrentByte + CHUNKHEADER_SIZE))
		{
			// Set error chunk size invalid
			ErrorPrintf ("Chunk size invalid");

			// Return error
			return (-1);
		}
		
		// Check chunk id
		switch (iChunkID)
		{
			case M3D_VERSION_CHUNK:
				// Print status
				VerbosePrintf ("M3D_VERSION chunk found");

				// Read M3D_VERSION chunk
				if (M3DMAGIC::vVersion.Read3DS (lChunkLength - CHUNKHEADER_SIZE,
					bp3DSData + iCurrentByte) != 0)
				{
					// Return error
					return (-1);
				}				
				break;
			case MDATA_CHUNK:
				// Print status
				VerbosePrintf ("MDATA chunk found");

				// Read MDATA chunk
				if (M3DMAGIC::dData.Read3DS (lChunkLength - CHUNKHEADER_SIZE, bp3DSData + iCurrentByte) != 0) {
					// Return error
					return (-1);
				}
				break;
			default:
				// Print status
				VerbosePrintf ("Unknown chunk found in M3DMAGIC: %x", iChunkID);
				break;
		}
		
		// Set pointer
		iCurrentByte += (lChunkLength - CHUNKHEADER_SIZE);
	}

	// Print status
	VerbosePrintf ("End reading M3DMAGIC chunk");

	// Return no error
	return (0);
}
long Cx_CfgRecord::GetInt32(const wchar_t* pszEntry, long nDefault)
{
    return GetInt(pszEntry, nDefault);
}
Exemple #24
0
NFINT64 NFCRecord::GetInt(const int nRow, const std::string& strColTag) const
{
    int nCol = GetCol(strColTag);
    return GetInt(nRow, nCol);
}
short Cx_CfgRecord::GetInt16(const wchar_t* pszEntry, short nDefault)
{
    return (short)GetInt(pszEntry, nDefault);
}
Exemple #26
0
int Config::GetIntDefault(const char* name, const int def)
{
    int val;
    return GetInt(name, &val) ? val : def;
}
template <> int Variant::Get<int>() const
{
    return GetInt();
}
Exemple #28
0
 // This makes sorting a lot easier
 bool operator<(const Clue & other) const
 {
     assert(GetInt() != 0 && other.GetInt() != 0);
     return GetInt() < other.GetInt();
 }
Exemple #29
0
int main(int argc, string argv[]) {
    // ensure proper usage
    if (argc != 2) {
        printf("Usage: fifteen d\n");
        return 1;
    }

    // ensure valid dimensions
    d = atoi(argv[1]);
    if (d < DIM_MIN || d > DIM_MAX) {
        printf("Board must be between %i x %i and %i x %i, inclusive.\n",
               DIM_MIN, DIM_MIN, DIM_MAX, DIM_MAX);
        return 2;
    }

    // open log
    FILE *file = fopen("log.txt", "w");
    if (file == NULL) {
        return 3;
    }

    // greet user with instructions
    greet();

    // initialize the board
    init();

    // accept moves until game is won
    while (true) {
        // clear the screen
        clear();

        // draw the current state of the board
        draw();

        // log the current state of the board (for testing)
        for (int i = 0; i < d; i++) {
            for (int j = 0; j < d; j++) {
                fprintf(file, "%i", board[i][j]);
                if (j < d - 1) {
                    fprintf(file, "|");
                }
            }
            fprintf(file, "\n");
        }
        fflush(file);

        // check for win
        if (won()) {
            printf("ftw!\n");
            break;
        }

        // prompt for move
        printf("Tile to move: ");
        int tile = GetInt();

        // quit if user inputs 0 (for testing)
        if (tile == 0) {
            break;
        }

        // log move (for testing)
        fprintf(file, "%i\n", tile);
        fflush(file);

        // move if possible, else report illegality
        if (!move(tile)) {
            printf("\nIllegal move.\n");
            usleep(500000);
        }

        // sleep thread for animation's sake
        usleep(500000);
    }

    // close log
    fclose(file);

    // success
    return 0;
}
void cConfigs::LoadCommands()
{	
	Commands.MaxLvl						= GetInt(300, 1000, 400,"LevelSettings", "MaxLevel", GreatDevelopCommon);
	//		drop		//
	Commands.IsDrop						= GetInt(0,	1,					1,		"Drop",			"DropEnabled",					GreatDevelopCmd);

	//		Reload		//
	Commands.IsReload					= GetInt(0,	1,					1,		"Reload",			"ReloadEnabled",					GreatDevelopCmd);

	//		gmove		//
	Commands.IsGmove					= GetInt(0,	1,					1,		"Gmove",		"GmoveEnabled",					GreatDevelopCmd);	 

	//		setpk
	Commands.IsSetPK					= GetInt(0, 1,					1,		"SetPK",		"SetPKEnabled",					GreatDevelopCmd);  

	//		gg			//																	 	
	Commands.IsGg						= GetInt(0, 1,					1,		"GPost",		"GgEnabled",					GreatDevelopCmd);	

	//		time		//
	Commands.IsTime						= GetInt(0, 1,					1,		"Time",			"TimeEnabled",					GreatDevelopCmd);  

	//		online		//
	Commands.IsOnline					= GetInt(0, 1,					1,		"OnlineCommand","OnlineEnabled",				GreatDevelopCmd); 

	//		status		//
	Commands.IsStatus					= GetInt(0, 1,					1,		"Status",		"StatusEnabled",				GreatDevelopCmd); 

	//		SetChar		//
	Commands.IsSetChar					= GetInt(0, 1,					1,		"SetChar",		"SetCharEnabled",				GreatDevelopCmd);
	//		bans		//
	Commands.IsBanPost					= GetInt(0, 1,					1,		"Bans",			"BanPostEnabled",				GreatDevelopCmd);	
	Commands.IsBanChar					= GetInt(0, 1,					1,		"Bans",			"BanCharEnabled",				GreatDevelopCmd);	
	Commands.IsBanAcc					= GetInt(0, 1,					1,		"Bans",			"BanAccEnabled",				GreatDevelopCmd);  	

	//		skin		//
	Commands.SkinEnabled				= GetInt(0, 1,									1,		"Skin",			"SkinEnabled",					GreatDevelopCmd);
	Commands.SkinOnlyForGm				= GetInt(0, 1,									0,		"Skin",			"SkinOnlyForGm",				GreatDevelopCmd);
	Commands.SkinLevelReq				= GetInt(0, Commands.MaxLvl,					250,	"Skin",			"SkinLevelReq",					GreatDevelopCmd);
	Commands.SkinPriceZen				= GetInt(0, 2000000000,							100000,	"Skin",			"SkinPriceZen",					GreatDevelopCmd);
	Commands.SkinPricePcPoint			= GetInt(0, PCPoint.sPoints.MaximumPCPoints,	1,		"Skin",			"SkinPricePcPoint",				GreatDevelopCmd);
	Commands.SkinPriceWCoin				= GetInt(0, PCPoint.sPoints.MaximumWCPoints,	1,		"Skin",			"SkinPriceWCoin",				GreatDevelopCmd);	

	//		post		//	 
	Commands.IsPost						= GetInt(0, 1,									1,		"Post",			"PostEnabled",					GreatDevelopCmd); 
	Commands.PostLvl					= GetInt(0, Commands.MaxLvl,					1,		"Post",			"PostLevelReq",					GreatDevelopCmd);				  
	Commands.PostPriceZen				= GetInt(0, 2000000000,							10000,	"Post",			"PostPriceZen",					GreatDevelopCmd);		 
	Commands.PostPricePCPoint			= GetInt(0, PCPoint.sPoints.MaximumPCPoints,	0,		"Post",			"PostPricePcPoint",				GreatDevelopCmd);	 
	Commands.PostPriceWCoin				= GetInt(0, PCPoint.sPoints.MaximumWCPoints,	0,		"Post",			"PostPriceWCoin",				GreatDevelopCmd);												
	Commands.PostColor					= GetInt(1, 3,									1,		"Post",			"PostColor",					GreatDevelopCmd);  
	Commands.PostDelay					= GetInt(0,	32767,								60,		"Post",			"PostDelay",					GreatDevelopCmd);

	//		add			//
	Commands.AddPointEnabled			= GetInt(0, 1,									1,		"AddCommand",	"AddPointEnabled",				GreatDevelopCmd);
	Commands.AddPointLevelReq			= GetInt(0, Commands.MaxLvl,					0,		"AddCommand",	"AddPointLevelReq",				GreatDevelopCmd);			   	
	Commands.AddPriceZen				= GetInt(0, 2000000000,							10000,	"AddCommand",	"AddPriceZen",					GreatDevelopCmd);		 
	Commands.AddPricePCPoint			= GetInt(0, PCPoint.sPoints.MaximumPCPoints,	0,		"AddCommand",	"AddPricePCPoint",				GreatDevelopCmd);	 
	Commands.AddPriceWCoin				= GetInt(0, PCPoint.sPoints.MaximumWCPoints,	0,		"AddCommand",	"AddPriceWCoin",				GreatDevelopCmd);	 
	Commands.MaxAddedStats				= GetInt(0, 65000,								0,		"AddCommand",	"MaxAddedStats",				GreatDevelopCmd);

	//		ware		//
	Commands.IsMultyVault				= GetInt(0,	1,									1,		"MultyVault",	"IsMultyVault",					GreatDevelopCmd);  
	Commands.NumberOfVaults				= GetInt(2,	99,									3,		"MultyVault",	"NumberOfVaults",				GreatDevelopCmd); 
	Commands.ZenForChange				= GetInt(0,	2000000000,							10000,	"MultyVault",	"ZenForChange",					GreatDevelopCmd);
	Commands.PcPointForChange			= GetInt(0, PCPoint.sPoints.MaximumPCPoints,	0,		"MultyVault",	"PcPointForChange",				GreatDevelopCmd);
	Commands.WCoinForChange				= GetInt(0,	PCPoint.sPoints.MaximumWCPoints,	0,		"MultyVault",	"WCoinForChange",				GreatDevelopCmd);

	//		pkclear		//	
	ClearCommand.Enabled				= GetInt(0, 1,									1,		"PkClear",		"PkClearEnabled",				GreatDevelopCmd);
	ClearCommand.OnlyForGm				= GetInt(0, 1,									0,		"PkClear",		"PkClearOnlyForGm",				GreatDevelopCmd);
	ClearCommand.Type					= GetInt(0, 2,									1,		"PkClear",		"PKClearType",					GreatDevelopCmd);	 																													
	ClearCommand.PriceZen				= GetInt(0, 2000000000,							100000, "PkClear",		"PkClearPriceZen",				GreatDevelopCmd);	 
	ClearCommand.PriceZenForAll			= GetInt(0, 2000000000,							1000000,"PkClear",		"PkClearPriceZenForAll",		GreatDevelopCmd);
	ClearCommand.PricePcPoints			= GetInt(0, PCPoint.sPoints.MaximumPCPoints,	20,		"PkClear",		"PkClearPricePcPoints",			GreatDevelopCmd);	 
	ClearCommand.PricePcPointsForAll	= GetInt(0, PCPoint.sPoints.MaximumPCPoints,	200,	"PkClear",		"PkClearPricePcPointsForAll",	GreatDevelopCmd);
	ClearCommand.PriceWCoins			= GetInt(0, PCPoint.sPoints.MaximumWCPoints,	2,		"PkClear",		"PkClearPriceWCoins",			GreatDevelopCmd);	 
	ClearCommand.PriceWCoinsForAll		= GetInt(0, PCPoint.sPoints.MaximumWCPoints,	20,		"PkClear",		"PkClearPriceWCoinsForAll",		GreatDevelopCmd);
	ClearCommand.LevelReq				= GetInt(0, Commands.MaxLvl,					100,	"PkClear",		"PkClearLevelReq",				GreatDevelopCmd);  
}