2 * ConvertingAlphMgr.cpp
5 * Created by Alan Lawrence on 06/08/2010.
6 * Copyright 2010 Cavendish Laboratory. All rights reserved.
10 #include "ConvertingAlphMgr.h"
11 #include "NodeCreationManager.h"
13 using namespace Dasher
;
15 CConvertingAlphMgr::CConvertingAlphMgr(CSettingsUser
*pCreateFrom
, CDasherInterfaceBase
*pInterface
, CNodeCreationManager
*pNCManager
, CConversionManager
*pConvMgr
, const CAlphInfo
*pAlphabet
)
16 : CAlphabetManager(pCreateFrom
, pInterface
, pNCManager
, pAlphabet
), m_pConvMgr(pConvMgr
) {
19 void CConvertingAlphMgr::MakeLabels(CDasherScreen
*pScreen
) {
20 CAlphabetManager::MakeLabels(pScreen
);
21 m_pConvMgr
->ChangeScreen(pScreen
);
24 CConvertingAlphMgr::~CConvertingAlphMgr() {
27 CDasherNode
*CConvertingAlphMgr::CreateSymbolNode(CAlphNode
*pParent
, symbol iSymbol
) {
28 //int i=m_pAlphabet->iEnd;
29 if (iSymbol
== m_pAlphabet
->iEnd
) {
30 pParent
->GetProbInfo();
31 DASHER_ASSERT(pCProb
->size() == m_pAlphabet
->iEnd
+1);//initial 0, final conversion prob
33 //this used to be the "CloneAlphContext" method. Why it uses the
34 // ConversionManager's LM to clone a context from an Alphabet Node,
35 // I don't know - not sure how LanguageModelling WRT conversion
36 // is supposed to work...
37 CLanguageModel::Context iContext
= (pParent
->iContext
)
38 ? m_pConvMgr
->m_pLanguageModel
->CloneContext(pParent
->iContext
)
39 : m_pConvMgr
->m_pLanguageModel
->CreateEmptyContext();
41 //ACL setting m_iOffset+1 for consistency with "proper" symbol nodes...
42 return m_pConvMgr
->GetRoot(pParent
->offset()+1, iContext
);
43 //Note: previous code used (*pCProb)[i-1] and (*pCProb)[i] instead of
44 // iLbnd and iHbnd passed in; presumably these must have been the same?
46 return CAlphabetManager::CreateSymbolNode(pParent
, iSymbol
);