1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include <stdint.h>
#include "resource.h"
#include "rest.h"
#include "npifc.h"
HINSTANCE hInst;
UINT_PTR timer = 0;
VOID CALLBACK TimerProcedure(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
(void) uMsg;
(void) idEvent;
(void) dwTime;
tir_data_t td;
npifc_getdata(&td);
SetDlgItemInt(hwnd, IDC_PITCH, td.pitch, true);
SetDlgItemInt(hwnd, IDC_ROLL, td.roll, true);
SetDlgItemInt(hwnd, IDC_YAW, td.yaw, true);
SetDlgItemInt(hwnd, IDC_X1, td.tx, true);
SetDlgItemInt(hwnd, IDC_Y1, td.ty, true);
SetDlgItemInt(hwnd, IDC_Z1, td.tz, true);
SetDlgItemInt(hwnd, IDC_X2, td.padding[0], true);
SetDlgItemInt(hwnd, IDC_Y2, td.padding[1], true);
SetDlgItemInt(hwnd, IDC_Z2, td.padding[2], true);
SetDlgItemInt(hwnd, IDC_X3, td.padding[3], true);
SetDlgItemInt(hwnd, IDC_Y3, td.padding[4], true);
SetDlgItemInt(hwnd, IDC_Z3, td.padding[5], true);
SetDlgItemInt(hwnd, IDC_S, td.status, true);
SetDlgItemInt(hwnd, IDC_F, td.frame, true);
}
BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
(void) lParam;
switch(uMsg)
{
case WM_INITDIALOG:
SetDlgItemInt(hwndDlg, IDC_APPID, 2307, true);
return TRUE;
case WM_CLOSE:
EndDialog(hwndDlg, 0);
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
/*
* TODO: Add more control ID's, when needed.
*/
case IDQUIT:
npifc_close();
EndDialog(hwndDlg, 0);
return TRUE;
case IDSTART:
int ok;
int num = GetDlgItemInt(hwndDlg, IDC_APPID, (BOOL*)&ok, false);
if(!ok){
num = 2307;
}
game_desc_t gd;
if(timer != 0){
KillTimer(hwndDlg, timer);
timer = 0;
}
if(game_data_get_desc(num, &gd)){
printf("Application ID: %d - %s\n", num, gd.name);
if(npifc_init(hwndDlg, num)){
timer = SetTimer(hwndDlg, 0, 50, TimerProcedure);
}
}else{
printf("Unknown Application ID: %d\n", num);
}
break;
}
}
return FALSE;
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
(void) hPrevInstance;
(void) lpCmdLine;
(void) nShowCmd;
hInst = hInstance;
// The user interface is a modal dialog box
return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DialogProc);
}
|