Display Database: naming a monitor [ SOLVED ]

5 posts / 0 new
Last post
Massi
Massi's picture
Offline
Last seen: 3 years 10 months ago
Joined: 2012-03-28 17:16
Display Database: naming a monitor [ SOLVED ]

Hello.

Given a certain display ID of an opened screen (SA_DisplayID), how to retrieve the name of its associated monitor?
For example having a display ID corresponding to the mode "Radeon 9250:800x600 ARGB32", I need to get "Radeon 9250".

Thanks, regards

Hans
Hans's picture
Offline
Last seen: 2 months 3 weeks ago
Joined: 2010-12-09 22:04
@Massi This is probably not

@Massi

This is probably not quite what you're looking for, but here's what Composite3DDemo does to get the screen mode name:

  1. struct MonitorInfo monitor;
  2. IGraphics->GetDisplayInfoData(NULL, &monitor, sizeof(monitor), DTAG_MNTR, screenModeReq->sm_DisplayID);
  3.  
  4. printf("Opening screen: %s\n", monitor.Mspc->ms_Node.xln_Name);

There is a way to get just the graphics card's name, but I can't remember that right now.

Hans

http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more. Home of the RadeonHD driver for Amiga OS 4.x project.
http://keasigmadelta.co.nz/ - more of my software.

Hans
Hans's picture
Offline
Last seen: 2 months 3 weeks ago
Joined: 2010-12-09 22:04
@Massi I just remembered

@Massi

I just remembered that GfxBench2D extracts this info. Here's the snippet:

  1. ULONG boardNum = IP96->p96GetModeIDAttr(displayID, P96IDA_BOARDNUMBER);
  2. const char *boardName = NULL;
  3. const char *boardDriverName = NULL;
  4. ULONG boardDriverVersion = 0;
  5. ULONG boardDriverRevision = 0;
  6. const char *chipDriverName = NULL;
  7. ULONG chipDriverVersion = 0;
  8. ULONG chipDriverRevision = 0;
  9. uint64 totalInternalMemory = 0;
  10. ULONG cardVendorID = 0;
  11. ULONG cardProductID = 0;
  12. ULONG cardSubVendorID = 0;
  13. ULONG cardSubProductID = 0;
  14. IP96->p96GetBoardDataTags(boardNum, P96BD_BoardName, (ULONG)&boardName,
  15. P96BD_PCIProductID, (ULONG)&cardProductID,
  16. P96BD_PCIVendorID, (ULONG)&cardVendorID,
  17. P96BD_BoardDriver, (ULONG)&boardDriverName,
  18. P96BD_ChipDriver, (ULONG)&chipDriverName,
  19. P96BD_InternalMemorySize, (ULONG)&totalInternalMemory, TAG_DONE);
  20.  
  21. if(!boardName)
  22. {
  23. boardName = "Unknown";
  24. }

THe code above extracts more than you're looking for, but I figure that it might be useful for someone else.

Hans

http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more. Home of the RadeonHD driver for Amiga OS 4.x project.
http://keasigmadelta.co.nz/ - more of my software.

Massi
Massi's picture
Offline
Last seen: 3 years 10 months ago
Joined: 2012-03-28 17:16
@Hans Retrieving the screen

@Hans

Retrieving the screen mode name should definitively help me and also this should include the monitor name.

Thanks for the helpful and handy responses, as usual.

Massi
Massi's picture
Offline
Last seen: 3 years 10 months ago
Joined: 2012-03-28 17:16
@Hans I actually solved the

@Hans

I actually solved the problem using
IGraphics->GetDisplayInfoData( ..., struct NameInfo, DTAG_NAME, ... )
which allows to get a string like for example "Radeon 9250:800x600 ARGB32".

See more details here
http://wiki.amigaos.net/wiki/Display_Database

Log in or register to post comments