postmessage.c

来自「Brew上IFIFO基本功能使用的例子」· C语言 代码 · 共 97 行

C
97
字号
#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 + =
减小字号Ctrl + -
显示快捷键?