You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
196 lines
4.9 KiB
C++
196 lines
4.9 KiB
C++
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
AndroidTargetDevice.h: Declares the AndroidTargetDevice class.
|
|
=============================================================================*/
|
|
|
|
#pragma once
|
|
|
|
|
|
/**
|
|
* Type definition for shared pointers to instances of FAndroidTargetDevice.
|
|
*/
|
|
typedef TSharedPtr<class FAndroidTargetDevice, ESPMode::ThreadSafe> FAndroidTargetDevicePtr;
|
|
|
|
/**
|
|
* Type definition for shared references to instances of FAndroidTargetDevice.
|
|
*/
|
|
typedef TSharedRef<class FAndroidTargetDevice, ESPMode::ThreadSafe> FAndroidTargetDeviceRef;
|
|
|
|
|
|
/**
|
|
* Implements a Android target device.
|
|
*/
|
|
class FAndroidTargetDevice
|
|
: public ITargetDevice
|
|
{
|
|
public:
|
|
|
|
/**
|
|
* Creates and initializes a new Android target device.
|
|
*
|
|
* @param InTargetPlatform - The target platform.
|
|
* @param InSerialNumber - The ADB serial number of the target device.
|
|
* @param InAndroidVariant - The variant of the Android platform, i.e. ATC, DXT or PVRTC.
|
|
*/
|
|
FAndroidTargetDevice( const ITargetPlatform& InTargetPlatform, const FString& InSerialNumber, const FString& InAndroidVariant )
|
|
: AndroidVariant(InAndroidVariant)
|
|
, Connected(false)
|
|
, DeviceName(InSerialNumber)
|
|
, Model(InSerialNumber)
|
|
, SerialNumber(InSerialNumber)
|
|
, TargetPlatform(InTargetPlatform)
|
|
{ }
|
|
|
|
public:
|
|
|
|
/**
|
|
* Sets the device's connection state.
|
|
*
|
|
* @param InConnected - Whether the device is connected.
|
|
*/
|
|
void SetConnected( bool InConnected )
|
|
{
|
|
Connected = InConnected;
|
|
}
|
|
|
|
/**
|
|
* Sets the device name.
|
|
*
|
|
* @param InDeviceName - The device name to set.
|
|
*/
|
|
void SetDeviceName( const FString& InDeviceName )
|
|
{
|
|
DeviceName = InDeviceName;
|
|
}
|
|
|
|
/**
|
|
* Sets the device name.
|
|
*
|
|
* @param InDeviceName - The device name to set.
|
|
*/
|
|
void SetModel( const FString& InNodel )
|
|
{
|
|
Model = InNodel;
|
|
}
|
|
|
|
public:
|
|
|
|
// Begin ITargetDevice interface
|
|
|
|
virtual bool Connect( ) OVERRIDE
|
|
{
|
|
return true;
|
|
}
|
|
|
|
virtual bool Deploy( const FString& SourceFolder, FString& OutAppId ) OVERRIDE;
|
|
|
|
virtual void Disconnect( ) OVERRIDE
|
|
{ }
|
|
|
|
virtual ETargetDeviceTypes::Type GetDeviceType( ) const OVERRIDE
|
|
{
|
|
return ETargetDeviceTypes::Tablet;
|
|
}
|
|
|
|
virtual FTargetDeviceId GetId( ) const OVERRIDE
|
|
{
|
|
return FTargetDeviceId(TargetPlatform.PlatformName(), SerialNumber);
|
|
}
|
|
|
|
virtual FString GetName( ) const OVERRIDE
|
|
{
|
|
if (AndroidVariant.IsEmpty())
|
|
{
|
|
//return DeviceName;
|
|
return Model;
|
|
}
|
|
|
|
//return FString::Printf(TEXT("%s (%s)"), *DeviceName, *AndroidVariant);
|
|
return FString::Printf(TEXT("%s (%s)"), *Model, *AndroidVariant);
|
|
}
|
|
|
|
virtual FString GetOperatingSystemName( ) OVERRIDE
|
|
{
|
|
return TEXT("Android");
|
|
}
|
|
|
|
virtual int32 GetProcessSnapshot( TArray<FTargetDeviceProcessInfo>& OutProcessInfos ) OVERRIDE;
|
|
|
|
virtual const class ITargetPlatform& GetTargetPlatform( ) const OVERRIDE
|
|
{
|
|
return TargetPlatform;
|
|
}
|
|
|
|
virtual bool IsConnected( ) OVERRIDE
|
|
{
|
|
return Connected;
|
|
}
|
|
|
|
virtual bool IsDefault( ) const OVERRIDE
|
|
{
|
|
return true;
|
|
}
|
|
|
|
virtual bool PowerOff( bool Force ) OVERRIDE;
|
|
|
|
virtual bool PowerOn( ) OVERRIDE
|
|
{
|
|
return true;
|
|
}
|
|
|
|
virtual bool Launch( const FString& AppId, EBuildConfigurations::Type BuildConfiguration, EBuildTargets::Type BuildTarget, const FString& Params, uint32* OutProcessId );
|
|
|
|
virtual bool Reboot( bool bReconnect = false ) OVERRIDE;
|
|
|
|
virtual bool Run( const FString& ExecutablePath, const FString& Params, uint32* OutProcessId ) OVERRIDE;
|
|
|
|
virtual bool SupportsFeature( ETargetDeviceFeatures::Type Feature ) const OVERRIDE;
|
|
|
|
virtual bool SupportsSdkVersion( const FString& VersionString ) const OVERRIDE;
|
|
|
|
virtual bool TerminateProcess( const int32 ProcessId ) OVERRIDE;
|
|
|
|
virtual void SetUserCredentials( const FString & UserName, const FString & UserPassword ) OVERRIDE;
|
|
|
|
virtual bool GetUserCredentials( FString & OutUserName, FString & OutUserPassword ) OVERRIDE;
|
|
|
|
// End ITargetDevice interface
|
|
|
|
protected:
|
|
|
|
/**
|
|
* Executes an SDK command with the specified command line on this device only using ADB.
|
|
*
|
|
* @param Params - The command line parameters.
|
|
* @param OutStdOut - Optional pointer to a string that will hold the command's output log.
|
|
* @param OutStdErr - Optional pointer to a string that will hold the error message, if any.
|
|
*
|
|
* @return true on success, false otherwise.
|
|
*/
|
|
bool ExecuteAdbCommand( const FString& Params, FString* OutStdOut, FString* OutStdErr ) const;
|
|
|
|
private:
|
|
|
|
// The variant of the Android platform, i.e. ATC, DXT or PVRTC.
|
|
FString AndroidVariant;
|
|
|
|
// Holds a flag indicating whether the device is currently connected.
|
|
bool Connected;
|
|
|
|
// Holds the device name.
|
|
FString DeviceName;
|
|
|
|
// Holds the device model.
|
|
FString Model;
|
|
|
|
// Holds the serial number (from ADB devices) of this target device.
|
|
FString SerialNumber;
|
|
|
|
// Holds a reference to the device's target platform.
|
|
const ITargetPlatform& TargetPlatform;
|
|
};
|
|
|
|
|
|
#include "AndroidTargetDevice.inl"
|