def GetMyDevicePath(self): path = GetDevicePath( self.devicePath, self.vendorID, self.productID, self.versionNumber, self.useDeviceIndex, self.deviceIndex, self.noOtherPort) return path;
def GetMyDevicePath(self): path = GetDevicePath( None, VENDOR_ID, PRODUCT_ID, None, 0, True, 0) return path;
def Configure(self, eventName = "", enduringEvents = True, rawDataEvents = False, # no longer used ps3DataEvents = False, # no longer used ps3Release = False, ps3Zone = False, # no longer used shortKeyTime = 0.0, # no longer used longKeyTime = 0.0, # no longer used sleepTime = 5.0, hibernateTime = 60.0, noOtherPort = False, devicePath = None, vendorID = None, vendorString = None, productID = None, productString = None, versionNumber = None, # For backwards-compatibility with 2.0.2 and 3.0.0 - if a new config option is added this can just be replaced dummy = None, useDeviceIndex = False, deviceIndex = 0 ): deviceList = GetDeviceDescriptions() panel = eg.ConfigPanel(self, resizable=True) #building dialog hidList = wx.ListCtrl(panel, -1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.LC_REPORT | wx.LC_SINGLE_SEL) #create GUI hidList.InsertColumn(0, self.text.deviceName) hidList.InsertColumn(1, self.text.manufacturer) hidList.InsertColumn(2, self.text.connected) path = GetDevicePath( devicePath, vendorID, productID, versionNumber, noOtherPort, useDeviceIndex, deviceIndex, deviceList) #fill list devices = {} idx = 0 for item in deviceList: # eg.Print("VID=%X, PID=%X, name=%s" %(item.vendorId, item.productId, item.productString)) # filter device list - list only match VID:PID if( ( ( item.vendorId == 0x054C or item.vendorId == 0x609 ) and item.productId == 0x0306 ) or item.devicePath == path or item.productString == 'BD Remote Control' ): idx = hidList.InsertStringItem(sys.maxint, item.productString) hidList.SetStringItem(idx, 1, item.vendorString) hidList.SetStringItem(idx, 2, self.text.yes) if item.devicePath == path: hidList.Select(idx) devices[idx] = item #add not connected device to bottom of list if not path and devicePath: item = DeviceDescription( devicePath, vendorID, vendorString, productID, productString, versionNumber) idx = hidList.InsertStringItem(sys.maxint, item.productString) hidList.SetStringItem(idx, 1, item.vendorString) hidList.SetStringItem(idx, 2, self.text.no) hidList.Select(idx) devices[idx] = item #no device selected, disable ok and apply button panel.EnableButtons(hidList.GetFirstSelected() != -1) #layout for i in range(hidList.GetColumnCount()): hidList.SetColumnWidth(i, wx.LIST_AUTOSIZE_USEHEADER) size = hidList.GetColumnWidth(i) hidList.SetColumnWidth(i, wx.LIST_AUTOSIZE) hidList.SetColumnWidth(i, max(size, hidList.GetColumnWidth(i) + 5)) panel.sizer.Add(hidList, 1, flag = wx.EXPAND) #sizers optionsSizer = wx.GridBagSizer(0, 5) #eventname optionsSizer.Add( wx.StaticText(panel, -1, self.text.eventName), (0, 0), flag = wx.ALIGN_CENTER_VERTICAL) eventNameCtrl = wx.TextCtrl(panel, value = eventName) eventNameCtrl.SetMaxLength(32) optionsSizer.Add(eventNameCtrl, (0, 1), (1, 2), flag = wx.EXPAND) #checkbox for enduring event option enduringEventsCtrl = wx.CheckBox(panel, -1, self.text.enduringEvents) enduringEventsCtrl.SetValue(enduringEvents) optionsSizer.Add(enduringEventsCtrl, (1, 0), (1, 3)) #text optionsSizer.Add( wx.StaticText(panel, -1, self.text.multipleDeviceOptions), (3, 0), (1, 3), flag = wx.ALIGN_CENTER_VERTICAL) #checkbox for use first device useDeviceIndexCtrl = wx.CheckBox(panel, -1, self.text.useDeviceIndex) useDeviceIndexCtrl.SetValue(useDeviceIndex) optionsSizer.Add(useDeviceIndexCtrl, (4, 0), (1, 2), flag = wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL) #device index spin control deviceIndexCtrl = eg.SpinIntCtrl(panel, -1, deviceIndex, 0, 99, size=(100,-1)) optionsSizer.Add(deviceIndexCtrl, (4, 2), (1, 1)) #checkbox for no other port option noOtherPortCtrl = wx.CheckBox(panel, -1, self.text.noOtherPort) noOtherPortCtrl.SetValue(noOtherPort) optionsSizer.Add(noOtherPortCtrl, (5, 0), (1, 3)) panel.sizer.Add(optionsSizer, 0, wx.TOP, 10) def OnHidListSelect(event): panel.EnableButtons(hidList.GetFirstSelected() != -1) event.Skip() def OnUseDeviceIndexCtrlChange(event): noOtherPortCtrl.Enable(not useDeviceIndexCtrl.GetValue()) deviceIndexCtrl.Enable(useDeviceIndexCtrl.GetValue()) event.Skip() def OnNoOtherPortChange(event): useDeviceIndexCtrl.Enable(not noOtherPortCtrl.GetValue()) deviceIndexCtrl.Enable(not noOtherPortCtrl.GetValue()) event.Skip() OnUseDeviceIndexCtrlChange(wx.CommandEvent()) OnNoOtherPortChange(wx.CommandEvent()) useDeviceIndexCtrl.Bind(wx.EVT_CHECKBOX, OnUseDeviceIndexCtrlChange) noOtherPortCtrl.Bind(wx.EVT_CHECKBOX, OnNoOtherPortChange) hidList.Bind(wx.EVT_LIST_ITEM_SELECTED, OnHidListSelect) hidList.Bind(wx.EVT_LIST_ITEM_DESELECTED, OnHidListSelect) ###################################################################### panel.sizer.Add((15,15)) #sizers ps3GroupSizer = wx.StaticBoxSizer( wx.StaticBox(panel, -1, self.text.ps3Settings), wx.VERTICAL ) ps3Sizer = wx.GridBagSizer(0, 5) #checkbox for ps3 release event ps3ReleaseCtrl = wx.CheckBox(panel, -1, self.text.ps3Release) ps3ReleaseCtrl.SetValue(ps3Release) ps3Sizer.Add(ps3ReleaseCtrl, (0, 0), (1, 3)) #sleep time ps3Sizer.Add( wx.StaticText(panel, -1, self.text.sleepTime), (2, 0), flag = wx.ALIGN_CENTER_VERTICAL) sleepTimeCtrl = eg.SpinNumCtrl( panel, -1, sleepTime, size=(200,-1), integerWidth=7, increment=1.00 ) ps3Sizer.Add(sleepTimeCtrl, (2, 1), flag = wx.EXPAND) ps3Sizer.Add( wx.StaticText(panel, -1, self.text.seconds), (2, 2), (1, 2), flag = wx.ALIGN_CENTER_VERTICAL) #hibernate time ps3Sizer.Add( wx.StaticText(panel, -1, self.text.hibernateTime), (3, 0), flag = wx.ALIGN_CENTER_VERTICAL) hibernateTimeCtrl = eg.SpinNumCtrl( panel, -1, hibernateTime, size=(200,-1), integerWidth=7, increment=1.00 ) ps3Sizer.Add(hibernateTimeCtrl, (3, 1), flag = wx.EXPAND) ps3Sizer.Add( wx.StaticText(panel, -1, self.text.seconds), (3, 2), (1, 2), flag = wx.ALIGN_CENTER_VERTICAL) ps3GroupSizer.Add(ps3Sizer, 0, wx.ALL, 10) panel.sizer.Add(ps3GroupSizer, 0, wx.EXPAND) def OnEnduringEventsChange(event): ps3ReleaseCtrl.Enable( not enduringEventsCtrl.GetValue() ) event.Skip() OnEnduringEventsChange(wx.CommandEvent()) enduringEventsCtrl.Bind(wx.EVT_CHECKBOX, OnEnduringEventsChange) ###################################################################### while panel.Affirmed(): device = devices[hidList.GetFirstSelected()] panel.SetResult( eventNameCtrl.GetValue(), enduringEventsCtrl.GetValue(), False, True, ps3ReleaseCtrl.GetValue(), False, 0.0, 0.0, sleepTimeCtrl.GetValue(), hibernateTimeCtrl.GetValue(), noOtherPortCtrl.GetValue(), device.devicePath, device.vendorId, device.vendorString, device.productId, device.productString, device.versionNumber, useDeviceIndexCtrl.GetValue(), )
def Configure(self, eventName="", enduringEvents=True, rawDataEvents=False, noOtherPort=False, devicePath=None, vendorID=None, vendorString=None, productID=None, productString=None, versionNumber=None, useDeviceIndex=False, deviceIndex=0): deviceList = GetDeviceDescriptions() panel = eg.ConfigPanel(self, resizable=True) #building dialog hidList = wx.ListCtrl(panel, -1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.LC_REPORT | wx.LC_SINGLE_SEL) #create GUI hidList.InsertColumn(0, Text.deviceName) hidList.InsertColumn(1, Text.manufacturer) hidList.InsertColumn(2, Text.connected) path = GetDevicePath(devicePath, vendorID, productID, versionNumber, noOtherPort, useDeviceIndex, deviceIndex, deviceList) #fill list devices = {} idx = 0 for item in deviceList: idx = hidList.InsertStringItem(sys.maxint, item.productString) hidList.SetStringItem(idx, 1, item.vendorString) hidList.SetStringItem(idx, 2, Text.yes) if item.devicePath == path: hidList.Select(idx) devices[idx] = item #add not connected device to bottom of list if not path and devicePath: item = DeviceDescription(devicePath, vendorID, vendorString, productID, productString, versionNumber) idx = hidList.InsertStringItem(sys.maxint, item.productString) hidList.SetStringItem(idx, 1, item.vendorString) hidList.SetStringItem(idx, 2, Text.no) hidList.Select(idx) devices[idx] = item #no device selected, disable ok and apply button panel.EnableButtons(hidList.GetFirstSelected() != -1) #layout for i in range(hidList.GetColumnCount()): hidList.SetColumnWidth(i, wx.LIST_AUTOSIZE_USEHEADER) size = hidList.GetColumnWidth(i) hidList.SetColumnWidth(i, wx.LIST_AUTOSIZE) hidList.SetColumnWidth(i, max(size, hidList.GetColumnWidth(i) + 5)) panel.sizer.Add(hidList, 1, flag=wx.EXPAND) #sizers optionsSizer = wx.GridBagSizer(0, 5) #eventname optionsSizer.Add(wx.StaticText(panel, -1, Text.eventName), (0, 0), flag=wx.ALIGN_CENTER_VERTICAL) eventNameCtrl = wx.TextCtrl(panel, value=eventName) eventNameCtrl.SetMaxLength(32) optionsSizer.Add(eventNameCtrl, (0, 1), (1, 2), flag=wx.EXPAND) #checkbox for enduring event option enduringEventsCtrl = wx.CheckBox(panel, -1, Text.enduringEvents) enduringEventsCtrl.SetValue(enduringEvents) optionsSizer.Add(enduringEventsCtrl, (1, 0), (1, 3)) #checkbox for raw data events rawDataEventsCtrl = wx.CheckBox(panel, -1, Text.rawDataEvents) rawDataEventsCtrl.SetValue(rawDataEvents) optionsSizer.Add(rawDataEventsCtrl, (2, 0), (1, 3)) #text optionsSizer.Add(wx.StaticText(panel, -1, Text.multipleDeviceOptions), (3, 0), (1, 3), flag=wx.ALIGN_CENTER_VERTICAL) #checkbox for use first device useDeviceIndexCtrl = wx.CheckBox(panel, -1, Text.useDeviceIndex) useDeviceIndexCtrl.SetValue(useDeviceIndex) optionsSizer.Add(useDeviceIndexCtrl, (4, 0), (1, 2), flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL) #device index spin control deviceIndexCtrl = eg.SpinIntCtrl(panel, -1, deviceIndex, 0, 99, size=(100, -1)) optionsSizer.Add(deviceIndexCtrl, (4, 2), (1, 1)) #checkbox for no other port option noOtherPortCtrl = wx.CheckBox(panel, -1, Text.noOtherPort) noOtherPortCtrl.SetValue(noOtherPort) optionsSizer.Add(noOtherPortCtrl, (5, 0), (1, 3)) panel.sizer.Add(optionsSizer, 0, wx.TOP, 10) def OnHidListSelect(event): panel.EnableButtons(hidList.GetFirstSelected() != -1) event.Skip() def OnRawDataEventsChange(event): enduringEventsCtrl.Enable(not rawDataEventsCtrl.GetValue()) event.Skip() def OnEnduringEventsChange(event): rawDataEventsCtrl.Enable(not enduringEventsCtrl.GetValue()) event.Skip() def OnUseDeviceIndexCtrlChange(event): noOtherPortCtrl.Enable(not useDeviceIndexCtrl.GetValue()) deviceIndexCtrl.Enable(useDeviceIndexCtrl.GetValue()) event.Skip() def OnNoOtherPortChange(event): useDeviceIndexCtrl.Enable(not noOtherPortCtrl.GetValue()) deviceIndexCtrl.Enable(not noOtherPortCtrl.GetValue()) event.Skip() OnRawDataEventsChange(wx.CommandEvent()) OnEnduringEventsChange(wx.CommandEvent()) OnUseDeviceIndexCtrlChange(wx.CommandEvent()) OnNoOtherPortChange(wx.CommandEvent()) rawDataEventsCtrl.Bind(wx.EVT_CHECKBOX, OnRawDataEventsChange) enduringEventsCtrl.Bind(wx.EVT_CHECKBOX, OnEnduringEventsChange) useDeviceIndexCtrl.Bind(wx.EVT_CHECKBOX, OnUseDeviceIndexCtrlChange) noOtherPortCtrl.Bind(wx.EVT_CHECKBOX, OnNoOtherPortChange) hidList.Bind(wx.EVT_LIST_ITEM_SELECTED, OnHidListSelect) hidList.Bind(wx.EVT_LIST_ITEM_DESELECTED, OnHidListSelect) while panel.Affirmed(): device = devices[hidList.GetFirstSelected()] panel.SetResult( eventNameCtrl.GetValue(), enduringEventsCtrl.GetValue(), rawDataEventsCtrl.GetValue(), noOtherPortCtrl.GetValue(), device.devicePath, device.vendorId, device.vendorString, device.productId, device.productString, device.versionNumber, useDeviceIndexCtrl.GetValue(), deviceIndexCtrl.GetValue(), )