iOS: Vdopia SDK w/ Monkey

Monkey Forums/Monkey Code/iOS: Vdopia SDK w/ Monkey

DGuy(Posted 2011) [#1]
Native iOS Code:
NOTE: The Vdopia SDK can serve banner ads, but this code is for fullscreen in-app video & interstitial ads only
NOTE: There is no harm calling '*_Init' during resumes and/or "*_UnInit" during suspends
/*
** Network_Vdopia.cpp
*/
#import "VDOAds.h"

@class _VdopiaDelegate;

static bool		_vdopia_isFullscreen;
static _VdopiaDelegate*	_vdopia_adDelegate;

@interface _VdopiaDelegate : NSObject <VDOAdsDelegate>
	{
	VDOAds *vdoAds;
	}
- (bool) inAppAvailable;
- (void) playInApp;
@end

@implementation _VdopiaDelegate
- (id) initWithAPIKey:(String)APIKey
	{
	if( (self = [super init]) )
		{
		vdoAds = [VDOAds alloc];
		vdoAds.delegate = self;
		[vdoAds openWithAppKey:APIKey.ToNSString() useLocation:false withFrame:CGRectNull startWithBanners:false];
    		}
	return self;
	}

- (void) dealloc
	{
	[vdoAds close];
	vdoAds.delegate = nil;
	[vdoAds release];
	[super dealloc];
	}

- (bool) inAppAvailable
	{
	return [vdoAds isInAppAvailable];
	}

- (void) playInApp
	{
	_vdopia_isFullscreen = true;
	[vdoAds playInApp];
	}

- (void) playedVDOAd
	{
	printf( "%s\n", __func__ );
	_vdopia_isFullscreen = false;
	}

- (void) noVDOAd
	{
	printf( "%s\n", __func__ );
	}

- (void) playedInApp
	{
	printf( "%s\n", __func__ );
	_vdopia_isFullscreen = false;
	}

- (void) noInApp
	{
	printf( "%s\n", __func__ );
	}
@end

void Vdopia_Init( String APIKey )
	{
	printf( "%s\n", __func__ );
	if( !_vdopia_adDelegate )
		{
		_vdopia_adDelegate = [[_VdopiaDelegate alloc] initWithAPIKey:APIKey];
		}
	}
	
void Vdopia_UnInit()
	{
	printf( "%s\n", __func__ );
	if( _vdopia_adDelegate )
		{
		[_vdopia_adDelegate release];
		_vdopia_adDelegate = nil;
		}
	}
	
bool Vdopia_RequestAd()
	{
	printf( "%s -> ", __func__ );
	if( _vdopia_adDelegate )
		{
		if( [_vdopia_adDelegate inAppAvailable] )
			{
			[_vdopia_adDelegate playInApp];
			printf( "Ok.\n" );
			return true;	
			}
		}
	printf( "Not Available.\n" );
	return false;
	}

bool Vdopia_IsFullscreen() { return _vdopia_isFullscreen; }


Monkey Interface:
'vdopia.monkey
Private
Import "vdopia.cpp"

Extern
Function Vdopia_Init:Void( APIKey$ )
Function Vdopia_UnInit:Void()
Function Vdopia_RequestAd?()
Function Vdopia_IsFullscreen?()


Usage:
'main.monkey
Import vdopia

Function Main()
	Vdopia_Init( "app-key-here" )
	Vdopia_RequestAd  '<-- will very likely return false (no-ad-ready) because the SDK has not had time to buffer ad
End


Enjoy!