Files
UnrealEngineUWP/Engine/Source/Runtime/Media/Private/MediaModule.cpp

71 lines
1.3 KiB
C++
Raw Normal View History

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "CoreMinimal.h"
#include "Modules/ModuleManager.h"
#include "IMediaModule.h"
#include "IMediaPlayerFactory.h"
/**
* Implements the Media module.
*/
class FMediaModule
: public IMediaModule
{
public:
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
//~ IMediaModule interface
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
virtual const TArray<IMediaPlayerFactory*>& GetPlayerFactories() const override
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
return MediaPlayerFactories;
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
virtual IMediaPlayerFactory* GetPlayerFactory(const FName& FactoryName) const override
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
for (IMediaPlayerFactory* Factory : MediaPlayerFactories)
{
if (Factory->GetName() == FactoryName)
{
return Factory;
}
}
return nullptr;
}
virtual void RegisterPlayerFactory(IMediaPlayerFactory& Factory) override
{
MediaPlayerFactories.AddUnique(&Factory);
}
virtual void UnregisterPlayerFactory(IMediaPlayerFactory& Factory) override
{
MediaPlayerFactories.Remove(&Factory);
}
public:
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
//~ IModuleInterface interface
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
virtual void StartupModule() override { }
virtual void ShutdownModule() override
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
MediaPlayerFactories.Reset();
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
virtual bool SupportsDynamicReloading() override
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3057646) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2840895 on 2016/01/23 by Max.Chen Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu. Change 2937981 on 2016/04/08 by Max.Chen Sequencer: Refactored GetKeyHandles to take a time range for filtering keys Change 3051834 on 2016/07/15 by Max.Chen Sequencer: Adjust tooltips for autokeying and key all to be more descriptive. #jira UE-33081 Change 3053057 on 2016/07/17 by Max.Chen Sequencer: String track editor #jira UE-32141 Change 3053083 on 2016/07/18 by Max.Chen Sequence Recorder: Add an option to maximize the viewport when starting recording. Change 3053084 on 2016/07/18 by Max.Chen Added UnmapAction to FUICommandList Sequencer uses this to re-hook into the level editor commands without issue when it re-opens. Change 3053085 on 2016/07/18 by Max.Chen Sequence Recorder: Display name of next sequence in sequence recorder Also display on-screen during countdown Change 3053086 on 2016/07/18 by Max.Chen Sequence Recorder: Improved recording indicator icon, text & timer Also fixed a bug with record/stop button where they would not show/enable correctly if no animations were being recorded for a sequence. Change 3053089 on 2016/07/18 by Max.Chen Sequencer: Added hotkey for recording selected actors Alt+R now records selected actor into sequencer. Change 3055488 on 2016/07/19 by Max.Chen Sequencer: Fixed NotifyCameraCut() being erroneously called every frame (in FSequencer), and not being called at all in ULevelSequencePlayer Change 3056783 on 2016/07/19 by Max.Preussner PS4Media: Attempting to fix playlist advance on PS4 (UE-33481) #jira UE-33481 [CL 3057666 by Max Chen in Main branch]
2016-07-20 10:38:29 -04:00
return false;
}
private:
/** Holds the registered video player factories. */
TArray<IMediaPlayerFactory*> MediaPlayerFactories;
};
IMPLEMENT_MODULE(FMediaModule, Media);