Changeset 7300 for trunk/src/kernel32/hmparport.cpp
- Timestamp:
- Nov 8, 2001, 4:10:39 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmparport.cpp
r7298 r7300 1 /* $Id: hmparport.cpp,v 1. 1 2001-11-08 14:49:27phaller Exp $ */1 /* $Id: hmparport.cpp,v 1.2 2001-11-08 15:10:39 phaller Exp $ */ 2 2 3 3 /* … … 26 26 #define MAGIC_PARPORT 0x4c505431 27 27 28 #define IOCTL_PRINTER 0x0005 29 #define PRT_QUERYJOBHANDLE 0x0021 30 #define PRT_SETFRAMECTL 0x0042 31 #define PRT_SETINFINITERETRY 0x0044 32 #define PRT_INITPRINTER 0x0046 33 #define PRT_ACTIVATEFONT 0x0048 34 #define PRT_SETPRINTJOBTITLE 0x004D 35 #define PRT_SETIRQTIMEOUT 0x004E 36 #define PRT_SETCOMMMODE 0x0052 37 #define PRT_SETDATAXFERMODE 0x0053 38 #define PRT_GETFRAMECTL 0x0062 39 #define PRT_GETINFINITERETRY 0x0064 40 #define PRT_GETPRINTERSTATUS 0x0066 41 #define PRT_QUERYACTIVEFONT 0x0069 42 #define PRT_VERIFYFONT 0x006A 43 #define PRT_QUERYIRQTIMEOUT 0x006E 44 #define PRT_QUERYCOMMMODE 0x0072 45 #define PRT_QUERYDATAXFERMODE 0x0073 46 #define PRT_QUERDEVICEID 0x0074 47 48 28 49 #if 0 29 30 #define IOCTL_ASYNC 0x0131 #define ASYNC_GETDCBINFO 0x7332 #define ASYNC_SETDCBINFO 0x5333 #define ASYNC_SETLINECTRL 0x4234 #define ASYNC_GETCOMMEVENT 0x7235 #define ASYNC_EXTGETBAUDRATE 0x6336 #define ASYNC_EXTSETBAUDRATE 0x4337 #define ASYNC_GETCOMMERROR 0x6D38 #define ASYNC_GETCOMMSTATUS 0x6539 #define ASYNC_GETINQUECOUNT 0x6840 #define ASYNC_GETOUTQUECOUNT 0x6941 #define ASYNC_GETMODEMINPUT 0x6742 #define ASYNC_TRANSMITIMM 0x4443 #define ASYNC_SETBREAKON 0x4B44 #define ASYNC_SETBREAKOFF 0x4545 #define ASYNC_SETMODEMCTRL 0x4646 #define ASYNC_STARTTRANSMIT 0x4847 #define ASYNC_STOPTRANSMIT 0x4748 #define ASYNC_GETMODEMOUTPUT 0x6649 50 51 50 #pragma pack(1) 52 51 typedef struct _DCBINFO … … 433 432 } 434 433 434 BOOL HMDeviceParPortClass::GetCommProperties( PHMHANDLEDATA pHMHandleData, 435 LPCOMMPROP lpcmmp) 436 { 437 APIRET rc; 438 ULONG ulLen; 439 int i; 440 dprintf(("HMDeviceParPortClass::GetCommProperties")); 441 442 #if 0 443 USHORT COMErr; 444 EXTBAUDGET BaudInfo; 445 ulLen = sizeof(EXTBAUDGET); 446 rc = OSLibDosDevIOCtl( pHMHandleData->hHMHandle, 447 IOCTL_ASYNC, 448 ASYNC_EXTGETBAUDRATE, 449 0,0,0, 450 &BaudInfo,ulLen,&ulLen); 451 #endif 452 rc = NO_ERROR; 453 454 memset(lpcmmp,0,sizeof(COMMPROP)); 455 lpcmmp->wPacketLength = sizeof(COMMPROP); 456 lpcmmp->wPacketVersion = 1; //??? 457 lpcmmp->dwProvSubType = PST_PARALLELPORT; 458 459 #if 0 460 lpcmmp->dwServiceMask = SP_SERIALCOMM; 461 for(i=0;i<BaudTableSize && BaudInfo.ulMaxBaud <= BaudTable[i].dwBaudRate;i++); 462 lpcmmp->dwMaxBaud = BaudTable[i].dwBaudFlag; 463 lpcmmp->dwProvCapabilities = PCF_DTRDSR | PCF_PARITY_CHECK | 464 PCF_RTSCTS | PCF_SETXCHAR | 465 PCF_XONXOFF; 466 lpcmmp->dwSettableParams = SP_BAUD | SP_DATABITS | 467 SP_HANDSHAKEING | SP_PARITY | 468 SP_PARITY_CHECK | SP_STOPBIT; 469 lpcmmp->dwSettableBaud = 0; 470 for(i=0;i<BaudTableSize;i++) 471 { 472 if ( (BaudTable[i].dwBaudRate>=BaudInfo.ulMinBaud) && 473 (BaudTable[i].dwBaudRate<=BaudInfo.ulMaxBaud) ) 474 lpcmmp->dwSettableBaud |= BaudTable[i].dwBaudFlag; 475 } 476 lpcmmp->dwSettableBaud |= BAUD_USER; 477 lpcmmp->wSettableData = DATABITS_5 | DATABITS_6 | DATABITS_7 | DATABITS_8; 478 lpcmmp->wSettableStopParity = STOPBITS_10 | STOPBITS_15 | STOPBITS_20 | 479 PARITY_NONE | PARITY_ODD | PARITY_EVEN | 480 PARITY_MARK | PARITY_SPACE; 481 #endif 482 483 return(rc==0); 484 } 485 486 BOOL HMDeviceParPortClass::ClearCommError( PHMHANDLEDATA pHMHandleData, 487 LPDWORD lpdwErrors, 488 LPCOMSTAT lpcst) 489 { 490 APIRET rc; 491 ULONG ulLen; 492 USHORT COMErr; 493 494 dprintf(("HMDeviceParPortClass::ClearCommError")); 495 ulLen = sizeof(USHORT); 496 497 *lpdwErrors = 0; 498 rc = NO_ERROR; 499 500 #if 0 501 // ParPort: CE_DNS, CE_OOP CE_PTO 502 503 rc = OSLibDosDevIOCtl( pHMHandleData->hHMHandle, 504 IOCTL_ASYNC, 505 ASYNC_GETCOMMERROR, 506 0,0,0, 507 &COMErr,2,&ulLen); 508 *lpdwErrors |= (COMErr & 0x0001)?CE_OVERRUN:0; 509 *lpdwErrors |= (COMErr & 0x0002)?CE_RXOVER:0; 510 *lpdwErrors |= (COMErr & 0x0004)?CE_RXPARITY:0; 511 *lpdwErrors |= (COMErr & 0x0008)?CE_FRAME:0; 512 513 if(lpcst) 514 { 515 UCHAR ucStatus; 516 RXQUEUE qInfo; 517 ulLen = 1; 518 rc = OSLibDosDevIOCtl( pHMHandleData->hHMHandle, 519 IOCTL_ASYNC, 520 ASYNC_GETCOMMSTATUS, 521 0,0,0, 522 &ucStatus,ulLen,&ulLen); 523 if(!rc) 524 { 525 lpcst->fCtsHold = ((ucStatus & 0x01)>0); 526 lpcst->fDsrHold = ((ucStatus & 0x02)>0); 527 lpcst->fRlsdHold = FALSE;//(ucStatus & 0x04)>0); 528 lpcst->fXoffHold = ((ucStatus & 0x08)>0); 529 lpcst->fXoffSend = ((ucStatus & 0x10)>0); 530 lpcst->fEof = ((ucStatus & 0x20)>0);// Is break = Eof ?? 531 lpcst->fTxim = ((ucStatus & 0x40)>0); 532 533 ulLen = sizeof(qInfo); 534 rc = OSLibDosDevIOCtl( pHMHandleData->hHMHandle, 535 IOCTL_ASYNC, 536 ASYNC_GETINQUECOUNT, 537 0,0,0, 538 &qInfo,ulLen,&ulLen); 539 if(!rc) 540 { 541 lpcst->cbInQue = qInfo.cch; 542 rc = OSLibDosDevIOCtl( pHMHandleData->hHMHandle, 543 IOCTL_ASYNC, 544 ASYNC_GETOUTQUECOUNT, 545 0,0,0, 546 &qInfo,ulLen,&ulLen); 547 if(!rc) 548 lpcst->cbOutQue = qInfo.cch; 549 } 550 } 551 } 552 #endif 553 554 return(rc==0); 555 }
Note:
See TracChangeset
for help on using the changeset viewer.