| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | 
							- #include "SPlaylistsEnumerator.h"
 
- #include "api__playlist.h"
 
- #include <bfc/nsguid.h>
 
- #include "Playlists.h"
 
- extern ScriptObjectController *script_root;
 
- extern PlaylistsEnumeratorScriptController playlistsEnumeratorController;
 
- // {C18F8E50-2C81-4001-9F46-FD942B07ECCD}
 
- static const GUID makiPlaylistsEnumeratorGUID = 
 
- { 0xc18f8e50, 0x2c81, 0x4001, { 0x9f, 0x46, 0xfd, 0x94, 0x2b, 0x7, 0xec, 0xcd } };
 
- // -- Functions table -------------------------------------
 
- function_descriptor_struct PlaylistsEnumeratorScriptController::exportedFunction[] = {
 
- 	{L"GetCount",    0, (void *)SPlaylistsEnumerator::script_vcpu_GetCount },
 
- 	{L"GetFilename", 1, (void *)SPlaylistsEnumerator::script_vcpu_GetFilename },
 
- 	{L"GetTitle",    1, (void *)SPlaylistsEnumerator::script_vcpu_GetTitle },
 
- 	{L"GetLength",   1, (void *)SPlaylistsEnumerator::script_vcpu_GetLength },
 
- 	{L"GetNumItems", 1, (void *)SPlaylistsEnumerator::script_vcpu_GetNumItems },
 
- 	{L"GetGUID",     1, (void *)SPlaylistsEnumerator::script_vcpu_GetGUID },
 
- };
 
- // --------------------------------------------------------
 
- const wchar_t *PlaylistsEnumeratorScriptController::getClassName()
 
- {
 
- 	return L"PlaylistsEnumerator";
 
- }
 
- const wchar_t *PlaylistsEnumeratorScriptController::getAncestorClassName()
 
- {
 
- 	return L"Object";
 
- }
 
- ScriptObjectController *PlaylistsEnumeratorScriptController::getAncestorController() 
 
- {
 
- 	return script_root; 
 
- }
 
- ScriptObject *PlaylistsEnumeratorScriptController::instantiate()
 
- {
 
- 	SPlaylistsEnumerator *xd = new SPlaylistsEnumerator;
 
- 	ASSERT(xd != NULL);
 
- 	return xd->getScriptObject();
 
- }
 
- void PlaylistsEnumeratorScriptController::destroy( ScriptObject *o )
 
- {
 
- 	SPlaylistsEnumerator *xd = static_cast<SPlaylistsEnumerator *>( o->vcpu_getInterface( makiPlaylistsEnumeratorGUID ) );
 
- 	ASSERT( xd != NULL );
 
- 	delete xd;
 
- }
 
- void *PlaylistsEnumeratorScriptController::encapsulate( ScriptObject *o )
 
- {
 
- 	return NULL;
 
- }
 
- void PlaylistsEnumeratorScriptController::deencapsulate( void *o )
 
- {}
 
- int PlaylistsEnumeratorScriptController::getNumFunctions()
 
- {
 
- 	return sizeof( exportedFunction ) / sizeof( function_descriptor_struct );
 
- }
 
- const function_descriptor_struct *PlaylistsEnumeratorScriptController::getExportedFunctions()
 
- {
 
- 	return exportedFunction;
 
- }
 
- GUID PlaylistsEnumeratorScriptController::getClassGuid()
 
- {
 
- 	return makiPlaylistsEnumeratorGUID;
 
- }
 
- /* --- */
 
- SPlaylistsEnumerator::SPlaylistsEnumerator()
 
- {
 
- 	getScriptObject()->vcpu_setInterface( makiPlaylistsEnumeratorGUID, static_cast<SPlaylistsEnumerator *>( this ) );
 
- 	getScriptObject()->vcpu_setClassName( L"PlaylistsEnumerator" );
 
- 	getScriptObject()->vcpu_setController( &playlistsEnumeratorController );
 
- }
 
- SPlaylistsEnumerator::~SPlaylistsEnumerator()
 
- {
 
- 	//info.deleteAll();
 
- 	for (auto obj : info)
 
- 	{
 
- 		delete obj;
 
- 	}
 
- 	info.clear();
 
- }
 
- scriptVar SPlaylistsEnumerator::script_vcpu_GetCount( SCRIPT_FUNCTION_PARAMS, ScriptObject *o )
 
- {
 
- 	SCRIPT_FUNCTION_INIT;
 
- 	SPlaylistsEnumerator *enumerator = static_cast<SPlaylistsEnumerator *>( o->vcpu_getInterface( makiPlaylistsEnumeratorGUID ) );
 
- 	if ( enumerator )
 
- 	{
 
- 		return MAKE_SCRIPT_INT( (int)enumerator->info.size() );
 
- 	}
 
- 	return MAKE_SCRIPT_INT( 0 );
 
- }
 
