15435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu/*
22f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * portother.cpp, port class for other
330bd6062e4b295f5f7bcaeb98165065310d29269Ho-Eun Ryu *
42f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * Copyright (c) 2009-2010 Wind River Systems, Inc.
52f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu *
62f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * Licensed under the Apache License, Version 2.0 (the "License");
72f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * you may not use this file except in compliance with the License.
82f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * You may obtain a copy of the License at
92f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu *
102f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * http://www.apache.org/licenses/LICENSE-2.0
112f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu *
122f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * Unless required by applicable law or agreed to in writing, software
132f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * distributed under the License is distributed on an "AS IS" BASIS,
142f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
152f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * See the License for the specific language governing permissions and
162f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * limitations under the License.
175435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu */
185435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
195435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#include <stdlib.h>
205435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#include <string.h>
215435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
225435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#include <OMX_Core.h>
235435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#include <OMX_Component.h>
245435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
255435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#include <componentbase.h>
265435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#include <portother.h>
275435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
285435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#define LOG_TAG "portother"
295435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu#include <log.h>
305435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
315435027850dee5fe18425ed8d6513d551914d29bHo-Eun RyuPortOther::PortOther()
325435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu{
335435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    memset(&otherparam, 0, sizeof(otherparam));
345435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    ComponentBase::SetTypeHeader(&otherparam, sizeof(otherparam));
355435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu}
365435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
375435027850dee5fe18425ed8d6513d551914d29bHo-Eun RyuOMX_ERRORTYPE PortOther::SetPortOtherParam(
385435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    const OMX_OTHER_PARAM_PORTFORMATTYPE *p, bool internal)
395435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu{
405435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    if (!internal) {
415435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu        OMX_ERRORTYPE ret;
423739d03aa380db0d809c6acf7968c629e769b0c2Ho-Eun Ryu
435435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu        ret = ComponentBase::CheckTypeHeader((void *)p, sizeof(*p));
445435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu        if (ret != OMX_ErrorNone)
455435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu            return ret;
465435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu        if (otherparam.nPortIndex != p->nPortIndex)
475435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu            return OMX_ErrorBadPortIndex;
485435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    }
495435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    else
505435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu        otherparam.nPortIndex = p->nPortIndex;
515435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
525435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    otherparam.nIndex = p->nIndex;
535435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    otherparam.eFormat = p->eFormat;
545435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
555435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    return OMX_ErrorNone;
565435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu}
575435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
585435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryuconst OMX_OTHER_PARAM_PORTFORMATTYPE *PortOther::GetPortOtherParam(void)
595435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu{
605435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu    return &otherparam;
615435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu}
625435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu
635435027850dee5fe18425ed8d6513d551914d29bHo-Eun Ryu/* end of PortOther */
64