static int CopyAll_FileToHDD(char *SpisF) //Запись списка файла на HDD рекордера { char NameF[260], Ss[100]; //Надо проверить, что такого имени в папке нет InitProgressBar2_2(all_nCl, ""); //Функция прогресса для нескольких файлов c_FAT1 = (DWORD *)MyAllocMem(Size_FAT1); //Память под FAT if(c_FAT1 == NULL) return -1; CopyMemory(c_FAT1, FAT1, Size_FAT1); //Скопировали содержимое FAT1 if(Load_Dir() < 0) return -1; //Загрузка кластера каталога for(int i=0; i<numF_Sp; i++) //По числу имен в списке { lstrcpy(NameF, SpisF); //Переслали имя каталога lstrcat(NameF, "\\"); //Добавили разделитель lstrcat(NameF, SpisF + pozNameF[i]); //Добавили имя файла sprintf(Ss, "%s: %d ( %d )", (Lan+24)->msg, i+1, numF_Sp); int ret = WriteFile_ToHDD(NameF, Ss); //Запись файла на HDD рекордера CloseFile(&inFile); if(ret < 0) return -1; Close_ProgressBar(); } #if !defined EMULATOR_HDD //Режим эмулятора if(Save_FAT1() < 0) return -1; //Сохранение обновленной FAT первого раздела if(Save_Dir() < 0) return -1; //Сохранение кластера каталога if(Change_Sec67(-writeNewCl) < 0) return -1; //Внесение изменений в содержимое сектора 67 #endif writeCl += writeNewCl; //Число записанных кластеров ViewSize(); //Показа дискового пространства return 0; }
static int CopyOne_FileToHDD(char *NameF) //Запись единственного файла на HDD рекордера { //Надо проверить, что такого имени в папке нет c_FAT1 = (DWORD *)MyAllocMem(Size_FAT1); //Память под FAT if(c_FAT1 == NULL) return -1; CopyMemory(c_FAT1, FAT1, Size_FAT1); //Скопировали содержимое FAT1 if(Load_Dir() < 0) return -1; //Загрузка кластера каталога if(WriteFile_ToHDD(NameF, (Lan+24)->msg) < 0) return -1; //Запись файла на HDD рекордера #if !defined EMULATOR_HDD //Режим эмулятора if(Save_FAT1() < 0) return -1; //Сохранение обновленной FAT первого раздела if(Save_Dir() < 0) return -1; //Сохранение кластера каталога if(Change_Sec67(-writeNewCl) < 0) return -1; //Внесение изменений в содержимое сектора 67 #endif writeCl += writeNewCl; //Число записанных кластеров ViewSize(); //Показа дискового пространства return 0; }
static int Create_New_Folder_ToHDD(void) //Cоздание папки на диске LG { if(*NameFoFi == 0) return Error1((Lan+184)->msg); //"Недопустимое имя" c_FAT1 = (DWORD *)MyAllocMem(Size_FAT1); //Память под FAT if(c_FAT1 == NULL) return -1; CopyMemory(c_FAT1, FAT1, Size_FAT1); //Скопировали содержимое FAT1 if(Load_Dir() < 0) return -1; //Загрузка кластера каталога if(CreateNewFolder() < 0) return -1; //Создание новой папки на HDD рекордера #if !defined EMULATOR_HDD //Режим эмулятора if(Save_FAT1() < 0) return -1; //Сохранение обновленной FAT первого раздела if(Save_Dir() < 0) return -1; //Сохранение кластера каталога if(Change_Sec67(-1) < 0) return -1; //Внесение изменений в содержимое сектора 67 #endif writeCl++; //Число записанных кластеров ViewSize(); //Показа дискового пространства MyFreeMem(&(void*)c_FAT1); MyFreeMem(&(void*)spisF); return 0; }
/*-------------------------------------------------------------------------*/ VOID ViewHeader( CHAR *file ) { INT i, m; CHAR buf[64]; static CHAR str[140], tmp[140]; _splitpath( file, NULL, NULL, fname, ext ); if( pktcount ) sprintf( str, "%u - %u (%s%s)", pktNumber + 1, pktcount, fname, ext ); else sprintf( str, "1 - 1 (%s%s)", fname, ext ); i = strlen( str ); WSetCurColor( wmain, C_TEXT ); WSetXY ( wmain, 6, 0 ); WPuts ( wmain, str ); memset ( str, ' ', 30 - i ); str[ 30 - i ] = 0; WSetXY ( wmain, 6 + i, 0 ); WPuts ( wmain, str ); if(( m = maxXmain - 32 ) > 64 ) m = 64; strncpy( tmp, Current -> from, m - 7 ); WSetXY( wmain, 6, 1 ); sprintf( str, "%-*.*s", m - 7, m - 7, tmp ); WPutstr( wmain, str ); strncpy( tmp, Current -> to, m - 7 ); WSetXY( wmain, 6, 2 ); sprintf( str, "%-*.*s", m - 7, m - 7, tmp ); WPutstr( wmain, str ); strncpy( tmp, Current -> subj, maxXsubj - 6 ); WSetXY( wmain, 6, 3 ); sprintf( str, "%-*.*s", maxXsubj - 6, maxXsubj - 6, tmp ); WPutstr( wmain, str ); if( Current -> area ) { strcpy ( str, " " ); strncat( str, Current -> area, 60 ); strcat ( str, " " ); } else strcpy( str, " Netmail " ); i = strlen( str ); WPutbs ( wmain, 0, 6, WGetSchColor( wmain, C_MORE ), str ); memset ( str, 'Ä', 60 - i ); str[ 60 - i ] = 0; WPutbs ( wmain, 0, 6 + i, WGetSchColor( wmain, C_BORDER ), str ); if( BadPkt ) { WPutbs( wmain, 0, 2, WGetSchColor( wmain, C_BORDER ), "´ Ã" ); WPutbs( wmain, 0, 3, WGetSchColor( wmain, C_MORE ), "b" ); } else WPutbs( wmain, 0, 2, WGetSchColor( wmain, C_BORDER ), "ÄÄÄ" ); if( ReadOnly ) { WPutbs( wmain, 0, maxXmain - 4, WGetSchColor( wmain, C_BORDER ), "´ Ã" ); WPutbs( wmain, 0, maxXmain - 3, WGetSchColor( wmain, C_MORE ), "ro" ); } else WPutbs( wmain, 0, maxXmain - 4, WGetSchColor( wmain, C_BORDER ), "ÄÄÄÄ" ); WPrints ( wmain, m + 11, 0, Current -> date ); strncpy( str, FidoAddr2Str( &Current -> AddrFrom, buf ), maxXmain - m ); WSetXY ( wmain, m, 1 ); WPrintf( wmain, "%-*.*s", maxXmain - m, maxXmain - m, str ); if( Current -> area ) WSetCurColor( wmain, C_HIDE ); strncpy( str, FidoAddr2Str( &Current -> AddrTo, buf ), maxXmain - m ); WSetXY( wmain, m, 2 ); WPrintf( wmain, "%-*.*s", maxXmain - m, maxXmain - m, str ); #ifndef _LITE_ ViewSelected(); #endif ViewSize(); ViewAttr(); }
void CQueueView::UpdateView(bool Repaint) { m_DC.FillSolidRect(CRect(CPoint(0, 0), m_ClientSize), GetSysColor(COLOR_WINDOW)); m_DC.SetBkMode(TRANSPARENT); m_DC.SelectObject(GetStockObject(DEFAULT_GUI_FONT)); CPoint ScrollPos = GetScrollPosition(); CPoint PlugPt(PageMargin - ScrollPos); CRenderer& Render = theApp.GetMain()->GetRenderer(); int RenderTime = Render.GetFrameCounter(); int plugs = m_Engine.GetPluginCount(); CFrameArray QFrame; for (int PlugIdx = 0; PlugIdx < plugs; PlugIdx++) { CPlugin& plug = m_Engine.GetPlugin(PlugIdx); int Inputs = plug.GetNumInputs(); bool UsingProcessCopy = plug.UsingProcessCopy(); int FrameRows = UsingProcessCopy ? max(Inputs, 2) : 1; int PluginHeight = PluginMargin.cy * 2 + GetFrameArea(1, FrameRows).cy; CSize PluginSize(PluginWidth, PluginHeight); CRect PlugRect(PlugPt, PluginSize); DrawPlugin(PlugRect, plug.GetName(), plug.IsProcessing()); if (m_Engine.IsRunning()) DrawFrameCounter(PlugPt, plug.GetFrameCounter(), RenderTime); if (UsingProcessCopy) DrawOutputFrame(PlugPt + OutputOffset, plug.GetOutputFrame()); CPoint FramePt(PlugPt + InProcessOrg); for (int InpIdx = 0; InpIdx < Inputs; InpIdx++) { DrawInputFrame(InpIdx, FramePt, plug.GetInputFrame(InpIdx)); plug.GetInputQueue(InpIdx)->DumpState(QFrame); DrawFrameArray(CPoint(PlugPt.x + QueueOrg.cx, FramePt.y), QFrame); FramePt.y += FrameOffset.cy; } PlugPt.y += PluginSize.cy + PluginMargin.cy; int helpers = plug.GetHelperCount(); for (int HelpIdx = 0; HelpIdx < helpers; HelpIdx++) { CPluginHelper& helper = plug.GetHelper(HelpIdx); CRect HelpRect(PlugPt, PluginSize); DrawPlugin(HelpRect, helper.GetName(), helper.IsProcessing()); if (m_Engine.IsRunning()) DrawFrameCounter(PlugPt, helper.GetFrameCounter(), RenderTime); if (UsingProcessCopy) DrawOutputFrame(PlugPt + OutputOffset, helper.GetOutputFrame()); CPoint FramePt(PlugPt + InProcessOrg); for (int InpIdx = 0; InpIdx < Inputs; InpIdx++) { DrawInputFrame(InpIdx, FramePt, helper.GetInputFrame(InpIdx)); FramePt.y += FrameOffset.cy; } PlugPt.y += PluginSize.cy + PluginMargin.cy; } } int TotalPluginHeight = PlugPt.y + ScrollPos.y; DrawPlugin(CRect(PlugPt, RenderSize), Render.GetName(), FALSE); DrawFrameCounter(PlugPt, RenderTime, RenderTime); PFRAME OutFrame = Render.GetCurFrame(); CPoint FramePt(PlugPt + InProcessOrg); if (OutFrame != NULL) DrawFrame(FramePt, OutFrame); m_Engine.GetRenderQueue()->DumpState(QFrame); FramePt.x = PlugPt.x + QueueOrg.cx; DrawFrameArray(FramePt, QFrame); FramePt.x = PlugPt.x; FramePt.y += RenderSize.cy; m_Engine.GetFreeQueue()->DumpState(QFrame); DrawFrameArray(FramePt, QFrame); CSize ViewSize(PluginWidth + m_MaxRowFrames * FrameOffset.cx, TotalPluginHeight + RenderSize.cy + FrameOffset.cy + PageMargin.cy); if (ViewSize != m_ViewSize) { // if view size changed m_ViewSize = ViewSize; SetScrollSizes(MM_TEXT, ViewSize); // set scroll sizes } if (Repaint) Invalidate(); }