⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 postmessage.c

📁 Brew上IFIFO基本功能使用的例子
💻 C
字号:
#include "AEEModGen.h"          // Module interface definitions
#include "AEEAppGen.h"          // Applet interface definitions
#include "AEEShell.h"           // Shell interface definitions
#include "AEEFile.h"			// File interface definitions
#include "AEEFIFO.h"
#include "FIFORead.bid"
#include "FIFOWrite.bid"
#include "PostMessage.h"
#include "AEELogger.h"


#define STR_TEST_FIFO_W     "fifo:/~/foobar?mode=w"
#define STR_TEST_FIFO_R     "fifo:/~/foobar?mode=r"
#define STR_LARGE_FILE      "large.mms"
#define STR_MIDDLE_FILE     "middle.mms"
#define STR_LITTLE_FILE     "little.mms"
#define STR_DISPLAY_FILE    "display.txt"
#define MAX_BUFFER_SIZE     4096



void Mms_StartPostMessage(BrewIFIFO *pBrewInfo)
{
    IFileMgr            *pIFileMgr;
    IFile               *pIFile;
    FileInfo            *pFileInfo;
    unsigned char       *pucDataBuffer;
    IFIFO               *pIFIFO;
    ILogger             *pILog;
    int                 iReturn;
    int                 iFileSize;

    pucDataBuffer = (unsigned char*)MALLOC(sizeof(unsigned char) * MAX_BUFFER_SIZE);
    pFileInfo = (FileInfo*)MALLOC(sizeof(FileInfo));

    /******************************** read from file **********************************************/
    iReturn = ISHELL_CreateInstance(pBrewInfo->a.m_pIShell,AEECLSID_FILEMGR_313,&pIFileMgr);
    
    pIFile = IFILEMGR_OpenFile(pIFileMgr,STR_DISPLAY_FILE,_OFM_READ);

    iReturn = IFILEMGR_GetInfo(pIFileMgr,STR_DISPLAY_FILE,pFileInfo);
    
    iFileSize = IFILE_Read(pIFile,pucDataBuffer,pFileInfo->dwSize);

    iReturn = ISHELL_SendEvent(pBrewInfo->a.m_pIShell,
                            AEECLSID_FIFOWRITE,
                            EVT_DISPLAY, 
                            (uint16)iFileSize,
                            (uint32)pucDataBuffer);

    
    /********************************* write to fifo **********************************************/
    iReturn = ISHELL_CreateInstance(pBrewInfo->a.m_pIShell,AEECLSID_FIFO,&pIFIFO);

    iReturn = IFIFO_Open(pIFIFO,STR_TEST_FIFO_W);

    iReturn = IFIFO_Write(pIFIFO,pucDataBuffer,pFileInfo->dwSize);

    iReturn = ISHELL_StartApplet(pBrewInfo->a.m_pIShell,AEECLSID_FIFOREAD);
//    iReturn = ISHELL_StartBackgroundApplet(pBrewInfo->a.m_pIShell,AEECLSID_FIFOREAD,NULL);

    iReturn = ISHELL_PostEvent(pBrewInfo->a.m_pIShell,AEECLSID_FIFOREAD,EVT_READ_FIFO,0,0);

    iReturn = IFIFO_Close(pIFIFO);


    ISHELL_CreateInstance(pBrewInfo->a.m_pIShell,AEECLSID_LOGGER_FILE,&pILog);

    iReturn = LOG_TEXT(pILog,2,"fasfads");

    return;
    
}



void Mms_StartGetMessage(BrewIFIFO *pBrewInfo)
{
    IFIFO               *pIFIFO;
    int                 iReturn;
    unsigned char       *pucDataBuffer;
    ILogger             *pILog;
    
   
    pucDataBuffer = (unsigned char*)MALLOC(sizeof(unsigned char) * MAX_BUFFER_SIZE);
    
    iReturn = ISHELL_CreateInstance(pBrewInfo->a.m_pIShell,AEECLSID_FIFO,&pIFIFO);

    iReturn = IFIFO_Open(pIFIFO,STR_TEST_FIFO_R);

    iReturn = IFIFO_Read(pIFIFO,pucDataBuffer,MAX_BUFFER_SIZE);

    ISHELL_CreateInstance(pBrewInfo->a.m_pIShell,AEECLSID_LOGGER_FILE,&pILog);

    LOG_TEXT(pILog,2,"fasfads");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -