From 2818c8d69cb051d461f8ddfa59cd80cd5099e534 Mon Sep 17 00:00:00 2001 From: Ivan Morozov Date: Mon, 8 Feb 2021 18:41:56 +0300 Subject: [PATCH] AddAudioTransition --- .../PPTFormatLib/PPTXWriter/Converter.cpp | 3 ++- .../PPTXWriter/TimingConverter/Animation.cpp | 1 - .../Reader/PPTDocumentInfoOneUser.cpp | 21 ++++++++++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/Converter.cpp b/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/Converter.cpp index 9cd3e0c2c9..e500b25563 100644 --- a/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/Converter.cpp +++ b/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/Converter.cpp @@ -1312,7 +1312,8 @@ void PPT_FORMAT::CPPTXWriter::WriteTransition(CStringWriter& oWriter, CSlideShow }break; case 23: { - type = L"p:alphaFade"; + type = L"p:fade"; + // p:alphaFade }break; case 26: { diff --git a/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/Animation.cpp b/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/Animation.cpp index 7267fed705..122b4fe945 100644 --- a/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/Animation.cpp +++ b/ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/Animation.cpp @@ -402,7 +402,6 @@ void Animation::FillAudio(CRecordClientVisualElementContainer *pCVEC, oAudio.cMediaNode.tgtEl.embed = new OOX::RId(pCVEC->m_oVisualShapeAtom.m_nObjectIdRef); - // достать массив с текстом rid превратить в мапу std::vector soundCont; this->m_pSoundContainer->GetRecordsByType( &soundCont, false); diff --git a/ASCOfficePPTFile/PPTFormatLib/Reader/PPTDocumentInfoOneUser.cpp b/ASCOfficePPTFile/PPTFormatLib/Reader/PPTDocumentInfoOneUser.cpp index b8b9932de6..5455649090 100644 --- a/ASCOfficePPTFile/PPTFormatLib/Reader/PPTDocumentInfoOneUser.cpp +++ b/ASCOfficePPTFile/PPTFormatLib/Reader/PPTDocumentInfoOneUser.cpp @@ -827,7 +827,7 @@ void CPPTUserInfo::LoadSlide(_UINT32 dwSlideID, CSlide* pSlide) { PPT_FORMAT::CExFilesInfo* pInfo = m_oExMedia.LockAudioFromCollection(pAtom->m_nSoundRef); if (NULL != pInfo) - AddAudioTransition (dwSlideID, pTransition, pInfo->m_strFilePath); + AddAudioTransition (pAtom->m_nSoundRef, pTransition, pInfo->m_strFilePath); } // анимации @@ -2484,12 +2484,27 @@ void CPPTUserInfo::LoadExAudio(CRecordsContainer* pExObject) // } //} -void CPPTUserInfo::AddAudioTransition (_UINT32 dwSlideID, CTransition* pTransition, const std::wstring& strFilePath) +void CPPTUserInfo::AddAudioTransition (_UINT32 refID, CTransition* pTransition, const std::wstring& strFilePath) { if (NULL==pTransition) return; - pTransition->m_oAudio.m_strAudioFileName = strFilePath; + std::vector sound; + m_oDocument.GetRecordsByType(&sound, false); + if (sound.empty() or sound[0]->m_arRecords.size() < refID) + return; + + auto audio = dynamic_cast(sound[0]->m_arRecords[refID]); + if (!audio) + return; + auto strRecord = dynamic_cast(audio->m_arRecords[0]); + + std::wstring audioName = strRecord->m_strText; + ; +// audioName.erase(audioName.find(L"."), audioName.end()); todo + if (strRecord) + pTransition->m_oAudio.m_sImageName = audioName; + // ??? недоделка ??? }