Find Jobs
Hire Freelancers

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

$30-5000 USD

En curso
Publicado hace más de 13 años

$30-5000 USD

Pagado a la entrega
Note: Valve Corporation's 'Steam' client application may be downloaded from [login to view URL] 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.
ID del proyecto: 3002891

Información sobre el proyecto

1 propuesta
Proyecto remoto
Activo hace 13 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos
Adjudicado a:
Avatar del usuario
See private message.
$212,50 USD en 14 días
5,0 (30 comentarios)
5,2
5,2

Sobre este cliente

Bandera de NEW ZEALAND
Auckland, New Zealand
5,0
11
Forma de pago verificada
Miembro desde sept 3, 2010

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.