本文整理汇总了C++中CFamiTrackerDoc::GetAvailableChannels方法的典型用法代码示例。如果您正苦于以下问题:C++ CFamiTrackerDoc::GetAvailableChannels方法的具体用法?C++ CFamiTrackerDoc::GetAvailableChannels怎么用?C++ CFamiTrackerDoc::GetAvailableChannels使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFamiTrackerDoc
的用法示例。
在下文中一共展示了CFamiTrackerDoc::GetAvailableChannels方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnInitDialog
BOOL CChannelsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_pAvailableTree = (CTreeCtrl*)GetDlgItem(IDC_AVAILABLE_TREE);
m_pAddedChannels = (CListCtrl*)GetDlgItem(IDC_ADDED_LIST);
int RootItems = sizeof(ROOT_ITEMS) / sizeof(TCHAR);
// m_pAddedChannels->GetWIndowLon
m_pAddedChannels->InsertColumn(0, _T("Name"), 0, 150);
for (int i = 0; i < ROOT_ITEM_COUNT; ++i) {
HTREEITEM hItem = m_pAvailableTree->InsertItem(ROOT_ITEMS[i]);
m_hRootItems[i] = hItem;
for (int j = 0; CHILD_ITEMS[i][j] != NULL; ++j) {
CString str;
str.Format(_T("%i: %s"), j + 1, CHILD_ITEMS[i][j]);
HTREEITEM hChild = m_pAvailableTree->InsertItem(str, hItem);
m_pAvailableTree->SetItemData(hChild, CHILD_ITEMS_ID[i][j]);
}
m_pAvailableTree->SortChildren(hItem);
}
CChannelMap *map = theApp.GetChannelMap();
CFamiTrackerDoc *pDoc = CFamiTrackerDoc::GetDoc();
for (unsigned i = 0; i < pDoc->GetAvailableChannels(); ++i) {
CTrackerChannel *pChannel = pDoc->GetChannel(i);
AddChannel(pChannel->GetID());
}
/*
AddChannel(CHANID_SQUARE1);
AddChannel(CHANID_SQUARE2);
AddChannel(CHANID_TRIANGLE);
AddChannel(CHANID_NOISE);
AddChannel(CHANID_DPCM);
*/
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
示例2: Redo
void CFrameAction::Redo(CMainFrame *pMainFrm)
{
// Redo action
CFamiTrackerView *pView = (CFamiTrackerView*)pMainFrm->GetActiveView();
CFamiTrackerDoc *pDocument = pView->GetDocument();
switch (m_iAction) {
case ACT_ADD:
pDocument->InsertFrame(m_iUndoFramePos + 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_REMOVE:
pDocument->RemoveFrame(m_iUndoFramePos);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_DUPLICATE:
pDocument->DuplicateFrame(m_iUndoFramePos);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_DUPLICATE_PATTERNS:
pDocument->DuplicatePatterns(m_iUndoFramePos + 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_CHANGE_COUNT:
pDocument->SetFrameCount(m_iNewFrameCount);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_SET_PATTERN:
pDocument->SetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos, m_iNewPattern);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
pMainFrm->UpdateControls();
break;
case ACT_SET_PATTERN_ALL:
{
int Channels = pDocument->GetAvailableChannels();
for (int i = 0; i < Channels; ++i) {
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iNewPattern);
}
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
}
break;
case ACT_CHANGE_PATTERN:
pDocument->SetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos, m_iOldPattern + m_iPatternDelta);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
break;
case ACT_CHANGE_PATTERN_ALL:
{
int Channels = pDocument->GetAvailableChannels();
for (int i = 0; i < Channels; ++i) {
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iPatterns[i] + m_iPatternDelta);
}
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
}
break;
case ACT_MOVE_DOWN:
pDocument->MoveFrameDown(m_iUndoFramePos);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_MOVE_UP:
pDocument->MoveFrameUp(m_iUndoFramePos);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_PASTE:
{
int Channels = pDocument->GetAvailableChannels();
for (int i = 0; i < Channels; ++i)
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iPasteData[i]);
}
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
break;
}
pView->SelectFrame(m_iRedoFramePos);
pView->SelectChannel(m_iRedoChannelPos);
}
示例3: SaveState
bool CFrameAction::SaveState(CMainFrame *pMainFrm)
{
// Perform action
CFrameEditor *pFrameEditor = pMainFrm->GetFrameEditor();
CFamiTrackerView *pView = (CFamiTrackerView*)pMainFrm->GetActiveView();
CFamiTrackerDoc *pDocument = pView->GetDocument();
m_iUndoFramePos = pView->GetSelectedFrame();
m_iUndoChannelPos = pView->GetSelectedChannel();
switch (m_iAction) {
case ACT_ADD:
if (!pDocument->InsertFrame(m_iUndoFramePos + 1))
return false;
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_REMOVE:
SaveFrame(pDocument);
if (!pDocument->RemoveFrame(m_iUndoFramePos))
return false;
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_DUPLICATE:
if (!pDocument->DuplicateFrame(m_iUndoFramePos))
return false;
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_DUPLICATE_PATTERNS:
if (!pDocument->DuplicatePatterns(m_iUndoFramePos + 1))
return false;
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_CHANGE_COUNT:
m_iUndoFrameCount = pDocument->GetFrameCount();
pDocument->SetFrameCount(m_iNewFrameCount);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_SET_PATTERN:
m_iOldPattern = pDocument->GetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos);
pDocument->SetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos, m_iNewPattern);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
break;
case ACT_SET_PATTERN_ALL:
{
int Channels = pDocument->GetAvailableChannels();
for (int i = 0; i < Channels; ++i) {
m_iPatterns[i] = pDocument->GetPatternAtFrame(m_iUndoFramePos, i);
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iNewPattern);
}
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
}
break;
case ACT_CHANGE_PATTERN:
{
m_iOldPattern = pDocument->GetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos);
int NewPattern = m_iOldPattern + m_iPatternDelta;
if (NewPattern < 0)
NewPattern = 0;
if (NewPattern >= MAX_FRAMES)
NewPattern = MAX_FRAMES - 1;
if (NewPattern == m_iOldPattern)
return false;
pDocument->SetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos, NewPattern);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
}
break;
case ACT_CHANGE_PATTERN_ALL:
{
int Channels = pDocument->GetAvailableChannels();
for (int i = 0; i < Channels; ++i) {
m_iPatterns[i] = pDocument->GetPatternAtFrame(m_iUndoFramePos, i);
if (m_iPatterns[i] + m_iPatternDelta < 0 || m_iPatterns[i] + m_iPatternDelta >= MAX_FRAMES)
return false;
}
for (int i = 0; i < Channels; ++i)
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iPatterns[i] + m_iPatternDelta);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
}
break;
case ACT_MOVE_DOWN:
if (!pDocument->MoveFrameDown(m_iUndoFramePos))
return false;
pView->SelectFrame(m_iUndoFramePos + 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_MOVE_UP:
if (!pDocument->MoveFrameUp(m_iUndoFramePos))
return false;
pView->SelectFrame(m_iUndoFramePos - 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_PASTE:
SaveFrame(pDocument);
{
int Channels = pDocument->GetAvailableChannels();
for (int i = 0; i < Channels; ++i)
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iPasteData[i]);
}
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
//.........这里部分代码省略.........
示例4: Undo
void CFrameAction::Undo(CMainFrame *pMainFrm)
{
// Undo action
CFrameEditor *pFrameEditor = pMainFrm->GetFrameEditor();
CFamiTrackerView *pView = (CFamiTrackerView*)pMainFrm->GetActiveView();
CFamiTrackerDoc *pDocument = pView->GetDocument();
m_iRedoFramePos = pView->GetSelectedFrame();
m_iRedoChannelPos = pView->GetSelectedChannel();
pView->SelectFrame(m_iUndoFramePos);
pView->SelectChannel(m_iUndoChannelPos);
switch (m_iAction) {
case ACT_ADD:
pDocument->RemoveFrame(m_iUndoFramePos + 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_REMOVE:
pDocument->InsertFrame(m_iUndoFramePos);
RestoreFrame(pDocument);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_DUPLICATE:
pDocument->RemoveFrame(m_iUndoFramePos);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_DUPLICATE_PATTERNS:
for (unsigned int i = 0; i < pDocument->GetAvailableChannels(); ++i) {
pDocument->ClearPattern(m_iUndoFramePos + 1, i);
}
pDocument->RemoveFrame(m_iUndoFramePos + 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_CHANGE_COUNT:
pDocument->SetFrameCount(m_iUndoFrameCount);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_SET_PATTERN:
pDocument->SetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos, m_iOldPattern);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
pMainFrm->UpdateControls();
break;
case ACT_SET_PATTERN_ALL:
for (unsigned int i = 0; i < pDocument->GetAvailableChannels(); ++i) {
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iPatterns[i]);
}
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
break;
case ACT_CHANGE_PATTERN:
pDocument->SetPatternAtFrame(m_iUndoFramePos, m_iUndoChannelPos, m_iOldPattern);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
break;
case ACT_CHANGE_PATTERN_ALL:
for (unsigned int i = 0; i < pDocument->GetAvailableChannels(); ++i) {
pDocument->SetPatternAtFrame(m_iUndoFramePos, i, m_iPatterns[i]);
}
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
break;
case ACT_MOVE_DOWN:
pDocument->MoveFrameUp(m_iUndoFramePos + 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_MOVE_UP:
pDocument->MoveFrameDown(m_iUndoFramePos - 1);
pDocument->UpdateAllViews(NULL, CHANGED_FRAMES);
break;
case ACT_PASTE:
RestoreFrame(pDocument);
pDocument->UpdateAllViews(NULL, CHANGED_PATTERN);
break;
}
pView->SelectFrame(m_iUndoFramePos);
pView->SelectChannel(m_iUndoChannelPos);
}