diff --git a/pyjoycon/__init__.py b/pyjoycon/__init__.py index 3d23498..22ff1e9 100644 --- a/pyjoycon/__init__.py +++ b/pyjoycon/__init__.py @@ -4,8 +4,8 @@ from .event import ButtonEventJoyCon from .device import get_device_ids, get_ids_of_type from .device import is_id_L -from .device import get_R_ids, get_L_ids -from .device import get_R_id, get_L_id +from .device import get_R_ids, get_L_ids, get_PRO_ids +from .device import get_R_id, get_L_id, get_PRO_id __version__ = "0.2.4" @@ -19,6 +19,8 @@ "get_L_ids", "get_R_id", "get_R_ids", + "get_PRO_id", + "get_PRO_ids", "get_device_ids", "get_ids_of_type", "is_id_L", diff --git a/pyjoycon/constants.py b/pyjoycon/constants.py index 7a72e89..5b36412 100644 --- a/pyjoycon/constants.py +++ b/pyjoycon/constants.py @@ -1,4 +1,5 @@ JOYCON_VENDOR_ID = 0x057E JOYCON_L_PRODUCT_ID = 0x2006 JOYCON_R_PRODUCT_ID = 0x2007 -JOYCON_PRODUCT_IDS = (JOYCON_L_PRODUCT_ID, JOYCON_R_PRODUCT_ID) +JOYCON_PRO_PRODUCT_ID = 0x2009 +JOYCON_PRODUCT_IDS = (JOYCON_L_PRODUCT_ID, JOYCON_R_PRODUCT_ID, JOYCON_PRO_PRODUCT_ID) diff --git a/pyjoycon/device.py b/pyjoycon/device.py index 273e587..f1c30b1 100644 --- a/pyjoycon/device.py +++ b/pyjoycon/device.py @@ -1,6 +1,6 @@ import hid from .constants import JOYCON_VENDOR_ID, JOYCON_PRODUCT_IDS -from .constants import JOYCON_L_PRODUCT_ID, JOYCON_R_PRODUCT_ID +from .constants import JOYCON_L_PRODUCT_ID, JOYCON_R_PRODUCT_ID, JOYCON_PRO_PRODUCT_ID def get_device_ids(debug=False): @@ -42,12 +42,14 @@ def get_ids_of_type(lr, **kw): """ returns a list of tuples like `(vendor_id, product_id, serial_number)` - arg: lr : str : put `R` or `L` + arg: lr : str : put `R` or `L` or `PRO` """ if lr.lower() == "l": product_id = JOYCON_L_PRODUCT_ID - else: + elif lr.lower() == "r": product_id = JOYCON_R_PRODUCT_ID + else: + product_id = JOYCON_PRO_PRODUCT_ID return [i for i in get_device_ids(**kw) if i[1] == product_id] @@ -60,6 +62,11 @@ def get_L_ids(**kw): """returns a list of tuple like `(vendor_id, product_id, serial_number)`""" return get_ids_of_type("L", **kw) + +def get_PRO_ids(**kw): + """returns a list of tuple like `(vendor_id, product_id, serial_number)`""" + return get_ids_of_type("PRO", **kw) + def get_R_id(**kw): """returns a tuple like `(vendor_id, product_id, serial_number)`""" @@ -75,3 +82,11 @@ def get_L_id(**kw): if not ids: return (None, None, None) return ids[0] + + +def get_PRO_id(**kw): + """returns a tuple like `(vendor_id, product_id, serial_number)`""" + ids = get_PRO_ids(**kw) + if not ids: + return (None, None, None) + return ids[0] \ No newline at end of file