Compare commits
2 Commits
pull-misc-
...
pull-input
Author | SHA1 | Date | |
---|---|---|---|
|
d58b912271 | ||
|
7f5e07d9b3 |
@@ -11,92 +11,99 @@
|
|||||||
; (Com+Lpt)" from the list. Click "Have a disk". Select this file.
|
; (Com+Lpt)" from the list. Click "Have a disk". Select this file.
|
||||||
; Procedure may vary a bit depending on the windows version.
|
; Procedure may vary a bit depending on the windows version.
|
||||||
|
|
||||||
; This file covers all options: pci-serial, pci-serial-2x, pci-serial-4x
|
; FIXME: This file covers the single port version only.
|
||||||
; for both 32 and 64 bit platforms.
|
|
||||||
|
|
||||||
[Version]
|
[Version]
|
||||||
Signature="$Windows NT$"
|
Signature="$CHICAGO$"
|
||||||
Class=MultiFunction
|
Class=Ports
|
||||||
ClassGUID={4d36e971-e325-11ce-bfc1-08002be10318}
|
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
|
||||||
Provider=%QEMU%
|
Provider=%QEMU%
|
||||||
DriverVer=12/29/2013,1.3.0
|
DriverVer=09/24/2012,1.3.0
|
||||||
[ControlFlags]
|
|
||||||
ExcludeFromSelect=*
|
[SourceDisksNames]
|
||||||
|
3426=windows cd
|
||||||
|
|
||||||
|
[SourceDisksFiles]
|
||||||
|
serial.sys = 3426
|
||||||
|
serenum.sys = 3426
|
||||||
|
|
||||||
|
[DestinationDirs]
|
||||||
|
DefaultDestDir = 11 ;LDID_SYS
|
||||||
|
ComPort.NT.Copy = 12 ;DIRID_DRIVERS
|
||||||
|
SerialEnumerator.NT.Copy=12 ;DIRID_DRIVERS
|
||||||
|
|
||||||
|
; Drivers
|
||||||
|
;----------------------------------------------------------
|
||||||
[Manufacturer]
|
[Manufacturer]
|
||||||
%QEMU%=QEMU,NTx86,NTAMD64
|
%QEMU%=QEMU,NTx86
|
||||||
|
|
||||||
[QEMU.NTx86]
|
[QEMU.NTx86]
|
||||||
%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002
|
%QEMU-PCI_SERIAL.DeviceDesc% = ComPort, "PCI\VEN_1b36&DEV_0002&CC_0700"
|
||||||
%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003
|
|
||||||
%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004
|
|
||||||
|
|
||||||
[QEMU.NTAMD64]
|
; COM sections
|
||||||
%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002
|
;----------------------------------------------------------
|
||||||
%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003
|
[ComPort.AddReg]
|
||||||
%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004
|
HKR,,PortSubClass,1,01
|
||||||
|
|
||||||
[ComPort_inst1]
|
[ComPort.NT]
|
||||||
Include=mf.inf
|
AddReg=ComPort.AddReg, ComPort.NT.AddReg
|
||||||
Needs=MFINSTALL.mf
|
LogConfig=caa
|
||||||
|
SyssetupPnPFlags = 1
|
||||||
|
|
||||||
[ComPort_inst2]
|
[ComPort.NT.HW]
|
||||||
Include=mf.inf
|
AddReg=ComPort.NT.HW.AddReg
|
||||||
Needs=MFINSTALL.mf
|
|
||||||
|
|
||||||
[ComPort_inst4]
|
[ComPort.NT.AddReg]
|
||||||
Include=mf.inf
|
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
|
||||||
Needs=MFINSTALL.mf
|
|
||||||
|
|
||||||
[ComPort_inst1.HW]
|
[ComPort.NT.HW.AddReg]
|
||||||
AddReg=ComPort_inst1.RegHW
|
HKR,,"UpperFilters",0x00010000,"serenum"
|
||||||
|
|
||||||
[ComPort_inst2.HW]
|
;-------------- Service installation
|
||||||
AddReg=ComPort_inst2.RegHW
|
; Port Driver (function driver for this device)
|
||||||
|
[ComPort.NT.Services]
|
||||||
|
AddService = Serial, 0x00000002, Serial_Service_Inst, Serial_EventLog_Inst
|
||||||
|
AddService = Serenum,,Serenum_Service_Inst
|
||||||
|
|
||||||
[ComPort_inst4.HW]
|
; -------------- Serial Port Driver install sections
|
||||||
AddReg=ComPort_inst4.RegHW
|
[Serial_Service_Inst]
|
||||||
|
DisplayName = %Serial.SVCDESC%
|
||||||
|
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||||
|
StartType = 1 ; SERVICE_SYSTEM_START (this driver may do detection)
|
||||||
|
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
|
||||||
|
ServiceBinary = %12%\serial.sys
|
||||||
|
LoadOrderGroup = Extended base
|
||||||
|
|
||||||
[ComPort_inst1.Services]
|
; -------------- Serenum Driver install section
|
||||||
Include=mf.inf
|
[Serenum_Service_Inst]
|
||||||
Needs=MFINSTALL.mf.Services
|
DisplayName = %Serenum.SVCDESC%
|
||||||
|
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||||
|
StartType = 3 ; SERVICE_DEMAND_START
|
||||||
|
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||||
|
ServiceBinary = %12%\serenum.sys
|
||||||
|
LoadOrderGroup = PNP Filter
|
||||||
|
|
||||||
[ComPort_inst2.Services]
|
[Serial_EventLog_Inst]
|
||||||
Include=mf.inf
|
AddReg = Serial_EventLog_AddReg
|
||||||
Needs=MFINSTALL.mf.Services
|
|
||||||
|
|
||||||
[ComPort_inst4.Services]
|
[Serial_EventLog_AddReg]
|
||||||
Include=mf.inf
|
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\serial.sys"
|
||||||
Needs=MFINSTALL.mf.Services
|
HKR,,TypesSupported,0x00010001,7
|
||||||
|
|
||||||
[ComPort_inst1.RegHW]
|
; The following sections are COM port resource configs.
|
||||||
HKR,Child0000,HardwareID,,*PNP0501
|
; Section name format means:
|
||||||
HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
|
; Char 1 = c (COM port)
|
||||||
HKR,Child0000,ResourceMap,1,02
|
; Char 2 = I/O config: 1 (3f8), 2 (2f8), 3 (3e8), 4 (2e8), a (any)
|
||||||
|
; Char 3 = IRQ config: #, a (any)
|
||||||
|
|
||||||
[ComPort_inst2.RegHW]
|
[caa] ; Any base, any IRQ
|
||||||
HKR,Child0000,HardwareID,,*PNP0501
|
ConfigPriority=HARDRECONFIG
|
||||||
HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
|
IOConfig=8@100-ffff%fff8(3ff::)
|
||||||
HKR,Child0000,ResourceMap,1,02
|
IRQConfig=S:3,4,5,7,9,10,11,12,14,15
|
||||||
HKR,Child0001,HardwareID,,*PNP0501
|
|
||||||
HKR,Child0001,VaryingResourceMap,1,00, 08,00,00,00, 08,00,00,00
|
|
||||||
HKR,Child0001,ResourceMap,1,02
|
|
||||||
|
|
||||||
[ComPort_inst4.RegHW]
|
|
||||||
HKR,Child0000,HardwareID,,*PNP0501
|
|
||||||
HKR,Child0000,VaryingResourceMap,1,00, 00,00,00,00, 08,00,00,00
|
|
||||||
HKR,Child0000,ResourceMap,1,02
|
|
||||||
HKR,Child0001,HardwareID,,*PNP0501
|
|
||||||
HKR,Child0001,VaryingResourceMap,1,00, 08,00,00,00, 08,00,00,00
|
|
||||||
HKR,Child0001,ResourceMap,1,02
|
|
||||||
HKR,Child0002,HardwareID,,*PNP0501
|
|
||||||
HKR,Child0002,VaryingResourceMap,1,00, 10,00,00,00, 08,00,00,00
|
|
||||||
HKR,Child0002,ResourceMap,1,02
|
|
||||||
HKR,Child0003,HardwareID,,*PNP0501
|
|
||||||
HKR,Child0003,VaryingResourceMap,1,00, 18,00,00,00, 08,00,00,00
|
|
||||||
HKR,Child0003,ResourceMap,1,02
|
|
||||||
|
|
||||||
[Strings]
|
[Strings]
|
||||||
QEMU="QEMU"
|
QEMU="QEMU"
|
||||||
QEMU-PCI_SERIAL_1_PORT="1x QEMU PCI Serial Card"
|
QEMU-PCI_SERIAL.DeviceDesc="QEMU Serial PCI Card"
|
||||||
QEMU-PCI_SERIAL_2_PORT="2x QEMU PCI Serial Card"
|
|
||||||
QEMU-PCI_SERIAL_4_PORT="4x QEMU PCI Serial Card"
|
Serial.SVCDESC = "Serial port driver"
|
||||||
|
Serenum.SVCDESC = "Serenum Filter Driver"
|
||||||
|
23
ui/gtk.c
23
ui/gtk.c
@@ -683,6 +683,27 @@ static gboolean gd_button_event(GtkWidget *widget, GdkEventButton *button,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean gd_scroll_event(GtkWidget *widget, GdkEventScroll *scroll,
|
||||||
|
void *opaque)
|
||||||
|
{
|
||||||
|
GtkDisplayState *s = opaque;
|
||||||
|
InputButton btn;
|
||||||
|
|
||||||
|
if (scroll->direction == GDK_SCROLL_UP) {
|
||||||
|
btn = INPUT_BUTTON_WHEEL_UP;
|
||||||
|
} else if (scroll->direction == GDK_SCROLL_DOWN) {
|
||||||
|
btn = INPUT_BUTTON_WHEEL_DOWN;
|
||||||
|
} else {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
qemu_input_queue_btn(s->dcl.con, btn, true);
|
||||||
|
qemu_input_event_sync();
|
||||||
|
qemu_input_queue_btn(s->dcl.con, btn, false);
|
||||||
|
qemu_input_event_sync();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean gd_key_event(GtkWidget *widget, GdkEventKey *key, void *opaque)
|
static gboolean gd_key_event(GtkWidget *widget, GdkEventKey *key, void *opaque)
|
||||||
{
|
{
|
||||||
GtkDisplayState *s = opaque;
|
GtkDisplayState *s = opaque;
|
||||||
@@ -1229,6 +1250,8 @@ static void gd_connect_signals(GtkDisplayState *s)
|
|||||||
G_CALLBACK(gd_button_event), s);
|
G_CALLBACK(gd_button_event), s);
|
||||||
g_signal_connect(s->drawing_area, "button-release-event",
|
g_signal_connect(s->drawing_area, "button-release-event",
|
||||||
G_CALLBACK(gd_button_event), s);
|
G_CALLBACK(gd_button_event), s);
|
||||||
|
g_signal_connect(s->drawing_area, "scroll-event",
|
||||||
|
G_CALLBACK(gd_scroll_event), s);
|
||||||
g_signal_connect(s->drawing_area, "key-press-event",
|
g_signal_connect(s->drawing_area, "key-press-event",
|
||||||
G_CALLBACK(gd_key_event), s);
|
G_CALLBACK(gd_key_event), s);
|
||||||
g_signal_connect(s->drawing_area, "key-release-event",
|
g_signal_connect(s->drawing_area, "key-release-event",
|
||||||
|
@@ -333,6 +333,7 @@ QEMUPutKbdEntry *qemu_add_kbd_event_handler(QEMUPutKBDEvent *func, void *opaque)
|
|||||||
entry->opaque = opaque;
|
entry->opaque = opaque;
|
||||||
entry->s = qemu_input_handler_register((DeviceState *)entry,
|
entry->s = qemu_input_handler_register((DeviceState *)entry,
|
||||||
&legacy_kbd_handler);
|
&legacy_kbd_handler);
|
||||||
|
qemu_input_handler_activate(entry->s);
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user