Exemple #1
0
/**
 * stabilize_inspect:  Return the value of an option in this instance of
 * the module.  See tcmodule-data.h for function details.
 */
static int transform_inspect(TCModuleInstance *self,
                       const char *param, const char **value)
{
    FilterData *fd = NULL;
    TC_MODULE_SELF_CHECK(self,  "inspect");
    TC_MODULE_SELF_CHECK(param, "inspect");
    TC_MODULE_SELF_CHECK(value, "inspect");

    fd = self->userdata;

    if (optstr_lookup(param, "help")) {
        *value = vs_transform_help;
    }
    VSTransformConfig conf;
    vsTransformGetConfig(&conf,&fd->td);
    CHECKPARAM("maxshift", "maxshift=%d",  conf.maxShift);
    CHECKPARAM("maxangle", "maxangle=%f",  conf.maxAngle);
    CHECKPARAM("smoothing","smoothing=%d", conf.smoothing);
    CHECKPARAM("crop",     "crop=%d",      conf.crop);
    CHECKPARAM("relative", "relative=%d",  conf.relative);
    CHECKPARAM("invert",   "invert=%i",    conf.invert);
    CHECKPARAM("input",    "input=%s",     fd->input);
    CHECKPARAM("optzoom",  "optzoom=%i",   conf.optZoom);
    CHECKPARAM("zoom",     "zoom=%f",      conf.zoom);
    CHECKPARAM("sharpen",  "sharpen=%f",   fd->sharpen);

    return TC_OK;
};
Exemple #2
0
tLuaCOM * tLuaCOM::CreateLuaCOM(lua_State* L,
                                IDispatch * pdisp,
                                const CLSID& coclass,
                                ITypeInfo* typeinfo,
                                bool untyped
                                )
{
  HRESULT hr = S_OK;

  CHECKPARAM(pdisp && L);
  CHECKPARAM(!untyped || !typeinfo);

  if(!untyped)
  {
    if(!typeinfo)
      typeinfo = tCOMUtil::GetDispatchTypeInfo(pdisp); 
    else
      typeinfo->AddRef();
  }

  tLuaCOM *lcom = 
    new tLuaCOM(L, pdisp, typeinfo, coclass);

  COM_RELEASE(typeinfo);

  // We have one reference (the pointer), so we lock the object
  lcom->Lock();

  return lcom;
}
/*M+M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M+++M
  Method:   tLuaCOMConnPointContainer
              ::tLuaCOMConnPointContainer

  Summary:  Constructor for the tLuaCOMConnPointContainer interface
            instantiation.

  Args:     COBall* pBackObj,
              Back pointer to the parent outer object.
            IUnknown* pUnkOuter
              Pointer to the outer Unknown.  For delegation.

  Modifies: pBackObj, pUnkOuter.

  Returns:  void
M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M-M*/
tLuaCOMConnPointContainer::tLuaCOMConnPointContainer(lua_State* p_L,
                                                     IUnknown* p_pUnkOuter)
{
  HRESULT hr = S_OK;
  ITypeInfo *events_typeinfo = NULL;

  CHECKPARAM(p_L); CHECKPARAM(p_pUnkOuter);

  // stores pointers
  pUnkOuter = p_pUnkOuter;
  L = p_L;

  // creates connection point for source interface
  IProvideClassInfo2 *ci2  = NULL;

  hr = pUnkOuter->QueryInterface(IID_IProvideClassInfo2, (void **) &ci2); 
  CHK_COM_CODE(hr);

  IID iid;

  hr = ci2->GetGUID(GUIDKIND_DEFAULT_SOURCE_DISP_IID, &iid);
  CHK_COM_CODE(hr);

  ITypeInfo *coclassinfo = NULL;

  hr = ci2->GetClassInfo(&coclassinfo);
  CHK_COM_CODE(hr);  

  events_typeinfo = tCOMUtil::GetDefaultInterfaceTypeInfo(coclassinfo, true);
  CHK_LCOM_ERR(events_typeinfo, "No default source typeinfo.");

  COM_RELEASE(ci2);
  COM_RELEASE(coclassinfo);

  max_connection_points = 1;
  connection_points = new tLuaCOMConnPoint*[max_connection_points];
  CHKMALLOC(connection_points);

  connection_points[0] = new tLuaCOMConnPoint(L, p_pUnkOuter);
  CHKMALLOC(connection_points[0]);

  connection_points[0]->AddRef();
  
  num_connection_points = 1;

  hr = connection_points[0]->Init(iid, events_typeinfo);
  CHK_COM_CODE(hr);  

  default_connection = connection_points[0];

  return;
}
HRESULT tCOMUtil::ProgID2CLSID(CLSID *pClsid, const char *ProgID)
{
  CHECKPARAM(pClsid);
  
  // tests whether we already have a CLSID

  wchar_t* wcProgId = NULL;
  HRESULT hr = S_OK;

  if(ProgID[0] == '{')
  {
    wcProgId = (wchar_t*) malloc( (strlen(ProgID) + 1) * sizeof(wchar_t));
    mbstowcs(wcProgId, ProgID, strlen(ProgID)+1);

    hr = CLSIDFromString(wcProgId, pClsid);

    free(wcProgId);
    wcProgId = NULL;

    return hr;
  }

  /* converte ProgID para OLESTR */
  wcProgId = (wchar_t*) malloc( (strlen(ProgID) + 1) * sizeof(wchar_t));
  mbstowcs(wcProgId, ProgID, strlen(ProgID)+1);

  hr = CLSIDFromProgID(wcProgId, pClsid);

  free(wcProgId);
  wcProgId = NULL;

  return hr;
}
Exemple #5
0
ITypeInfo *tCOMUtil::GetCoClassTypeInfo(IDispatch* pdisp, CLSID clsid)
{
    CHECKPARAM(pdisp);

    HRESULT hr = S_OK;

    unsigned int typeinfocount = 0;
    hr = pdisp->GetTypeInfoCount(&typeinfocount);
    if(FAILED(hr) || typeinfocount == 0)
        return NULL;

    tCOMPtr<ITypeInfo> typeinfo;
    hr = pdisp->GetTypeInfo(0, 0, &typeinfo);
    if(FAILED(hr))
        return NULL;

    tCOMPtr<ITypeLib> typelib;
    unsigned int dumb_index = (unsigned int)-1;
    hr = typeinfo->GetContainingTypeLib(&typelib, &dumb_index);
    if(FAILED(hr))
        return NULL;

    ITypeInfo* coclasstypeinfo = tCOMUtil::GetCoClassTypeInfo(typelib, clsid);

    return coclasstypeinfo;
}
tLuaCOMClassFactory::tLuaCOMClassFactory(IDispatch* object_arg)
{
  CHECKPARAM(object_arg);

  m_cRef = 0;

  L_inproc = NULL;
  object = object_arg;
  object->AddRef();
}
Exemple #7
0
void tCOMUtil::DumpTypeInfo(ITypeInfo *typeinfo)
{
  HRESULT hr = S_OK;
  TYPEATTR* pta = NULL;

  CHECKPARAM(typeinfo);

  hr = typeinfo->GetTypeAttr(&pta);
  CHK_COM_CODE(hr);

  // prints IID
  LPOLESTR lpsz = NULL;

#ifdef __WINE__
  hr = 0;
  MessageBox(NULL, "FIX - not implemented - StringFromIID", "LuaCOM", MB_ICONEXCLAMATION);
  #warning FIX - not implemented - StringFromIID
#else
  hr = StringFromIID(pta->guid, &lpsz);
#endif

  if(FAILED(hr))
  {
    hr = StringFromCLSID(pta->guid, &lpsz);
  }

  if(SUCCEEDED(hr))
  {
    wprintf(L"\nInterface:  %s\n\n", lpsz);

    CoTaskMemFree(lpsz);
  }

  int i = 0;
  FUNCDESC *pfd = NULL;

  for(i = 0; i < pta->cFuncs; i++)
  {
    typeinfo->GetFuncDesc(i, &pfd);

    BSTR names[1];
    unsigned int dumb;

    typeinfo->GetNames(pfd->memid, names, 1, &dumb);

    printf("%.3d: %-30s\tid=0x%d\t%d param(s)\n", i,
      tUtil::bstr2string(names[0]), pfd->memid, pfd->cParams);

    typeinfo->ReleaseFuncDesc(pfd);
    SysFreeString(names[0]);
  }

  typeinfo->ReleaseTypeAttr(pta);
}
void tCOMUtil::DumpTypeInfo(ITypeInfo *typeinfo)
{
  HRESULT hr = S_OK;
  TYPEATTR* pta = NULL;

  CHECKPARAM(typeinfo);

  hr = typeinfo->GetTypeAttr(&pta);
  CHK_COM_CODE(hr);

  // prints IID
  LPOLESTR lpsz = NULL;

  hr = StringFromIID(pta->guid, &lpsz);

  if(FAILED(hr))
  {
    hr = StringFromCLSID(pta->guid, &lpsz);
  }

  if(SUCCEEDED(hr))
  {
    wprintf(L"\nInterface:  %s\n\n", lpsz);

    CoTaskMemFree(lpsz);
  }

  int i = 0;
  FUNCDESC *pfd = NULL;

  for(i = 0; i < pta->cFuncs; i++)
  {
    typeinfo->GetFuncDesc(i, &pfd);

    BSTR names[1];
    unsigned int dumb;

    typeinfo->GetNames(pfd->memid, names, 1, &dumb);

    printf("%.3d: %-30s\tid=0x%p\t%d param(s)\n", i,
      tUtil::bstr2string(names[0]), pfd->memid, pfd->cParams);

    typeinfo->ReleaseFuncDesc(pfd);
    SysFreeString(names[0]);
  }

  typeinfo->ReleaseTypeAttr(pta);
}
Exemple #9
0
static int check_param(struct ub_struct *param)
{
	int ret = 0;
#define CHECKPARAM(name, str_name) \
if (param->name == NULL) { \
	fprintf(stderr, "Error: parameter " #str_name " not found\n"); \
	ret = 1; \
}
	CHECKPARAM(numproc, NUMPROC);
	CHECKPARAM(vmguarpages, VMGUARPAGES);
	CHECKPARAM(kmemsize, KMEMSIZE);
	CHECKPARAM(tcpsndbuf, TCPSNDBUF);
	CHECKPARAM(tcprcvbuf, TCPRCVBUF);
	CHECKPARAM(othersockbuf, OTHERSOCKBUF);
	CHECKPARAM(dgramrcvbuf, DGRAMRCVBUF);
	CHECKPARAM(privvmpages, PRIVVMPAGES);

	return ret;
}
tLuaCOMClassFactory::tLuaCOMClassFactory(lua_State* L)
{
  CHECKPARAM(L);

  m_cRef = 0;

  L_inproc = L;
  lua_getregistry(L);
  lua_pushstring(L,"object");
  lua_gettable(L,-2);
  object = (IDispatch*)luaCompat_getPointer(L,-1);
  object->AddRef();
  lua_pop(L,1);
  lua_pushstring(L,"object");
  lua_pushnil(L);
  lua_settable(L,-3);
  lua_pop(L,1);
}
ITypeInfo *tCOMUtil::GetCoClassTypeInfo(IDispatch* pdisp, CLSID clsid)
{
  CHECKPARAM(pdisp);

  ITypeInfo* typeinfo = NULL;
  ITypeLib* typelib = NULL;
  HRESULT hr = S_OK;

  {
    unsigned int typeinfocount = 0;

    hr = pdisp->GetTypeInfoCount(&typeinfocount);

    if(FAILED(hr) || typeinfocount == 0)
      return NULL;
  }

  hr = pdisp->GetTypeInfo(0, 0, &typeinfo);

  if(FAILED(hr))
    return NULL;

  {
    unsigned int dumb_index = -1;
    hr = typeinfo->GetContainingTypeLib(&typelib, &dumb_index);
    COM_RELEASE(typeinfo);
  }

  if(FAILED(hr))
    return NULL;

  ITypeInfo* coclasstypeinfo = tCOMUtil::GetCoClassTypeInfo(typelib, clsid);
  typelib->Release();

  return coclasstypeinfo;
}
Exemple #12
0
static int deshake_inspect(TCModuleInstance *self,
			   const char *param, const char **value)
{
  DeshakeData *sd = NULL;

  TC_MODULE_SELF_CHECK(self, "inspect");
  TC_MODULE_SELF_CHECK(param, "inspect");
  TC_MODULE_SELF_CHECK(value, "inspect");
  sd = self->userdata;
  MotionDetect* md = &(sd->md);
  if (optstr_lookup(param, "help")) {
    *value = deshake_help;
  }
  CHECKPARAM("shakiness","shakiness=%d", md->shakiness);
  CHECKPARAM("accuracy", "accuracy=%d",  md->accuracy);
  CHECKPARAM("stepsize", "stepsize=%d",  md->stepSize);
  CHECKPARAM("allowmax", "allowmax=%d",  md->allowMax);
  CHECKPARAM("algo",     "algo=%d",      md->algo);
  CHECKPARAM("result",   "result=%s",    sd->result);
  CHECKPARAM("maxshift", "maxshift=%d",  sd->td.maxShift);
  CHECKPARAM("maxangle", "maxangle=%f",  sd->td.maxAngle);
  CHECKPARAM("smoothing","smoothing=%d", sd->td.smoothing);
  CHECKPARAM("crop",     "crop=%d",      sd->td.crop);
  CHECKPARAM("optzoom",  "optzoom=%i",   sd->td.optZoom);
  CHECKPARAM("zoom",     "zoom=%f",      sd->td.zoom);
  CHECKPARAM("sharpen",  "sharpen=%f",   sd->td.sharpen);

  return TC_OK;
}