2013-04-25 17:33:42 +08:00
|
|
|
/****************************************************************************
|
|
|
|
Copyright (c) 2012-2013 cocos2d-x.org
|
|
|
|
|
|
|
|
http://www.cocos2d-x.org
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
|
|
in the Software without restriction, including without limitation the rights
|
|
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
|
|
all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
THE SOFTWARE.
|
|
|
|
****************************************************************************/
|
2013-04-22 10:38:14 +08:00
|
|
|
#ifndef __CCX_PROTOCOL_ADS_H__
|
|
|
|
#define __CCX_PROTOCOL_ADS_H__
|
|
|
|
|
|
|
|
#include "PluginProtocol.h"
|
|
|
|
#include <map>
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
namespace cocos2d { namespace plugin {
|
|
|
|
|
2013-04-26 17:16:06 +08:00
|
|
|
typedef std::map<std::string, std::string> TAdsDeveloperInfo;
|
2013-04-22 10:38:14 +08:00
|
|
|
|
2013-04-26 17:16:06 +08:00
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
kAdsReceived = 0, // The ad is received
|
|
|
|
|
|
|
|
kFullScreenViewShown, // The full screen advertisement shown
|
|
|
|
kFullScreenViewDismissed, // The full screen advertisement dismissed
|
|
|
|
|
|
|
|
kPointsSpendSucceed, // The points spend succeed
|
|
|
|
kPointsSpendFailed, // The points spend failed
|
|
|
|
|
|
|
|
kNetworkError, // Network error
|
|
|
|
kUnknownError, // Unknown error
|
|
|
|
} AdsResultCode;
|
|
|
|
|
|
|
|
class ProtocolAds;
|
|
|
|
class AdsListener
|
2013-04-22 10:38:14 +08:00
|
|
|
{
|
|
|
|
public:
|
2013-04-26 17:16:06 +08:00
|
|
|
/**
|
|
|
|
@brief The advertisement request result
|
|
|
|
*/
|
|
|
|
virtual void onAdsResult(AdsResultCode code, const char* msg) = 0;
|
|
|
|
|
|
|
|
/**
|
|
|
|
@brief Player get points from advertisement(For example: Tapjoy)
|
|
|
|
@param points The point number player has got.
|
|
|
|
@param pAdsPlugin The plugin which the player get points. Used to spend the points.
|
|
|
|
*/
|
2013-04-27 11:32:12 +08:00
|
|
|
virtual void onPlayerGetPoints(ProtocolAds* pAdsPlugin, int points) {}
|
2013-04-22 10:38:14 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
class ProtocolAds : public PluginProtocol
|
|
|
|
{
|
|
|
|
public:
|
2013-05-24 17:34:01 +08:00
|
|
|
ProtocolAds();
|
|
|
|
virtual ~ProtocolAds();
|
2013-04-22 10:38:14 +08:00
|
|
|
|
|
|
|
typedef enum {
|
2013-04-26 17:16:06 +08:00
|
|
|
kBannerAd = 0,
|
|
|
|
kFullScreenAd,
|
|
|
|
} AdsType;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
kPosCenter = 0,
|
|
|
|
kPosTop,
|
|
|
|
kPosTopLeft,
|
|
|
|
kPosTopRight,
|
|
|
|
kPosBottom,
|
|
|
|
kPosBottomLeft,
|
|
|
|
kPosBottomRight,
|
|
|
|
} AdsPos;
|
2013-04-22 10:38:14 +08:00
|
|
|
|
|
|
|
/**
|
2013-04-26 17:16:06 +08:00
|
|
|
@brief config the application info
|
|
|
|
@param devInfo This parameter is the info of aplication,
|
2013-04-22 10:38:14 +08:00
|
|
|
different plugin have different format
|
|
|
|
@warning Must invoke this interface before other interfaces.
|
|
|
|
And invoked only once.
|
|
|
|
*/
|
2013-05-24 17:34:01 +08:00
|
|
|
void configDeveloperInfo(TAdsDeveloperInfo devInfo);
|
2013-04-22 10:38:14 +08:00
|
|
|
|
|
|
|
/**
|
2013-04-26 17:16:06 +08:00
|
|
|
@brief show adview
|
|
|
|
@param type The adview type need to show.
|
2013-04-22 10:38:14 +08:00
|
|
|
@param sizeEnum The size of the banner view.
|
2013-04-26 17:16:06 +08:00
|
|
|
(only used when type is kBannerAd)
|
|
|
|
In different plugin, it's have different mean.
|
|
|
|
Pay attention to the subclass definition
|
|
|
|
@param pos The position where the adview be shown.
|
|
|
|
(only used when type is kBannerAd)
|
|
|
|
*/
|
2013-05-24 17:34:01 +08:00
|
|
|
void showAds(AdsType type, int sizeEnum = 0, AdsPos pos = kPosCenter);
|
2013-04-26 17:16:06 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
@brief Hide the adview
|
|
|
|
@param type The adview type need to hide.
|
2013-04-22 10:38:14 +08:00
|
|
|
*/
|
2013-05-24 17:34:01 +08:00
|
|
|
void hideAds(AdsType type);
|
2013-04-22 10:38:14 +08:00
|
|
|
|
|
|
|
/**
|
2013-04-26 17:16:06 +08:00
|
|
|
@brief Spend the points.
|
|
|
|
Use this method to notify server spend points.
|
|
|
|
@param points Need spend number of points
|
2013-04-22 10:38:14 +08:00
|
|
|
*/
|
2013-05-24 17:34:01 +08:00
|
|
|
void spendPoints(int points);
|
2013-04-22 10:38:14 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
@brief set the Ads listener
|
|
|
|
*/
|
2013-04-26 17:16:06 +08:00
|
|
|
void setAdsListener(AdsListener* pListener);
|
2013-04-22 10:38:14 +08:00
|
|
|
|
|
|
|
// For the callbak methods
|
2013-04-26 17:16:06 +08:00
|
|
|
void onAdsResult(AdsResultCode code, const char* msg);
|
|
|
|
void onPlayerGetPoints(int points);
|
2013-04-22 10:38:14 +08:00
|
|
|
|
|
|
|
protected:
|
2013-04-26 17:16:06 +08:00
|
|
|
AdsListener* m_pListener;
|
2013-04-22 10:38:14 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
}} // namespace cocos2d { namespace plugin {
|
|
|
|
|
|
|
|
#endif /* __CCX_PROTOCOL_ADS_H__ */
|