📄 slcreate.c
字号:
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 + -