- static const wchar_t *static_splaylistsenumerator_empty_string = L"";
 
- scriptVar SPlaylistsEnumerator::script_vcpu_GetFilename( SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar playlistNumber )
 
- {
 
- 	SCRIPT_FUNCTION_INIT;
 
- 	SPlaylistsEnumerator *enumerator = static_cast<SPlaylistsEnumerator *>( o->vcpu_getInterface( makiPlaylistsEnumeratorGUID ) );
 
- 	size_t i = GET_SCRIPT_INT( playlistNumber );
 
- 	if ( enumerator && i < enumerator->info.size() )
 
- 	{
 
- 		return MAKE_SCRIPT_STRING( enumerator->info[ i ]->filename );
 
- 	}
 
- 	return MAKE_SCRIPT_STRING( static_splaylistsenumerator_empty_string );
 
- }
 
- scriptVar SPlaylistsEnumerator::script_vcpu_GetTitle( SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar playlistNumber )
 
- {
 
- 	SCRIPT_FUNCTION_INIT;
 
- 	SPlaylistsEnumerator *enumerator = static_cast<SPlaylistsEnumerator *>( o->vcpu_getInterface( makiPlaylistsEnumeratorGUID ) );
 
- 	size_t i = GET_SCRIPT_INT( playlistNumber );
 
- 	if ( enumerator && i < enumerator->info.size() )
 
- 	{
 
- 		return MAKE_SCRIPT_STRING( enumerator->info[ i ]->title );
 
- 	}
 
- 	return MAKE_SCRIPT_STRING( static_splaylistsenumerator_empty_string );
 
- }
 
- scriptVar SPlaylistsEnumerator::script_vcpu_GetLength( SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar playlistNumber )
 
- {
 
- 	SCRIPT_FUNCTION_INIT;
 
- 	SPlaylistsEnumerator *enumerator = static_cast<SPlaylistsEnumerator *>( o->vcpu_getInterface( makiPlaylistsEnumeratorGUID ) );
 
- 	size_t i = GET_SCRIPT_INT( playlistNumber );
 
- 	if ( enumerator && i < enumerator->info.size() )
 
- 	{
 
- 		return MAKE_SCRIPT_INT( enumerator->info[ i ]->length );
 
- 	}
 
- 	return MAKE_SCRIPT_INT( -1 );
 
- }
 
- scriptVar SPlaylistsEnumerator::script_vcpu_GetNumItems( SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar playlistNumber )
 
- {
 
- 	SCRIPT_FUNCTION_INIT;
 
- 	SPlaylistsEnumerator *enumerator = static_cast<SPlaylistsEnumerator *>( o->vcpu_getInterface( makiPlaylistsEnumeratorGUID ) );
 
- 	size_t i = GET_SCRIPT_INT( playlistNumber );
 
- 	if ( enumerator && i < enumerator->info.size() )
 
- 	{
 
- 		return MAKE_SCRIPT_INT( enumerator->info[ i ]->numItems );
 
- 	}
 
- 	return MAKE_SCRIPT_INT( 0 );
 
- }
 
- static wchar_t static_splaylistsenumerator_guid_string[39];
 
- scriptVar SPlaylistsEnumerator::script_vcpu_GetGUID( SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar playlistNumber )
 
- {
 
- 	SCRIPT_FUNCTION_INIT;
 
- 	SPlaylistsEnumerator *enumerator = static_cast<SPlaylistsEnumerator *>( o->vcpu_getInterface( makiPlaylistsEnumeratorGUID ) );
 
- 	size_t i = GET_SCRIPT_INT( playlistNumber );
 
- 	if ( enumerator && i < enumerator->info.size() )
 
- 	{
 
- 		nsGUID::toCharW( enumerator->info[ i ]->guid, static_splaylistsenumerator_guid_string );
 
- 		return MAKE_SCRIPT_STRING( static_splaylistsenumerator_guid_string );
 
- 	}
 
- 	return MAKE_SCRIPT_STRING( static_splaylistsenumerator_empty_string );
 
- }
 
- void SPlaylistsEnumerator::Reserve( size_t count )
 
- {
 
- 	info.reserve( count );
 
- }
 
- void SPlaylistsEnumerator::AppendPlaylist( const PlaylistInfo &newPlaylist )
 
- {
 
- 	info.push_back( new PlaylistInfo( newPlaylist ) );
 
- }
 
 
  |