Em Andamento

C++ API for Interacting with a Steam (by Valve Corporation) Install

Note: Valve Corporation's 'Steam' client application may be downloaded from [url removed, login to view]

The goal of this project is to create an API (that will work across Steam's supported platforms; currently Windows and Mac OS X) that serves two main uses:

- Checking for the presence of an installed Steam client application on the computer

- Adding content to the Steam Library

For this project, you will require C++ experience. It will be useful to be familiar with the Windows registry, and application configuration under both Windows and Mac OS X.

Only the facilities provided by the standard C++ API and (under Windows), the Windows API should be used - if required - to complete this project.

## Deliverables

Under Windows, installing the Steam client probably leaves its configuration data in the registry. If the uninstallation process also removes this (or at least some of this data), then this can be used as the method to determine whether Steam is installed on the system, under Windows. If not, the directories in which Steam can be installed, and where it installs non-Steam game information, may need to be searched.

Under Mac OS X, some way of detecting an installed Steam client, and where it installs non-Steam game information, will need to be found.

The API will probably only need to consist of a single class. Upon constructing this class - if it is not process intensive (there doesn't need to be a huge filesystem search - any installed Steam client can be detected, and two of the member functions provided by the class can be used to retrieve information about it:

bool clientInstalled() const;

Returns true if a Steam client install is detected. Returns false if a Steam client is not detected to have been installed on the system.

const std::string& clientVersion() const;

Returns a string representing the installed version of the client software. If the client is not installed (so, clientInstalled() returns false), the empty string can be returned.

Functions are needed for checking items that have been installed to the library, adding games to the library (so they will appear in the Steam library view when the client application is run; I'm not sure if the application will need to be restarted to see these changes. If the library view can be updated somehow, then it should be), and removing installed games from the library.

You will need to determine the information required to add new games and media to the steam library.

The following two functions could be useful:

bool gameInstalled(const std::string& name) const;

Returns true if a game by the name 'name' is installed to the library, and false if it's not.

bool mediaInstalled(const std::string& name) const;

Returns true if media by the name 'name' is intalled to the library, and false if it is not.

Then pairs of functions for installing and removing games and media from the library: If the information required for installing both types of content are the same, then only one function for installing should be needed. The way to differentiate types of content can be a type argument to the install function.

In this case, there could be a type

enum SteamContentType {

STEAM_UNKNOWN_CONTENT,

STEAM_GAME,

STEAM_MEDIA

};

bool installContent(SteamContentType type, /* Whatever information is needed here */);

Installs the content of the specified type to the library, returning true if the content was successfully installed, and false if installing the content failed.

bool removeContent(SteamContentType type, /* Probably just a string argument identifying the content to remove */);

Removes the content of the specified type from the library, returning true if the content was successfully removed, and false if removing the content failed.

In case the information required for both types of content are different, two pairs of functions will be needed.

bool installGame(/* Whatever information is needed to install a game to the library */);

Installs the specified game to the library, returning true if the game was successfully installed, and false if installing the game failed.

bool installMedia(/* Whatever information is needed to install media to the library */);

Installs the specified media to the library, returning true if the media was successfully installed, and false if installing the media failed.

bool removeGame(/* Probably just a string argument identifying the game to remove from the library */);

Removes a game from the library, returning true if the game was successfully removed, and false if removing the game failed.

bool removeMedia(/* Probably just a string argument identifying the media to remove from the library */);

Removes media from the library, returning true if the media was successfully removed, and false if removing the media failed.

Habilidades: Engenharia, Mac OS, Microsoft, Gestão de projetos, Instalação de Script, Shell Script, Arquitetura de software, Teste de Software, Área de trabalho do Windows

Ver mais: valve corporation, string standard functions in c, string library in c, string library c, string is not a member of std, std remove if, std library, standard library string functions in c, standard library c, standard c types, search c string, one media true, c# useful, c.t. corporation system, c. t. corporation, c string search, c std library, c standard library string functions, c library standard, windows api, Steam, steam game, std, corporation, c#api

Acerca do Empregador:
( 11 comentários ) Auckland, New Zealand

ID do Projeto: #3002891

Premiar a:

brooss

See private message.

$212.5 USD em 14 dias
(30 Avaliações)
5.2