Files
MinecraftConsoles/Minecraft.Client/Common/Network/Sony/SonyCommerce.h
daoge b3feddfef3 feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict

* feat: TU19 (Dec 2014) Features & Content (#32)

* December 2014 files

* Working release build

* Fix compilation issues

* Add sound to Windows64Media

* Add DLC content and force Tutorial DLC

* Revert "Add DLC content and force Tutorial DLC"

This reverts commit 97a4399472.

* Disable broken light packing

* Disable breakpoint during DLC texture map load

Allows DLC loading but the DLC textures are still broken

* Fix post build not working

* ...

* fix vs2022 build

* fix cmake build

---------

Co-authored-by: Loki <lokirautio@gmail.com>
2026-03-03 03:04:10 +08:00

178 lines
9.2 KiB
C++

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef __PS3__
#include <np.h>
#include <np/drm.h>
#include <np/commerce2.h>
#elif defined __PSVITA__
#include <np.h>
#include <np_toolkit.h>
#else // __ORBIS__
#define SCE_NP_COMMERCE2_CATEGORY_ID_LEN SCE_TOOLKIT_NP_COMMERCE_CATEGORY_ID_LEN ///< The size of the category ID.
#define SCE_NP_COMMERCE2_PRODUCT_ID_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_ID_LEN ///< The size of the product ID.
#define SCE_NP_COMMERCE2_CATEGORY_NAME_LEN SCE_TOOLKIT_NP_COMMERCE_CATEGORY_NAME_LEN ///< The size of the category name.
#define SCE_NP_COMMERCE2_CATEGORY_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_CATEGORY_DESCRIPTION_LEN ///< The size of the category description.
#define SCE_NP_COMMERCE2_URL_LEN SCE_TOOLKIT_NP_COMMERCE_URL_LEN ///< The size of the URL.
#define SCE_NP_COMMERCE2_PRODUCT_NAME_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_NAME_LEN ///< The size of the product name.
#define SCE_NP_COMMERCE2_PRODUCT_SHORT_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_SHORT_DESCRIPTION_LEN ///< The size of the product short description.
#define SCE_NP_COMMERCE2_SP_NAME_LEN SCE_TOOLKIT_NP_COMMERCE_SP_NAME_LEN ///< The size of the licensee (publisher) name.
#define SCE_NP_COMMERCE2_CURRENCY_CODE_LEN SCE_TOOLKIT_NP_COMMERCE_CURRENCY_CODE_LEN ///< The size of currency code.
#define SCE_NP_COMMERCE2_CURRENCY_CODE_LEN SCE_TOOLKIT_NP_COMMERCE_CURRENCY_CODE_LEN
#define SCE_NP_COMMERCE2_CURRENCY_SYMBOL_LEN SCE_TOOLKIT_NP_COMMERCE_CURRENCY_SYMBOL_LEN ///< The size of currency symbol.
#define SCE_NP_COMMERCE2_THOUSAND_SEPARATOR_LEN SCE_TOOLKIT_NP_COMMERCE_THOUSAND_SEPARATOR_LEN ///< The size of the character separating every 3 digits of the price.
#define SCE_NP_COMMERCE2_DECIMAL_LETTER_LEN SCE_TOOLKIT_NP_COMMERCE_DECIMAL_LETTER_LEN ///< The size of the character indicating the decimal point in the price.
#define SCE_NP_COMMERCE2_SKU_ID_LEN SCE_TOOLKIT_NP_COMMERCE_SKU_ID_LEN ///< The size of the SKU ID.
#define SCE_NP_COMMERCE2_PRODUCT_LONG_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_LONG_DESCRIPTION_LEN ///< The size of the product long description.
#define SCE_NP_COMMERCE2_PRODUCT_LEGAL_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_LEGAL_DESCRIPTION_LEN ///< The size of the product legal description.
#define SCE_NP_COMMERCE2_RATING_SYSTEM_ID_LEN SCE_TOOLKIT_NP_COMMERCE_RATING_SYSTEM_ID_LEN ///< The size of the rating system ID.
#define SCE_NP_ENTITLEMENT_ID_SIZE SCE_TOOLKIT_NP_COMMERCE_ENTITLEMENT_ID_LEN ///< The size of entitlement ID.
#endif
#ifndef __PSVITA__
#define SCE_TOOLKIT_NP_SKU_PRICE_LEN (SCE_NP_COMMERCE2_CURRENCY_CODE_LEN \
+ SCE_NP_COMMERCE2_CURRENCY_SYMBOL_LEN \
+ SCE_NP_COMMERCE2_THOUSAND_SEPARATOR_LEN \
+ SCE_NP_COMMERCE2_DECIMAL_LETTER_LEN) ///< The maximum length of a price in characters.
#endif
class SonyCommerce
{
public:
typedef void (*CallbackFunc)(LPVOID lpParam, int error_code);
/// @brief
/// Contains information about a subcategory on the PlayStation(R)Store.
///
/// Contains information about a subcategory on the PlayStation(R)Store.
typedef struct CategoryInfoSub
{
char categoryId[SCE_NP_COMMERCE2_CATEGORY_ID_LEN]; ///< The ID of the subcategory.
char categoryName[SCE_NP_COMMERCE2_CATEGORY_NAME_LEN]; ///< The name of the subcategory.
char categoryDescription[SCE_NP_COMMERCE2_CATEGORY_DESCRIPTION_LEN]; ///< The detailed description of the subcategory.
char imageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The image URL of the subcategory.
}
CategoryInfoSub;
/// @brief
/// Current category information
///
/// This structure contains information about a category on the PlayStation(R)Store
typedef struct CategoryInfo
{
CategoryInfoSub current; ///< The currently selected subcategory.
std::list<CategoryInfoSub> subCategories; ///< Information about the subcategories in this category.
uint32_t countOfProducts; ///< The number of products in the category.
uint32_t countOfSubCategories; ///< The number of subcategories.
}
CategoryInfo;
/// Contains information about a product in the PlayStation(R)Store.
typedef struct ProductInfo
{
uint32_t purchasabilityFlag; ///< A flag that indicates whether the product can be purchased (<c>SCE_NP_COMMERCE2_SKU_PURCHASABILITY_FLAG_XXX</c>).
uint32_t annotation; // SCE_NP_COMMERCE2_SKU_ANN_PURCHASED_CANNOT_PURCHASE_AGAIN or SCE_NP_COMMERCE2_SKU_ANN_PURCHASED_CAN_PURCHASE_AGAIN
uint32_t ui32Price;
char productId[SCE_NP_COMMERCE2_PRODUCT_ID_LEN]; ///< The product ID.
char productName[SCE_NP_COMMERCE2_PRODUCT_NAME_LEN]; ///< The name of the product.
char shortDescription[SCE_NP_COMMERCE2_PRODUCT_SHORT_DESCRIPTION_LEN]; ///< A short description of the product.
char longDescription[SCE_NP_COMMERCE2_PRODUCT_LONG_DESCRIPTION_LEN]; ///< A long description of the product.
char skuId[SCE_NP_COMMERCE2_SKU_ID_LEN]; ///< The SKU ID
char spName[SCE_NP_COMMERCE2_SP_NAME_LEN]; ///< The service provider name.
char imageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The product image URL.
char price[SCE_TOOLKIT_NP_SKU_PRICE_LEN]; ///< The price of the product. This is formatted to include the currency code.
char padding[6]; ///< Padding.
#ifdef __PS3__
CellRtcTick releaseDate; ///< The product release date.
#else
SceRtcTick releaseDate;
#endif
}
ProductInfo;
/// @brief
/// Contains detailed information about a product on the PlayStation(R)Store.
///
/// Contains detailed information about a product on the PlayStation(R)Store.
typedef struct ProductInfoDetailed
{
uint32_t purchasabilityFlag; ///< A flag that indicates whether the product can be purchased (<c>SCE_NP_COMMERCE2_SKU_PURCHASABILITY_FLAG_XXX</c>).
uint32_t ui32Price;
char skuId[SCE_NP_COMMERCE2_SKU_ID_LEN]; ///< The SKU ID
char productId[SCE_NP_COMMERCE2_PRODUCT_ID_LEN]; ///< The product ID.
char productName[SCE_NP_COMMERCE2_PRODUCT_NAME_LEN]; ///< The name of the product.
char shortDescription[SCE_NP_COMMERCE2_PRODUCT_SHORT_DESCRIPTION_LEN]; ///< A short description of the product.
char longDescription[SCE_NP_COMMERCE2_PRODUCT_LONG_DESCRIPTION_LEN]; ///< A long description of the product.
char legalDescription[SCE_NP_COMMERCE2_PRODUCT_LEGAL_DESCRIPTION_LEN]; ///< The legal description for the product.
char spName[SCE_NP_COMMERCE2_SP_NAME_LEN]; ///< The service provider name.
char imageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The product image URL.
char price[SCE_TOOLKIT_NP_SKU_PRICE_LEN]; ///< The price of the product. This is formatted to include the currency code.
char ratingSystemId[SCE_NP_COMMERCE2_RATING_SYSTEM_ID_LEN]; ///< The ID of the rating system (for example: PEGI, ESRB).
char ratingImageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The URL of the rating icon.
char padding[2]; ///< Padding.
#ifdef __PS3__
std::list<SceNpCommerce2ContentRatingDescriptor> ratingDescriptors; ///< The list of rating descriptors.
CellRtcTick releaseDate; ///< The product release date.
#else
SceRtcTick releaseDate; ///< The product release date.
#endif
}
ProductInfoDetailed;
/// @brief
/// Checkout parameters
///
/// This structure contains list of SKUs to checkout to and a memory container
typedef struct CheckoutInputParams
{
std::list<const char *> skuIds; ///< List of SKU IDs
#ifdef __PS3__
sys_memory_container_t *memContainer; ///< Memory container for checkout overlay
#endif
}
CheckoutInputParams;
/// @brief
/// Contains download list parameters.
///
/// Contains download list parameters.
typedef struct DownloadListInputParams
{
std::list<const char *> skuIds; ///< The list of SKU IDs
#ifdef __PS3__
sys_memory_container_t *memContainer; ///< A memory container for checkout overlay.
#endif
const char* categoryID;
}
DownloadListInputParams;
public:
virtual void CreateSession(CallbackFunc cb, LPVOID lpParam) = 0;
virtual void CloseSession() = 0;
virtual void GetCategoryInfo(CallbackFunc cb, LPVOID lpParam, CategoryInfo *info, const char *categoryId) = 0;
virtual void GetProductList(CallbackFunc cb, LPVOID lpParam, std::vector<ProductInfo>* productList, const char *categoryId) = 0;
virtual void GetDetailedProductInfo(CallbackFunc cb, LPVOID lpParam, ProductInfoDetailed* productInfoDetailed, const char *productId, const char *categoryId) = 0;
virtual void AddDetailedProductInfo( CallbackFunc cb, LPVOID lpParam, ProductInfo* productInfo, const char *productId, const char *categoryId ) = 0;
virtual void Checkout(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0;
virtual void DownloadAlreadyPurchased(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0;
#if defined(__ORBIS__) || defined( __PSVITA__)
virtual void Checkout_Game(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0;
virtual void DownloadAlreadyPurchased_Game(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0;
#endif
virtual void UpgradeTrial(CallbackFunc cb, LPVOID lpParam) = 0;
virtual void CheckForTrialUpgradeKey() = 0;
virtual bool LicenseChecked() = 0;
#if defined __ORBIS__ || defined __PSVITA__
virtual void ShowPsStoreIcon() = 0;
virtual void HidePsStoreIcon() = 0;
#endif
};