Results 1 to 7 of 7

Thread: Accessing PCI cards in C++

  1. #1
    Constant Bitrate
    Join Date
    Sep 2002
    Location
    Melbourne, Australia
    Posts
    114

    Accessing PCI cards in C++

    OK i'm no C++ expert but i'm writing a simple directX application to watch TV, play mp3s, play DVDs etc...

    My TV tuner card has inbuilt radio tuner, but i don't know how to change the source of the audio from the card to FM.... i presume it's by sending a command to the PCI card (well... the drivers for it). But i'm not sure how to do this?

    I can decompile the program that came with it to get the commands, but how do i send it?

    I sort of figured out how to send it with video for windows, but i HATE that way because it always crashes. Much more stable using direct show... and a lot smoother.. Other than source changing it's all working pretty sweet though

    Still in majorly early beta though, i'm concentrating on getting the video and audio 100% crisp and smooth.... then i'll work on the interface...

  2. #2
    Low Bitrate
    Join Date
    Jul 2002
    Posts
    89
    The first thing I would do is check to see if the software that came with the card installed an ActiveX control on your machine. If so, you should be able to import it in your development environment and check out its exposed interface.

  3. #3
    Constant Bitrate
    Join Date
    Sep 2002
    Location
    Melbourne, Australia
    Posts
    114
    Nah no activeX Control :|

    does anyone know a good decompiler? i don't want the full source code of the app i just want sorta basic outline of what it's calling and with what methods and stuff.... should be able to be done.....

  4. #4
    Retired Admin Aaron Cake's Avatar
    Join Date
    Jan 2000
    Location
    London, Ontario, Canada
    Posts
    2,464
    There are various applications that allow you to monitor DLL calls for a process. I would use one to view the software that came with the tuner, and then just program yours to use the same DLL.

    Try ProcessViewer or the like...
    Player: Pentium 166MMX, Amptron 598LMR MB w/onboard Sound, Video, LAN, 10.2 Gig Fujitsu Laptop HD, Arise 865 DC-DC Converter, Lexan Case, Custom Software w/Voice Interface, MS Access Based Playlists
    Car: 1986 Mazda RX-7 Turbo (highly modded), 1978 RX-7 Beater (Dead, parting out), 2001 Honda Insight
    "If one more body-kitted, cut-spring-lowered, farty-exhausted Civic revs on me at an intersection, I swear I'm going to get out of my car and cram their ridiculous double-decker aluminium wing firmly up their rump."

  5. #5
    Constant Bitrate
    Join Date
    Sep 2002
    Location
    Melbourne, Australia
    Posts
    114
    OK thanks mate! just about to fire up google and go searching for that!!!

    does anyone know how to access this? this is the capture device:

    @devicenp:\\?\pci#ven_1131&dev_7134&subsys_01385168&rev_0 1#3&61aaa01&0&68#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global

    i mean i know it's the PCI adress (sumfin like that)

    but dunno how to use it! coz im dumb

  6. #6
    Raw Wave Rob Withey's Avatar
    Join Date
    Apr 2000
    Location
    Bedfordshire, UK
    Posts
    2,139
    PCI device enumeration is non trivial. Your best reference is probably the Linux source code. In particular, pciscan.c and pciscan.h. They are linked from (amongst other places) this network driver page: http://www.scyld.com/network/tulip.html

    That pci address you posted contains the vendor id (manufacturer code) and the device id (chip code) which can be used to recognised the card during enumeration. I did this once for a graphics card under VxWorks to get a linear frame buffer, and it's nasty, nasty, nasty.

    I recommend you find yourself a good PCI book to understand the process if you want to go this route.


    Rob
    Old Systems retired due to new car
    New system at design/prototype stage on BeagleBoard.

  7. #7
    Constant Bitrate
    Join Date
    Sep 2002
    Location
    Melbourne, Australia
    Posts
    114
    if anyone's interested this is what im working on at the moment to go with my black interior..... what you think??



    btw: going to be displayed on xenarc touchscreen

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •