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

📄 slcreate.c

📁 彩信MMS的全部代码
💻 C
📖 第 1 页 / 共 3 页
字号:
            return res;
        }
        
        
        if (mobj->src)
        {
            if (SMIL_MAX_MEDIA_OBJECT_SRC_LENGHT < strlen(mobj->src))
            {
                MMS_LOG_I(("SMIL SLC: content (src field) is too long.\n"));
                return SMIL_RESULT_CONTENT_STRING_TOO_LONG;
            }
            
            else if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_SRC, mobj->src,
                 SLC_ADD_QUOTES)))
            {
                return res;
            }
             
        }
        else
        {
            MMS_LOG_I(("SMIL SLC: media object is missing content for the src field.\n"));
            return SMIL_RESULT_MISSING_MEDIA_OBJECT_SRC;
        }
        
        if (mobj->region)
        {
            
            if (SMIL_RESULT_OK != 
               (res = slcAddTagString(SLC_TAG_ATTR_REGION, mobj->region, 
                SLC_ADD_QUOTES)))
            {
                return res;
            }
             
        }
        
        if (mobj->alt)
        {
            
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_ATTR_ALT, mobj->alt, 
                 SLC_ADD_QUOTES)))
            {
                return res;
            }
             
        }
        
        if (mobj->begin)
        {
            
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_ATTR_BEGIN,mobj->begin, 
                 SLC_ADD_QUOTES)))
            {
                return res;
            }
             
        }
        
        if (mobj->end)
        {
            
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_ATTR_END,mobj->end, 
                 SLC_ADD_QUOTES)))
            {
                return res;
            }
             
        } 
        
        
        if ( mobj->mediaObjectElement == SMIL_MEDIA_OBJECT_TEXT &&
           ( mobj->textBgColor != SMIL_COLOR_NOT_USED ||
             mobj->textFgColor != SMIL_COLOR_NOT_USED ))
        {
            

            if (mobj->textBgColor != SMIL_COLOR_NOT_USED)
            {
               
                res = slcAddTagTag(SLC_TAG_GREATER_THEN, SLC_TAG_NEWLINE);
                if (res != SMIL_RESULT_OK)
                {
                    return res;
                }
                
                
                slcByte2HexColor(mobj->textBgColor, colorStr);

                

                res = slcAddTagParam(SLC_TAG_NAME_VALUE_BG_COLOR, colorStr);
                if (res != SMIL_RESULT_OK)
                {
                    return res;
                } 
            } 
            
            
            if (mobj->textFgColor != SMIL_COLOR_NOT_USED)
            {
                

                if (mobj->textBgColor == SMIL_COLOR_NOT_USED)
                {
                    
                    res = slcAddTagTag(SLC_TAG_GREATER_THEN, SLC_TAG_NEWLINE);
                    if (res != SMIL_RESULT_OK)
                    {
                        return res;
                    }
                }
                
                
                slcByte2HexColor(mobj->textFgColor, colorStr);

                

                res = slcAddTagParam(SLC_TAG_NAME_VALUE_FG_COLOR, colorStr);
                if (res != SMIL_RESULT_OK)
                {
                    return res;
                } 
            } 

            
            if (SMIL_RESULT_OK != 
                (res = slcAddTagTag(SLC_TAG_TEXT_END, SLC_TAG_NEWLINE)))
            {
                return res;
            } 
        }        
        

        else if (SMIL_RESULT_OK != 
            (res = slcAddTagTag(SLC_TAG_END, SLC_TAG_NEWLINE)))
        {
            return res;
        } 
        
        
        mobj = mobj->next;
    } 
    
    return SMIL_RESULT_OK;
}










static SmilResult slcCreateHead(const SmilHead *head)
{
    SmilResult res;
    
    if (SMIL_RESULT_OK != 
        (res = slcAddTagTag(SLC_TAG_HEAD_BEGIN, SLC_TAG_NEWLINE)))
    {
        return res;
    } 
        
    
    if (head)
    {
        if (head->metaInfo)
        {
            
            if (SMIL_RESULT_OK != (res = slcCreateMeta(head->metaInfo)))
            {
                return res;
            }     
        }
        
        if ((head->rootLayout) || (head->region))
        {
            


            if (SMIL_RESULT_OK != 
                (res = slcAddTagTag(SLC_TAG_LAYOUT_BEGIN, SLC_TAG_NEWLINE)))
            {
                return res;
            } 

            if (head->rootLayout)
            {
                
                if (SMIL_RESULT_OK != 
                    (res = slcCreateRootLayout(head->rootLayout)))
                {
                    return res;
                }   
            }
            
            if (head->region)
            {
                
                if (SMIL_RESULT_OK!= 
                    (res = slcCreateRegion(head->region)))
                {
                    return res;
                }             
            }

            if (SMIL_RESULT_OK != 
                (res = slcAddTagTag(SLC_TAG_LAYOUT_END, SLC_TAG_NEWLINE)))
            {
                return res;
            } 
        }
    }
    
    if (SMIL_RESULT_OK!= 
        (res = slcAddTagTag(SLC_TAG_HEAD_END, SLC_TAG_NEWLINE)))
    {
        return res;
    } 
        
    
    return SMIL_RESULT_OK;
}








static SmilResult slcCreateMeta(const SmilMetaInfo *metaInfo)
{
    SmilResult res;

    while (metaInfo)
    {
        if (SMIL_RESULT_OK != 
            (res = slcAddTagTag(SLC_TAG_META_BEGIN, SLC_TAG_SPACE)))
        {
            return res;
        }
        
        
        if (metaInfo->name)
        {
            if  (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_ATTR_NAME, metaInfo->name, 
                 SLC_ADD_QUOTES)))
            {
                return res;
            }
             
        }
        
        if (metaInfo->content)
        {
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_META_CONTENT,
                 metaInfo->content, SLC_ADD_QUOTES)))
            {
                return res;
            }
             
        }
        
        


        if (SMIL_RESULT_OK != 
            (res = slcAddTagTag(SLC_TAG_END, SLC_TAG_NEWLINE)))
        {
            return res;
        }
        
        
        metaInfo = metaInfo->next;
    }
    
    return SMIL_RESULT_OK;
}











static SmilResult slcCreateNoneNestedPar(const SmilPar *par)
{
    SmilResult res;

    if (par)
    {   
        
        if (SMIL_RESULT_OK != 
            (res = slcAddTag(SLC_TAG_PAR_BEGIN)))
        {
            return res;
        } 
        
        if (par->dur)
        {
            

            if (SMIL_RESULT_OK != 
                (res = slcAddTagTag(SLC_TAG_SPACE, SLC_TAG_DUR)))
            {
                return res;
            } 
            else if (SMIL_RESULT_OK != 
                (res = slcAddString(par->dur, SLC_ADD_QUOTES)))
            {
                return res;
            }
            
        }
        
        
        if (SMIL_RESULT_OK != 
            (res = slcAddTagTag(SLC_TAG_GREATER_THEN, 
             SLC_TAG_NEWLINE)))
        {
            return res;
        } 
                
        
        if (par->mobj)
        {
            
            if (SMIL_RESULT_OK != 
                (res = slcCreateMediaObjects(par->mobj)))
            {
                return res;
            } 
        }
        
        
        if (SMIL_RESULT_OK != 
            (res = slcAddTagTag(SLC_TAG_PAR_END, SLC_TAG_NEWLINE)))
        {
            return res;
        } 
                
    }
    
    return SMIL_RESULT_OK;
}








static SmilResult slcCreateRegion(SmilRegion *region)
{  
    SmilResult res;
    SmilRegion *tmp;
    short numRegions = 0;

    





    tmp = region;
    while(tmp)
    {
        if (! tmp->id)
        {
            MMS_LOG_I(("SMIL SLC: missing id in region\n", tmp->id));
            return SMIL_RESULT_REGION_ID_DO_NOT_EXIST;
        }
        
        
        
        else if (SMIL_NUM_REGION_TO_ALLOW_ID_NAME_TEST == SMIL_MAX_NUM_REGIONS)
        {   
            if ( strcmp(tmp->id, SMIL_REGION_TEXT) != 0 &&
               ( strcmp(tmp->id, SMIL_REGION_IMAGE) != 0))
            {
                MMS_LOG_I(("SMIL SLC: unknown region id %s\n", tmp->id));
                return SMIL_RESULT_UNKNOWN_REGION_NAME;
            }
        }

        ++numRegions;
        tmp = tmp->next;
    }

    if (SMIL_MAX_NUM_REGIONS < numRegions)
    {
        
        MMS_LOG_I(("SMIL SLC: too many regions (%d ones)", numRegions));
        return SMIL_RESULT_TOO_MANY_REGIONS;
    }

    
    while (region)
    {
        if (SMIL_RESULT_OK != 
            (res = slcAddTagTag(SLC_TAG_REGION, SLC_TAG_SPACE)))
        {
            return res;
        } 
        
        
        
        if (region->id)
        {
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_ID, region->id,
                 SLC_ADD_QUOTES)))
            {
                return res;
            }
            
        }
        
        if (region->top)
        {
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_TOP, region->top, 
                SLC_ADD_QUOTES)))
            {
                return res;
            }
            
            
        }
        
        if (region->left)
        {
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_LEFT, region->left, 
                 SLC_ADD_QUOTES)))
            {
                return res;
            }
            
        }
        
        if (region->width)
        {
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_WIDTH, region->width, 
                SLC_ADD_QUOTES)))
            {
                return res;
            } 
            
        }
        
        if (region->height)
        {
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_HEIGHT, region->height,
                SLC_ADD_QUOTES)))
            {
                return res;
            }
            
        }
        
        if (region->fit)
        {
            if (SMIL_RESULT_OK != 
                (res = slcAddTagString(SLC_TAG_FIT, region->fit, 
                SLC_ADD_QUOTES)))
            {
                return res;
            }
            
        }
        
        


        if (SMIL_RESULT_OK != 
            (res = slcAddTagTag(SLC_TAG_END, SLC_TAG_NEWLINE)))
        {
            return res;
        } 
        
        region = region->next;
    }
    
    return SMIL_RESULT_OK;
}








static SmilResult slcCreateRootLayout(const SmilRootLayout *rootLayout)
{
    SmilResult res;
    char colorStr[(UINT32)8];

   


    if (SMIL_RESULT_OK != 
        (res = slcAddTagTag(SLC_TAG_ROOT_LAYOUT, SLC_TAG_SPACE)))
    {
        return res;
    }
    
    
    
    if (rootLayout->width)
    {
        if (SMIL_RESULT_OK != 
            (res = slcAddTagString(SLC_TAG_WIDTH, rootLayout->width, 
            SLC_ADD_QUOTES)))
        {
            return res;
        } 
      
    }
    
    
    if (rootLayout->height)
    {
        if (SMIL_RESULT_OK != 
            (res = slcAddTagString(SLC_TAG_HEIGHT, rootLayout->height, 
            SLC_ADD_QUOTES)))
        {
            return res;
        }
        

⌨️ 快捷键说明

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