Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2012-07-04 18:07:14 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2012-07-04 18:07:14 +0400
commitb04718b1e436475e50e20982513119d504e789fa (patch)
treecd1d93eaf8b6ddcf3ec87bc6d5d4d9571bf0df44 /include
parentc815dc9d06a4b93b66453298adb9341fa8449b47 (diff)
Update Logitech SDK to v3.01 and make it optional for now (Options->Tweaks)
patch by nomisholman and armada651 This commit fixes ticket #1702. git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@5355 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'include')
-rw-r--r--include/lglcd/lglcd.h132
1 files changed, 106 insertions, 26 deletions
diff --git a/include/lglcd/lglcd.h b/include/lglcd/lglcd.h
index 17c12f9d9..e86c2ca20 100644
--- a/include/lglcd/lglcd.h
+++ b/include/lglcd/lglcd.h
@@ -16,6 +16,10 @@
02/23/2005 1.01 added callbacks, implemented changes as discussed
02/08/2006 1.02 added call to set foreground, sync update with confirmation
05/29/2006 1.03 Added device family feature
+ 12/03/2007 3.00 Added support for color devices and partial event notifications (arrival and removal)
+ 10/03/2008 3.01 Added more event notifications
+ 10/27/2008 3.01 Deprecated enumeration and index-based open; Applets should use lgLcdOpenByType() (and
+ possibly notifications)
*/
@@ -34,12 +38,25 @@ extern "C" {
#define LGLCD_INVALID_CONNECTION (-1)
#define LGLCD_INVALID_DEVICE (-1)
-// Soft-Button masks
+
+// Common Soft-Buttons available through the SDK
+#define LGLCDBUTTON_LEFT (0x00000100)
+#define LGLCDBUTTON_RIGHT (0x00000200)
+#define LGLCDBUTTON_OK (0x00000400)
+#define LGLCDBUTTON_CANCEL (0x00000800)
+#define LGLCDBUTTON_UP (0x00001000)
+#define LGLCDBUTTON_DOWN (0x00002000)
+#define LGLCDBUTTON_MENU (0x00004000)
+
+// Soft-Button masks. Kept for backwards compatibility
#define LGLCDBUTTON_BUTTON0 (0x00000001)
#define LGLCDBUTTON_BUTTON1 (0x00000002)
#define LGLCDBUTTON_BUTTON2 (0x00000004)
#define LGLCDBUTTON_BUTTON3 (0x00000008)
-
+#define LGLCDBUTTON_BUTTON4 (0x00000010)
+#define LGLCDBUTTON_BUTTON5 (0x00000020)
+#define LGLCDBUTTON_BUTTON6 (0x00000040)
+#define LGLCDBUTTON_BUTTON7 (0x00000080)
//************************************************************************
// lgLcdDeviceDesc
@@ -91,8 +108,16 @@ typedef lgLcdDeviceDescExA lgLcdDeviceDescEx;
//************************************************************************
#define LGLCD_BMP_FORMAT_160x43x1 (0x00000001)
+#define LGLCD_BMP_FORMAT_QVGAx32 (0x00000003)
#define LGLCD_BMP_WIDTH (160)
#define LGLCD_BMP_HEIGHT (43)
+#define LGLCD_BMP_BPP (1)
+#define LGLCD_BW_BMP_WIDTH (160)
+#define LGLCD_BW_BMP_HEIGHT (43)
+#define LGLCD_BW_BMP_BPP (1)
+#define LGLCD_QVGA_BMP_WIDTH (320)
+#define LGLCD_QVGA_BMP_HEIGHT (240)
+#define LGLCD_QVGA_BMP_BPP (4)
typedef struct
{
@@ -102,12 +127,27 @@ typedef struct
typedef struct
{
lgLcdBitmapHeader hdr;
- BYTE pixels[LGLCD_BMP_WIDTH*LGLCD_BMP_HEIGHT];
+ BYTE pixels[LGLCD_BMP_WIDTH * LGLCD_BMP_HEIGHT * LGLCD_BMP_BPP];
} lgLcdBitmap160x43x1;
+typedef struct
+{
+ lgLcdBitmapHeader hdr; // Format = LGLCD_BMP_FORMAT_QVGAx32
+ BYTE pixels[LGLCD_QVGA_BMP_WIDTH * LGLCD_QVGA_BMP_HEIGHT * LGLCD_QVGA_BMP_BPP];
+} lgLcdBitmapQVGAx32;
+//
+// Generic bitmap for use by both color and BW applets
+//
+typedef union
+{
+ lgLcdBitmapHeader hdr; // provides easy access to the header
+ lgLcdBitmap160x43x1 bmp_mono; // B/W bitmap data
+ lgLcdBitmapQVGAx32 bmp_qvga32; // Color bitmap data
+} lgLcdBitmap;
+
// Priorities
#define LGLCD_PRIORITY_IDLE_NO_SHOW (0)
-#define LGLCD_PRIORITY_BACKGROUND (64)
+#define LGLCD_PRIORITY_BACKGROUND (64)
#define LGLCD_PRIORITY_NORMAL (128)
#define LGLCD_PRIORITY_ALERT (255)
#define LGLCD_SYNC_UPDATE(priority) (0x80000000 | (priority))
@@ -119,30 +159,52 @@ typedef struct
#define LGLCD_LCD_FOREGROUND_APP_YES (1)
// Device family definitions
-#define LGLCD_DEVICE_FAMILY_KEYBOARD_G15 (0x00000001)
-#define LGLCD_DEVICE_FAMILY_SPEAKERS_Z10 (0x00000002)
-#define LGLCD_DEVICE_FAMILY_JACKBOX (0x00000004)
-#define LGLCD_DEVICE_FAMILY_LCDEMULATOR_G15 (0x00000008)
-#define LGLCD_DEVICE_FAMILY_RAINBOW (0x00000010)
-#define LGLCD_DEVICE_FAMILY_OTHER (0x80000000)
-
-// Capabilities of applets connecting to LCD Manager.
-// Only CAP_BASIC is supported as of 1.03 release.
+#define LGLCD_DEVICE_FAMILY_BW_160x43_GAMING (0x00000001)
+#define LGLCD_DEVICE_FAMILY_KEYBOARD_G15 (0x00000001)
+#define LGLCD_DEVICE_FAMILY_BW_160x43_AUDIO (0x00000002)
+#define LGLCD_DEVICE_FAMILY_SPEAKERS_Z10 (0x00000002)
+#define LGLCD_DEVICE_FAMILY_JACKBOX (0x00000004)
+#define LGLCD_DEVICE_FAMILY_BW_160x43_BASIC (0x00000008)
+#define LGLCD_DEVICE_FAMILY_LCDEMULATOR_G15 (0x00000008)
+#define LGLCD_DEVICE_FAMILY_RAINBOW (0x00000010)
+#define LGLCD_DEVICE_FAMILY_QVGA_BASIC (0x00000020)
+#define LGLCD_DEVICE_FAMILY_QVGA_GAMING (0x00000040)
+#define LGLCD_DEVICE_FAMILY_GAMEBOARD_G13 (0x00000080)
+#define LGLCD_DEVICE_FAMILY_KEYBOARD_G510 (0x00000100)
+#define LGLCD_DEVICE_FAMILY_OTHER (0x80000000)
+
+// Combinations of device families (device clans?)
+#define LGLCD_DEVICE_FAMILY_ALL_BW_160x43 (LGLCD_DEVICE_FAMILY_BW_160x43_GAMING \
+ | LGLCD_DEVICE_FAMILY_BW_160x43_AUDIO \
+ | LGLCD_DEVICE_FAMILY_JACKBOX \
+ | LGLCD_DEVICE_FAMILY_BW_160x43_BASIC \
+ | LGLCD_DEVICE_FAMILY_RAINBOW \
+ | LGLCD_DEVICE_FAMILY_GAMEBOARD_G13 \
+ | LGLCD_DEVICE_FAMILY_KEYBOARD_G510)
+
+#define LGLCD_DEVICE_FAMILY_ALL_QVGA (LGLCD_DEVICE_FAMILY_QVGA_BASIC \
+ | LGLCD_DEVICE_FAMILY_QVGA_GAMING)
+
+#define LGLCD_DEVICE_FAMILY_ALL (LGLCD_DEVICE_FAMILY_ALL_BW_160x43 \
+ | LGLCD_DEVICE_FAMILY_ALL_QVGA)
+
+
+// Capabilities of applets connecting to LCD Manager.
#define LGLCD_APPLET_CAP_BASIC (0x00000000)
-#define LGLCD_APPLET_CAP_CAN_CLOSE_DEVICE (0x00000001)
-#define LGLCD_APPLET_CAP_CAN_CLOSE_CONNECTION (0x00000002)
-#define LGLCD_APPLET_CAP_CAN_CLOSE_AND_REOPEN_DEVICE (0x00000004)
-#define LGLCD_APPLET_CAP_CAN_RUN_ON_MULTIPLE_DEVICES (0x00000008)
+#define LGLCD_APPLET_CAP_BW (0x00000001)
+#define LGLCD_APPLET_CAP_QVGA (0x00000002)
-// Notifications send by LCD Manager to applets connected to it.
-// Not implemented as of 1.03 release.
+// Notifications sent by LCD Manager to applets connected to it.
#define LGLCD_NOTIFICATION_DEVICE_ARRIVAL (0x00000001)
#define LGLCD_NOTIFICATION_DEVICE_REMOVAL (0x00000002)
-#define LGLCD_NOTIFICATION_CLOSE_DEVICE (0x00000003)
-#define LGLCD_NOTIFICATION_CLOSE_AND_REOPEN_DEVICE (0x00000004)
-#define LGLCD_NOTIFICATION_CLOSE_CONNECTION (0x00000005)
-#define LGLCD_NOTIFICATION_RUN_NEW_INSTANCE_ON_DEVICE (0x00000006)
+#define LGLCD_NOTIFICATION_CLOSE_CONNECTION (0x00000003)
+#define LGLCD_NOTIFICATION_APPLET_DISABLED (0x00000004)
+#define LGLCD_NOTIFICATION_APPLET_ENABLED (0x00000005)
+#define LGLCD_NOTIFICATION_TERMINATE_APPLET (0x00000006)
+// Device types used in notifications
+#define LGLCD_DEVICE_BW (0x00000001)
+#define LGLCD_DEVICE_QVGA (0x00000002)
//************************************************************************
// Callbacks
@@ -158,7 +220,7 @@ typedef DWORD (WINAPI *lgLcdOnConfigureCB)(IN int connection,
IN const PVOID pContext);
// Callback used to notify client of events, such as device arrival, ...
-// Not implemented as of 1.03 release.
+// Arrival, removal, applet enable/disable supported as of version 3.0.
typedef DWORD (WINAPI *lgLcdOnNotificationCB)(IN int connection,
IN const PVOID pContext,
IN DWORD notificationCode,
@@ -267,7 +329,7 @@ typedef lgLcdConnectContextExA lgLcdConnectContextEx;
#endif
//************************************************************************
-// lgLcdOpenContext
+// lgLcdOpenContext & lgLcdOpenByTypeContext
//************************************************************************
typedef struct
@@ -287,6 +349,15 @@ typedef struct
int device;
} lgLcdOpenContext;
+typedef struct
+{
+ int connection;
+ // Device type to open (either LGLCD_DEVICE_BW or LGLCD_DEVICE_QVGA)
+ int deviceType;
+ lgLcdSoftbuttonsChangedContext onSoftbuttonsChanged;
+ // --> Device handle
+ int device;
+} lgLcdOpenByTypeContext;
//************************************************************************
@@ -349,7 +420,11 @@ DWORD WINAPI lgLcdEnumerateExA(IN int connection, IN int index,
// device handle in all calls that access the LCD.
DWORD WINAPI lgLcdOpen(IN OUT lgLcdOpenContext *ctx);
-// Closes the LCD. Must be paired with lgLcdOpen.
+// Opens an LCD of the specified type. If no such device is available, returns
+// an error.
+DWORD WINAPI lgLcdOpenByType(IN OUT lgLcdOpenByTypeContext *ctx);
+
+// Closes the LCD. Must be paired with lgLcdOpen()/lgLcdOpenByType().
DWORD WINAPI lgLcdClose(IN int device);
// Reads the state of the soft buttons for the device.
@@ -365,6 +440,11 @@ DWORD WINAPI lgLcdUpdateBitmap(IN int device,
// any type of rotation among other applications on the LCD.
DWORD WINAPI lgLcdSetAsLCDForegroundApp(IN int device, IN int foregroundYesNoFlag);
+// These API calls are being deprecated. Consider using lgLcdOpenByType() and
+// device arrival/removal notifications instead.
+#pragma deprecated(lgLcdEnumerate,lgLcdEnumerateExA,lgLcdEnumerateExW,lgLcdOpen)
+
+
#pragma pack(pop)
#ifdef __cplusplus