1 Introduction

  • What is XRemote?
  • System Requirements
  • QuickStart!
  • Input Guide

    2 Technical Information

  • Design Plan
  • Class Architecture
  • Mode Tree
  • Source Code
  • What the files are and where they go
  • Tested Hardware

    3 FAQ

  • Frequently asked questions

    4 Images

  • Screenshots
  • Prototype evolution
  • World key



  • Click to download XRemote




    1 Introduction

    What is XRemote?

    A 3D remote control for the Internet, Communication, Radio/TV and CD/DVD.


    System Requirements

    Pentium 4 with 2GB RAM
    Windows2000/XP/Vista
    256MB video card with DirectX 9.0 Shader Model 3.0 hardware
    TV Tuner card(optional)
    Web Cam(optional)


    QuickStart!

  • Step 1: Download XRemote.

  • Step 2: Make a directory and extract the zip file into it.

  • Step 3: Download and install the latest DirectX runtime here.
    http://www.microsoft.com/downloads/Browse.aspx?displaylang=en&categoryid=2

  • Step 4: Download and install the current MSVC dlls for Visual Studio 2005 SP1 redistribution here.
    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=766a6af7-ec73-40ff-b072-9112bab119c2

  • Step 5: Download ETOPO2v2c_i2_LSB.zip from this link:
    http://www.ngdc.noaa.gov/mgg/global/relief/ETOPO2/ETOPO2v2-2006/ETOPO2v2c/raw_binary/ETOPO2v2c_i2_LSB.zip
    and unzip the files into the .\xremote\media\xworld\dem directory.

  • Step 6: Download any ortho files you want to view from this link:
    http://www.mass.gov/mgis/dwn-imgs.htm
    and place them into the .\xremote\media\world\ortho directory.

  • Step 7: Run the xremote.exe executable.

  • Step 8: Explore the Net, talk to friends, tune into the radio/TV or play some CD/DVD.

  • Input Guide
















    2 Technical Information

    Design Plan


    Class Architecture


    Mode Tree


    Source Code

    xremote.txt

    xremote.h

    xremote.cpp

    xremote.vsh

    xremote.psh

    xremote.ini

    xremote.xml

    xremote.log

    What the files are and where they go




    Tested Hardware

    XRemote was developed on the following hardware:

    Core

  • Asus Vento 3600 case
  • Asus ATX 500W power supply
  • Intel D101GGC MicroATX motherboard
  • Intel Pentium 4 Prescott 640 3.2Ghz CPU
  • Kingston 2GB DDR400 RAM
  • Western Digital 250GB HD
  • Asus IDE DVD Burner
  • QuickTV TV/FM tuner card
  • RCA Antenna
  • Logitech QuickCam



  • Asus Vento 3600 case
  • Antec 450W power supply
  • Intel DG965WH MicroATX motherboard
  • Intel Pentium 4 Prescott 640 3.2Ghz CPU
  • Kingston 2GB DDR2800 RAM
  • Western Digital 250GB HD
  • Asus IDE DVD Burner
  • ATI Wonder 650 HDTV/FM tuner card
  • Terk HD Antenna
  • Logitech QuickCam



  • SilverStone Sugo SG05 case
  • Intel DG45FC mini-ITX motherboard
  • Intel Core 2 Duo E8400 Wolfdale 3.0GHz LGA 775 65W Dual-Core CPU
  • Kingston 4GB DDR2800 RAM
  • Lacie 1TB HD
  • LG USB external DVD Burner
  • Hauppauge HVR-1950 HDTV/FM USB external tuner
  • Terk HD Antenna
  • Microsoft VX-7000 LifeCam

    Audio Components

  • RealTek chipset
  • Sigmatel chipset
  • Logitech X-530 5.1 speakers

    Video Components

  • ATI Radeon Xpress 200 IGP
  • Intel G965 X3000 IGP
  • Intel G45 X4500 IGP
  • Viewsonic 19" VA902b LCD
  • Hanns-G 27.5" HG281D LCD

    Input Devices

  • Logitech Wired keyboard
  • Microsoft Wired keyboard
  • Microsoft Wireless keyboard/mouse
  • Microsoft Univeral remote control
  • Microsoft Wireless XBox360 controller




  • 3 FAQ

    Frequently asked questions



    General

  • What inspired XRemote?
  • What exactly is XRemote and what does it do?
  • Why would I want to use XRemote over any other media player or TV tuner software out there?
  • What are XRemote's shining qualities over other software like itself?
  • What is the current state of functionality available in the beta?
  • When will XRemote become version 1.0?
  • How much does XRemote cost?
  • What are some good questions to add to this FAQ?

  • XRemote boot issues

  • Why am I getting the error, "'The application has failed to start because it's side-by-side configuration is incorrect'", when I try to run XRemote?
  • How come when I run XRemote it appears to run but nothing is rendered to the window?
  • Why does XRemote crash when I use F5 to toggle fullscreen mode?

  • Building XRemote

  • What do I need to build the XRemote project?
  • What books do you suggest to read to learn how to understand and code for XRemote?

  • XTemple

  • What is XTemple?
  • What do I need to click to get to the XTemple modes?
  • How do I add/delete objects from the loaded XTemple 3D mesh object?
  • How does the XTemple Light mode work?
  • How does the XTemple World mode work?
  • How does the XTemple Cam mode work?

  • XWorld

  • What is XWorld?
  • What do I need to click to get to the XWorld modes?
  • How do I add/delete ortho textures from the loaded XWorld texture cache?
  • How does the XWorld 500m mode work?
  • How does the XWorld 4km mode work?
  • How does the XWorld 28km mode work?

  • XChannel

  • What is XChannel?
  • What do I need to click to get to the XChannel modes?
  • How do I add/delete channel keys from the loaded XChannel key file?
  • How does the XChannel Net mode work?
  • How does the XChannel Comm mode work?
  • How does the XChannel Tuner mode work?
  • How does the XChannel Player mode work?

  • License

  • How does XRemote's license work?



  • General

    Q. What inspired XRemote?
    A. Lack of a good "container/program" for controlling the Internet, Communications, Radio/TV and CD/DVD. Also, the fact that Windows Media Player and Windows Media Center have become overly bloated.

    Q. What exactly is XRemote and what does it do?
    A. At the start, XRemote was just supposed to be a better piece of software to run my TV tuner to watch TV on my PC while I chatted online. Eventually, it became what it is now. XRemote is the following things:
    1. An application that allows you to browse the Internet.(XNet)
    2. An application that allows you to communicate with people online.(XComm)
    3. An application that allows you to interact with your TV tuner.(XTuner)
    4. An application that allows you to catalog, sort and interact with your book, cd and dvd collections.(XPlayer)
    5. An application that allows you to visualize the height field of the Earth as well as store and view orthographic photos.(XWorld)
    6. An application that allows you to build a 'Temple' out of 3D mesh objects by adding them to a flat file database, as well as interact with the model by changing the Light, World or Camera.(XTemple)
    7. An application that you can use to learn how to program in C/C++ on Windows.

    Q. Why would I want to use XRemote over any other media player or TV tuner software out there?
    A. The reasons are simple. On the TV tuner side, there is no good TV tuner software out there. Most all the software included with TV tuners on the market today is slow, with a cumbersome user interface. If you use Windows Media Center to access your TV tuner, you can expect multiple processes and threads running in the background, searching for program guide data and frequently accessing the internet in the background. It slows down the system besides it being annoying and invasive to privacy. XRemote solves the speed and user interface issues associated with TV tuner software. As for using other media player software, there is plenty of good stuff out there. I used to use WinAmp as it was always better and 'cooler' than the media player that came with Windows. Windows Media Player has caught up considerably, and integrates well with MP3 players and online stores, but it is still bloated. While the UI is improved, it still is stuck in '2D Windows land'. Your screen real estate is eaten up by the Windows UI controls that hog screen space. You can only view so many albums at once even if the application is maxed to the screen. With XRemote running fullscreen, you can see your entire CD collection if it is under 512 CD's. The ability to view all your CD's at once, as well as sort them into 3D columns greatly improves your ability to mentally catalog your music collection. Not only does the interface allow easier and faster music selection access, it also helps with remembering the music you own. XRemote is also very responsive and can interact with keyboards, mice, remote controls as well as xbox controllers. For those reasons, XRemote is a more desirable choice to catalog and interact with your music, movie and book collections as well as control your TV tuner.

    Q. What are XRemote's shining qualities over other software like itself?
    A. XRemote shines because:
    1. You get the source code.
    2. Simple, speedy, modular 3D user interface which allows modification through the use of '3D Skins'.
    3. Catalogs books, cds and dvds, allows TV tuner interaction, as well as Internet chat and browsing.
    4. Takes advantage of your GPU for something besides games.
    5. Low cost.

    Q. What is the current state of functionality available in XRemote?
    A. XPlayer is in beta and feature complete. XTemple and XWorld are in beta. XTuner and XComm are in alpha. XNet exists only in my head.

    Q. When will XRemote become version 1.0?
    A. As soon as the XTuner code is hooked back up to access ATSC high definition TV and when XComm is cleaned up and has audio and video support added.

    Q. How much does XRemote cost?
    A. $22. See License below to see what that $22 gets you.

    Q. What are some good questions to add to this FAQ?
    A. Good question. Email any to lharrison74@verizon.net to submit for addition.

    XRemote boot issues

    Q. Why am I getting the error, "'The application has failed to start because it's side-by-side configuration is incorrect...'", when I try to run XRemote?
    A. You have to install the latest Microsoft DLLs. Complete Step 4 in the Quick Start guide above.

    Q. How come when I run XRemote it appears to run but nothing is rendered to the window?
    A. After trying to run XRemote on an Acer 2GB laptop with Intel G965 X3100, I noticed the video memory in the BIOS was only set to 8MB, even though the system uses Unified Memory Architecture(UMA) and lets the integrated graphics chip use system RAM as video memory. Unfortunately, the BIOS didn't allow allocating more system memory to video memory, which some configurations allow. XRemote requires quite a bit of video memory to store all its textures, so unless you can upgrade to a discrete video card, or try getting a laptop with the new Intel G45 X4500 chipset which has better UMA memory management, XRemote won't run on your system.

    Q. Why does XRemote crash when I use F5 to toggle fullscreen mode?
    A. When first developing XRemote, I noticed how when you changed to fullscreen mode, the Direct3DDevice object would invalidate all resources that had been previously loaded under it. To keep the code clean, I just deleted everything and reloaded it all when you switched to fullscreen mode. Somewhere along the line, after adding the textures for the books, cds and dvds, XRemote started crashing, and tracking down the bug became a headache I put off till later. For now, when I want to run XRemote fullscreen, I just edit the xremote.ini file and change the flag for fullscreen to 1. That immediately starts XRemote fullscreen and works fine. I learned that in DirectX 10, the resources aren't invalidated when changing to fullscreen mode, so when XRemote is ported to DirectX 10, I will figure out and fix this issue. Until then, just use xremote.ini to run fullscreen.

    Building XRemote

    Q. What do I need to build the XRemote project?
    A. First, you need to install a compiler like Microsoft Visual Studio. I'm not sure if you can use the Express version they offer for free as I haven't tried that yet, but it might work. After that, you should install the latest version of the DirectX SDK. Before opening the xremote.sln file, edit the xremote.vcproj file to correct for the directory names for the DirectX SDK. After that, open xremote.sln and click Build. You will probably get some errors that you will have to track down. One thing that you will need to build is a DirectShow library called strmbase.lib and strmbasd.lib. The project for that library can be found in the DirectX Extras download. After making sure you have all the libs and everything is in the right directory, XRemote should compile. If not, feel free to email the author at lharrison74@verizon.net and I'll see if I can track down the problem.

    Q. What books would you suggest to learn how to understand and code for XRemote?
    A. Here are a few to look into:
    Kris Gray
    Microsoft DirectX 9 Programmable Graphics Pipeline(2003)
    Stuart K Card, Jock D Mackinlay, Ben Shneiderman
    Readings in information visualization, using vision to think(1999)
    ACM Siggraph
    Siggraph 2000, Electronic Art and Animation Catalog(2000)
    ACM Siggraph
    Computer Graphics Proceedings, Annual Conference Series, 1999(1999)
    ACM Siggraph
    Computer Graphics Proceedings, Annual Conference Series, 2000(2000)
    Julio Sanchez, Maria P Canton
    Space Image Processing(1999)
    Tim Wegner
    Image Lab, explore, manipulate and create images on your PC(1992)
    Tom Hayward
    Adventures in Virtual Reality, a hitchhiker's guide to the expanding world of virtual reality(1993)
    William H Roetzheim
    Enter the complexity lab, where chaos meets complexity(1994)
    Stephen Prata
    Artificial life playhouse, evolution at your fingertips(1994)
    Steve Rimmer
    Bit-mapped graphics, 2nd Edition(1993)
    Nigel Thompson
    3D graphics programming for Windows 95, C++ programming techniques with Direct3D(1996)
    Rob Glidden
    Graphics programming with Direct3D, techniques and concepts(1997)
    Julio Sanchez, Maria P Canton
    DirectX 3D Graphics Programming Bible(2000)
    Peter J Kovach
    The Awesome Power of Direct3D-DirectX(1998)
    Andre LaMothe, John Ratcliff, Mark Seminatore, Denise Tyler
    Tricks of the game programming gurus(1994)
    Mason McCuskey
    Special effects game programing with DirectX(2002)
    Peter Walsh
    The Zen of Direct3D game programming(2001)
    Kelly Dempski
    Real-time rendering tricks and techniques in DirectX(2002)
    Paul Whitehead
    Teach Yourself VISUALLY, Networking, 2nd Edition(2000)
    Tracey LaQuey, Jeanne C Ryer
    The Internet Companion, a beginner's guide to global networking(1992)
    P J Louis
    Telecommunications Internetworking, delivering services across the networks(2000)
    Bob Quinn, Dave Shute
    Windows Sockets Network Programming(1996)
    Douglas E Comer
    Internetworking with TCP-IP, Volume I principles, protocols and architecture, 2nd Edition(1991)
    Douglas E Comer, David L Stevens
    Internetworking with TCP-IP, Volume II design, implementation and internals(1991)
    Douglas E Comer, David L Stevens
    Internetworking with TCP-IP, Volume III client-server programming and applications(1993)
    Emily Vander Veer, Rev Mengle
    XML, Your visual blueprint for building expert web pages(2001)
    Peter Coad, Jill Nicola
    Object-oriented programming(1993)
    Mark Watson
    Portable GUI development with C++(1993)
    Roger Sessions
    Class Construction in C and C++, object-oriented programming fundamentals(1992)
    Bjarne Stroustrup
    The C++ programming language, 2nd Edition(1991)
    Christopher D Watkins, Stephen B Coy, Mark Finlay
    Photorealism and ray tracing in C(1992)
    Roger T Stevens
    Fractal Programming and Ray Tracing in C++(1991)
    Christopher D Watkins, Larry Sharp
    Programming in 3 dimensions, 3-D graphics, ray tracing, and animation(1992)
    Roger S Pressman
    Software engineering, a practioner's approach, 3rd Edition(1992)
    Ellis Horowitz, Sartaj Sahni, Susan Anderson-Freed
    Fundamentals of data structures in C(1993)
    Steve Maguire
    Writing Solid Code, Microsoft's techniques for developing bug-free C programs(1993)
    Virginia Howlett
    Visual Interface Design for Windows, effective user interfaces for Windows 95, Windows NT and Windows 3.1(1996)
    Charles Petzold
    Programming Windows 95, the definitive developer's guide to the Windows 95 API(1996)



    XTemple

    Q. What is XTemple?
    A. XTemple is a 3-mode module within XRemote that allows the user to alter the location of the point light of the 3D scene, alter the world matrix of XRemote's 3D scene and manipulate the camera view on the 3D scene. Click
    here to see the input for these modes.

    Q. What do I need to click to get to the XTemple modes?
    A. Press the F8 key or use the XBox Controller DPad left and right to cycle through the XTemple modes.

    Q. How do I add/delete objects from the loaded XTemple 3D mesh object?
    A. You have to do two things. First, delete the files 'xoTemple_Home.bmp' and 'xoTemple_Foundation.bmp' from the '\xremote\media\xtemple\texture' directory. These files are recreated from the loaded textures from 'xRemoteData_xTemple_xHome_xMesh_texture' and 'xRemoteData_xTemple_xFoundation_xMesh_texture' keys stored in xremote.xml. Then, add or delete keys from xremote.xml of the 3D mesh objects and textures, as well as their location in 3D, into the file. The next time you run XRemote, the xoTemple_Home.bmp and xoTemple_Foundation.bmp are recreated from this data. The 3D mesh model of the entire scene is generated at runtime each time you run XRemote.

    Q. How does the XTemple Light mode work?
    A. XRemote's lighting is accomplished with 2 lights, 1 directional and 1 point light. While the directional light is hard-coded and used mainly by the UI, the point light is moved to different locations as the user changes modes. This mode allows the user to manipulate the light using any input device, as well as toggle the render state of the XTemple. Click
    here to see the input for this mode.

    Q. How does the XTemple World mode work?
    A. Unless a 3D object's parent matrix is set to 0 in XRemote code, all 3D objects are contained under one parent world matrix. This matrix can be moved, rotated and recentered in this mode. Click
    here to see the input for this mode.

    Q. How does the XTemple Cam mode work?
    A. This mode allows the user to move the camera viewpoint of the 3D scene. Click
    here to see the input for this mode.

    XWorld

    Q. What is XWorld?
    A. XWorld is a 3-mode module within XRemote that allows the user to alter the location of the 3D rendered height field of the Earth stored in memory. It also allows the user to move the viewpoint to view orthographic textures stored in memory from a parallel and topdown view plane. Click
    here to see the input for these modes.

    Q. What do I need to click to get to the XWorld modes?
    A. Press the F9 key to cycle through the XWorld modes. Also, use the right control key plus the up and down arrows to cycle modes.

    Q. How do I add/delete ortho textures from the loaded XWorld texture cache?
    A. Add or delete 'xRemoteData_xWorld_orthoquad' keys from xremote.xml of the ortho textures you want loaded at startup into the XWorld texture cache. XRemote will take the data loaded from xremote.xml orthoquad keys and turn each key into a file and load it into the cache. The filename is formed like this: '\xremote\media\xworld\ortho\quadxX_quadzZ.bmp', where 'quadx' and 'quadz' are the key values from xremote.xml.

    Q. How does the XWorld 500m mode work?
    A. Use this mode to view your library of books, cds and dvds up close, check out a loaded ortho map location or view the XTemple 3D model scene you've created. Click
    here to see the input for this mode.

    Q. How does the XWorld 4km mode work?
    A. This mode allows you to view a subset of the 3D height field of the Earth generated in realtime. The data consists of average distances above and below sea level for the surface of the planet in 4km by 4km squares. Initially, the data was packed as 10800x5400 2-byte values, but after XRemote runs for the first time, it converts and saves the data into 10080x5040 2-byte values for ease of grid generation. The data is displayed at 20 times scale to exaggerate the cliff features. Click
    here to see the input for this mode.

    Q. How does the XWorld 28km mode work?
    A. This mode works identical to XWorld 4km but moves at a scale of 28km instead of 4km with its view at a greater height. Click
    here to see the input for this mode.

    XChannel

    Q. What is XChannel?
    A. XChannel is a 4-mode module within XRemote that allows the user to play digital media, access a TV tuner, chat online and browse the Internet. Click
    here to see the input for these modes.

    Q. What do I need to click to get to the XChannel modes?
    A. Press the F7 key to cycle through the XChannel modes. Also, use the right control key plus the up and down arrows to cycle modes.

    Q. How do I add/delete channel keys from the loaded XChannel key file?
    A. At this point in time, the only keys that matter are for the XChannel XPlayer mode. The main keys to be concerned with are:
    - 'xPlayer_booksort_genre'
    - 'xPlayer_booksort_timeline'
    - 'xPlayer_cdsort_genre'
    - 'xPlayer_cdsort_timeline'
    - 'xPlayer_cdsort_playlist'
    - 'xPlayer_dvdsort_genre'
    - 'xPlayer_dvdsort_timeline'
    - 'xPlayer_book'
    - 'xPlayer_cd'
    - 'xPlayer_playlist'
    - 'xPlayer_dvd'
    - 'xPlayer_folders'
    The sort keys allow you to add/remove sorting types. The book, cd, and dvd keys allow you to add/remove new media into your library. The playlist keys allow cd music song playlists for XPlayer. The xPlayer_folders key allows you to add/remove directories for use in the sub-mode XFolder in XPlayer. This mode opens each file in the specified directory, takes a snapshot of the image or first still of a movie file, then stores all the snapshots in a thumbnail file named xthumbs.jpg. This mode can be used to create covers for movies or books that you add to the library. If you've loaded XRemote and notice all the book, cd and dvd cover art is blank and missing, thats the way its supposed to be. All my digital media was just included to show what the system could do. If you want to download the compiled cover art just to check it out, download the following files and place them in the appropriate \library directory. After running XRemote, each cover art file is compiled into a large 4096x4096 texture for use in display. If you ever want to recompile these textures after you add/remove some books, cds or dvds, just delete the xthumbs.jpg and xthumbs2.jpg files and they will be recreated at the next startup. Here are the cover art files if you want to see them:
    \library\book\xthumbs.jpg
    \library\book\xthumbs2.jpg
    \library\cd\xthumbs.jpg
    \library\dvd\xthumbs.jpg
    After you add a key for a book, cd or dvd into the xremote.xml file, just put the corresponding media in the correct location, as well as a Cover.jpg file for the cover art. The filenames should correspond to the following format:
    Book: \library\book\'title'\'chapter'.'file format'
    CD: \library\cd\'artist'\'album'\'artist'_'album'_'track number'_'track name'.'file format'
    DVD: \library\dvd\'movie'\'chapter'.'file format'


    Q. How does the XChannel Net mode work?
    A. This mode is still being mentally developed. Click
    here to see the input for this mode.

    Q. How does the XChannel Comm mode work?
    A. This mode is in alpha. It contains a stripped down, barely working IRC client, but not much more functionality than that. The user interface for the text windows is in place, and you can just add keys to join different IRC servers, so if you feel like playing with the code, be my guest. Click
    here to see the input for this mode.

    Q. How does the XChannel Tuner mode work?
    A. This mode should go into beta soon. I eventually got NTSC TV tuner code working, but I couldn't get the ATSC code working on my ATI tuner. The state of the PC TV tuner industry is changing rapidly, with ATI selling their All-in-Wonder tuners to Broadcom, and XCeive coming out with 20-tuner silicon based tuners. The new tuners coming out soon will need at least 2 generations of drivers to get decently stable. Hopefully within 3-5 years we'll have 8-core CPUs with on die GPU and 8 TV tuners embedded in one chip. Until then, I am going to attempt to get this mode working again on the ATSC signal using my new Hauppauge 1950 external USB TV tuner. It works in Media Center, and doesn't blue screen the OS like the old ATI tuner(read: vista doesn't like old tv tuner drivers). Soon enough I won't have to use Media Center and can purge its resource hog self from my system. Click
    here to see the input for this mode.

    Q. How does the XChannel Player mode work?
    A. The Player has 4 modes plus an off setting. The 4 modes are Book, CD, DVD and XFolder. XFolder is a simple directory image/movie file viewer and thumbnail file generator. The other 3 modes, Book, CD and DVD are where you select the media you wish to play. Basically, the media is stored in columns, sorted either alphabetically, by genre, by year or through playlist. You can choose to loop either a track, an album, an artist or a column. If you wish to watch a movie and turn off the UI and just render the movie, click the Z key. The Book interface is fairly 'buggy', as I started to incorporate using Adobe Reader and subclassing their PDF viewer into a window, as most books I have online are PDF, but I choose to ignore the Book mode for now. I plan on turning all my books into texture files and storing and viewing them that way. Until then, the Book mode sort of works, but with a hack of trying to find the Adobe Reader PDF window after launching, then using the window handle to send messages to change the Page of the book file. It sort of works, but won't work in fullscreen mode, as I haven't solved a way of getting a web browser window to update in fullscreen mode. With that said, the CD and DVD modes are pretty much feature complete for version 1.0, so have fun playing with your media library collection with those. Click
    here to see the input for this mode.

    License

    Q. How does XRemote's license work?
    A. I have grappled with the best way to license XRemote, and to promote the idea of a new way of selling software that does away with the innovation stifling software patent process and closed source code system and have come up with the following license agreement. For $22, you get a lifetime subscription to XRemote. That includes access to all source code and future upgrades for a one-time, lifetime subscription fee. I never intended to make my fortune off XRemote, and would rather see it used as a tool to encourage future software developers to learn how to code and create the next generation of software apps. So, until I come to my senses and/or get greedy, XRemote costs $22 for a lifetime subscription. Do whatever you like with the source code. If you add a substantial amount of functionality and want to sell it as your own, be my guest. Just don't rename a couple functions and be lame and sell it for $1 per copy. You of course could do this, but I'm betting there are more honest people out there than dishonest, so I'll eventually see a return on the investment. With that, enjoy, and check back for new updates as XRemote is, and will always be, a perpetual work-in-progress. I like to think of it as my digital media swiss army knife.




    4 Images

    Screenshots


    Prototype evolution


    World key






    © 2002-2009 Black Hole Software, Inc. All Rights Reserved