BVB Source Codes

CRYENGINE Show FlowAudioPreloadData.cpp Source code

Return Download CRYENGINE: download FlowAudioPreloadData.cpp Source code - Download CRYENGINE Source code - Type:.cpp
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #include "StdAfx.h"
  4.  
  5. #include <CryFlowGraph/IFlowBaseNode.h>
  6.  
  7. class CFlowNode_AudioPreloadData final : public CFlowBaseNode<eNCT_Instanced>
  8. {
  9. public:
  10.  
  11.         explicit CFlowNode_AudioPreloadData(SActivationInfo* pActInfo)
  12.                 : m_bEnable(false)
  13.         {}
  14.  
  15.         virtual ~CFlowNode_AudioPreloadData() override = default;
  16.  
  17.         CFlowNode_AudioPreloadData(CFlowNode_AudioPreloadData const&) = delete;
  18.         CFlowNode_AudioPreloadData(CFlowNode_AudioPreloadData&&) = delete;
  19.         CFlowNode_AudioPreloadData& operator=(CFlowNode_AudioPreloadData const&) = delete;
  20.         CFlowNode_AudioPreloadData& operator=(CFlowNode_AudioPreloadData&&) = delete;
  21.  
  22.         virtual IFlowNodePtr Clone(SActivationInfo* pActInfo) override
  23.         {
  24.                 return new CFlowNode_AudioPreloadData(pActInfo);
  25.         }
  26.  
  27.         enum INPUTS
  28.         {
  29.                 eIn_PreloadRequestFirst = 0,
  30.                 eIn_PreloadRequest1,
  31.                 eIn_PreloadRequest2,
  32.                 eIn_PreloadRequest3,
  33.                 eIn_PreloadRequest4,
  34.                 eIn_PreloadRequest5,
  35.                 eIn_PreloadRequest6,
  36.                 eIn_PreloadRequestLast,
  37.                 eIn_Enable,
  38.                 eIn_Disable,
  39.         };
  40.  
  41.         enum OUTPUTS
  42.         {
  43.         };
  44.  
  45.         virtual void GetConfiguration(SFlowNodeConfig& config) override
  46.         {
  47.                 static const SInputPortConfig inputs[] =
  48.                 {
  49.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest0", _HELP("name of preload request"),                "Preload Request"),
  50.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest1", _HELP("name of preload request"),                "Preload Request"),
  51.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest2", _HELP("name of preload request"),                "Preload Request"),
  52.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest3", _HELP("name of preload request"),                "Preload Request"),
  53.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest4", _HELP("name of preload request"),                "Preload Request"),
  54.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest5", _HELP("name of preload request"),                "Preload Request"),
  55.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest6", _HELP("name of preload request"),                "Preload Request"),
  56.                         InputPortConfig<string>("audioPreloadRequest_PreloadRequest7", _HELP("name of preload request"),                "Preload Request"),
  57.                         InputPortConfig_Void("Load",                                   _HELP("loads all supplied preload requests")),
  58.                         InputPortConfig_Void("Unload",                                 _HELP("unloads all supplied preload requests")),
  59.                         { 0 }
  60.                 };
  61.  
  62.                 static const SOutputPortConfig outputs[] =
  63.                 {
  64.                         { 0 }
  65.                 };
  66.  
  67.                 config.pInputPorts = inputs;
  68.                 config.pOutputPorts = outputs;
  69.                 config.sDescription = _HELP("Node that allows for handling audio preload requests.");
  70.                 config.SetCategory(EFLN_APPROVED);
  71.         }
  72.  
  73.         void Enable(SActivationInfo* pActInfo, bool bEnable)
  74.         {
  75.                 if (m_bEnable != bEnable && gEnv->pAudioSystem != nullptr)
  76.                 {
  77.                         for (uint32 i = eIn_PreloadRequestFirst; i <= eIn_PreloadRequestLast; ++i)
  78.                         {
  79.                                 string const& preloadName = GetPortString(pActInfo, static_cast<int>(i));
  80.  
  81.                                 if (!preloadName.empty())
  82.                                 {
  83.                                         SAudioRequest request;
  84.                                         AudioPreloadRequestId preloadRequestId = INVALID_AUDIO_PRELOAD_REQUEST_ID;
  85.  
  86.                                         if (gEnv->pAudioSystem->GetAudioPreloadRequestId(preloadName.c_str(), preloadRequestId))
  87.                                         {
  88.                                                 if (bEnable)
  89.                                                 {
  90.                                                         SAudioManagerRequestData<eAudioManagerRequestType_PreloadSingleRequest> requestData(preloadRequestId, false);
  91.                                                         request.pData = &requestData;
  92.                                                         gEnv->pAudioSystem->PushRequest(request);
  93.                                                 }
  94.                                                 else
  95.                                                 {
  96.                                                         SAudioManagerRequestData<eAudioManagerRequestType_UnloadSingleRequest> requestData(preloadRequestId);
  97.                                                         request.pData = &requestData;
  98.                                                         gEnv->pAudioSystem->PushRequest(request);
  99.                                                 }
  100.                                         }
  101.                                 }
  102.                         }
  103.  
  104.                         m_bEnable = bEnable;
  105.                 }
  106.         }
  107.  
  108.         virtual void Serialize(SActivationInfo* pActInfo, TSerialize ser) override
  109.         {
  110.                 bool bEnable = m_bEnable;
  111.                 ser.BeginGroup("FlowAudioPreloadData");
  112.                 ser.Value("enable", bEnable);
  113.                 ser.EndGroup();
  114.  
  115.                 if (ser.IsReading())
  116.                 {
  117.                         Enable(pActInfo, bEnable);
  118.                 }
  119.         }
  120.  
  121.         virtual void ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo) override
  122.         {
  123.                 switch (event)
  124.                 {
  125.                 case eFE_Initialize:
  126.                         {
  127.                                 Enable(pActInfo, false);
  128.  
  129.                                 break;
  130.                         }
  131.                 case eFE_Activate:
  132.                         {
  133.                                 // Enable
  134.                                 if (IsPortActive(pActInfo, eIn_Enable))
  135.                                 {
  136.                                         Enable(pActInfo, true);
  137.                                 }
  138.  
  139.                                 // Disable
  140.                                 if (IsPortActive(pActInfo, eIn_Disable))
  141.                                 {
  142.                                         Enable(pActInfo, false);
  143.                                 }
  144.  
  145.                                 break;
  146.                         }
  147.                 }
  148.         }
  149.  
  150.         virtual void GetMemoryUsage(ICrySizer* s) const override
  151.         {
  152.                 s->Add(*this);
  153.         }
  154.  
  155. private:
  156.  
  157.         bool m_bEnable;
  158. };
  159.  
  160. REGISTER_FLOW_NODE("Audio:PreloadData", CFlowNode_AudioPreloadData);
  161.  
downloadFlowAudioPreloadData.cpp Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top