当前位置: 首页>>代码示例>>C++>>正文


C++ PyXBMCGUILock函数代码示例

本文整理汇总了C++中PyXBMCGUILock函数的典型用法代码示例。如果您正苦于以下问题:C++ PyXBMCGUILock函数的具体用法?C++ PyXBMCGUILock怎么用?C++ PyXBMCGUILock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了PyXBMCGUILock函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: WindowXML_GetListItem

  PyObject* WindowXML_GetListItem(WindowXML *self, PyObject *args)
  {
    if (!self->pWindow) return NULL;

    int listPos = -1;
    if (!PyArg_ParseTuple(args, (char*)"i", &listPos)) return NULL;

    CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;

    PyXBMCGUILock();
    CFileItemPtr fi = pwx->GetListItem(listPos);

    if (fi == NULL)
    {
      PyXBMCGUIUnlock();
      PyErr_SetString(PyExc_TypeError, "Index out of range");
      return NULL;
    }

    ListItem* sListItem = (ListItem*)ListItem_Type.tp_alloc(&ListItem_Type, 0);
    sListItem->item = fi;
    PyXBMCGUIUnlock();

    Py_INCREF(sListItem);
    return (PyObject *)sListItem;
  }
开发者ID:AWilco,项目名称:xbmc,代码行数:26,代码来源:winxml.cpp

示例2: WindowXML_SetProperty

  PyObject* WindowXML_SetProperty(WindowXML *self, PyObject *args, PyObject *kwds)
  {
    static const char *keywords[] = { "key", "value", NULL };
    char *key = NULL;
    PyObject *value = NULL;

    if (!PyArg_ParseTupleAndKeywords(
      args,
      kwds,
      (char*)"sO",
      (char**)keywords,
      &key,
      &value))
    {
      return NULL;
    }
    if (!key || !value) return NULL;

    CStdString uText;
    if (!PyXBMCGetUnicodeString(uText, value, 1))
      return NULL;

    CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;
    CStdString lowerKey = key;

    PyXBMCGUILock();
    pwx->SetProperty(lowerKey.ToLower(), uText.c_str());
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:AWilco,项目名称:xbmc,代码行数:32,代码来源:winxml.cpp

示例3: Control_ControlRight

  PyObject* Control_ControlRight(Control* self, PyObject* args)
  {
    Control* pControl;
    if (!PyArg_ParseTuple(args, (char*)"O", &pControl)) return NULL;
    // type checking, object should be of type Control
    if (!Control_Check(pControl))
    {
      PyErr_SetString(PyExc_TypeError, "Object should be of type Control");
      return NULL;
    }
    if(self->iControlId == 0)
    {
      PyErr_SetString(PyExc_ReferenceError, "Control has to be added to a window first");
      return NULL;
    }

    self->iControlRight = pControl->iControlId;
    PyXBMCGUILock();
    if (self->pGUIControl) self->pGUIControl->SetNavigation(self->iControlUp,
      self->iControlDown,self->iControlLeft,self->iControlRight);
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:AaronDnz,项目名称:xbmc,代码行数:25,代码来源:control.cpp

示例4: Keyboard_New

  PyObject* Keyboard_New(PyTypeObject *type, PyObject *args, PyObject *kwds)
  {
    Keyboard *self;

    self = (Keyboard*)type->tp_alloc(type, 0);
    if (!self) return NULL;
    new(&self->strDefault) string();
    new(&self->strHeading) string();

    PyObject *line = NULL;
    PyObject *heading = NULL;
    char bHidden = false;
    if (!PyArg_ParseTuple(args, (char*)"|OOb", &line, &heading, &bHidden)) return NULL;

    string utf8Line;
    if (line && !PyXBMCGetUnicodeString(utf8Line, line, 1)) return NULL;
    string utf8Heading;
    if (heading && !PyXBMCGetUnicodeString(utf8Heading, heading, 2)) return NULL;

    self->strDefault = utf8Line;
    self->strHeading = utf8Heading;
    self->bHidden = (0 != bHidden);
    PyXBMCGUILock();
    self->dlg = (CGUIDialogKeyboard*)g_windowManager.GetWindow(WINDOW_DIALOG_KEYBOARD);
    PyXBMCGUIUnlock();

    return (PyObject*)self;
  }
开发者ID:herrJones,项目名称:xbmc,代码行数:28,代码来源:keyboard.cpp

示例5: XBMCGUI_GetCurrentWindowId

 PyObject* XBMCGUI_GetCurrentWindowId(PyObject *self, PyObject *args)
 {
   PyXBMCGUILock();
   int id = g_windowManager.GetActiveWindow();
   PyXBMCGUIUnlock();
   return Py_BuildValue((char*)"l", id);
 }
开发者ID:mbolhuis,项目名称:xbmc,代码行数:7,代码来源:xbmcguimodule.cpp

示例6: XBMCGUI_GetCurrentWindowDialogId

 PyObject* XBMCGUI_GetCurrentWindowDialogId(PyObject *self, PyObject *args)
 {
   PyXBMCGUILock();
   int id = g_windowManager.GetTopMostModalDialogID();
   PyXBMCGUIUnlock();
   return Py_BuildValue((char*)"l", id);
 }
开发者ID:mbolhuis,项目名称:xbmc,代码行数:7,代码来源:xbmcguimodule.cpp

示例7: Keyboard_DoModal

  PyObject* Keyboard_DoModal(Keyboard *self, PyObject *args)
  {
    CGUIDialogKeyboard *pKeyboard = ((Keyboard*)self)->dlg;
    if(!pKeyboard)
    {
      PyErr_SetString(PyExc_SystemError, "Unable to load virtual keyboard");
      return NULL;
    }
    int autoClose = 0;

    if (!PyArg_ParseTuple(args, (char*)"|i", &autoClose)) return NULL;

    PyXBMCGUILock();
    pKeyboard->Initialize();
    pKeyboard->SetHeading(self->strHeading);
    CStdString strDefault(self->strDefault);
    pKeyboard->SetText(strDefault);
    pKeyboard->SetHiddenInput(self->bHidden);
    if (autoClose > 0)
      pKeyboard->SetAutoClose(autoClose);

    // do modal of dialog
    PyXBMCGUIUnlock();
    PyXBMCWaitForThreadMessage(TMSG_DIALOG_DOMODAL, WINDOW_DIALOG_KEYBOARD, g_windowManager.GetActiveWindow());

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:herrJones,项目名称:xbmc,代码行数:28,代码来源:keyboard.cpp

示例8: WindowXML_AddItem

  PyObject* WindowXML_AddItem(WindowXML *self, PyObject *args)
  {
    if (!self->pWindow) return NULL;

    PyObject *pObject;
    int itemPosition = INT_MAX;
    if (!PyArg_ParseTuple(args, (char*)"O|i", &pObject, &itemPosition)) return NULL;

    string strText;
    ListItem* pListItem = NULL;

    if (ListItem_CheckExact(pObject))
    {
      // object is a listitem
      pListItem = (ListItem*)pObject;
      Py_INCREF(pListItem);
    }
    else
    {
      // object is probably a text item
      if (!PyXBMCGetUnicodeString(strText, pObject, 1)) return NULL;
      // object is a unicode string now, create a new ListItem
      pListItem = ListItem_FromString(strText);
    }

    CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;

    // Tells the window to add the item to FileItem vector
    PyXBMCGUILock();
    pwx->AddItem(pListItem->item, itemPosition);
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:AWilco,项目名称:xbmc,代码行数:35,代码来源:winxml.cpp

示例9: Control_SetHeight

  PyObject* Control_SetHeight(Control* self, PyObject* args)
  {
    if (!PyArg_ParseTuple(args, (char*)"l", &self->dwHeight)) return NULL;

    PyXBMCGUILock();
    if (self->pGUIControl) self->pGUIControl->SetHeight((float)self->dwHeight);
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:AaronDnz,项目名称:xbmc,代码行数:11,代码来源:control.cpp

示例10: Control_SetPosition

  PyObject* Control_SetPosition(Control* self, PyObject* args)
  {
    if (!PyArg_ParseTuple(args, (char*)"ll", &self->dwPosX, &self->dwPosY)) return NULL;

    PyXBMCGUILock();
    if (self->pGUIControl) self->pGUIControl->SetPosition((float)self->dwPosX, (float)self->dwPosY);
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:AaronDnz,项目名称:xbmc,代码行数:11,代码来源:control.cpp

示例11: Control_SetEnabled

  PyObject* Control_SetEnabled(Control* self, PyObject* args)
  {
    char enabled;
    if (!PyArg_ParseTuple(args, (char*)"b", &enabled)) return NULL;

    PyXBMCGUILock();
    if (self->pGUIControl)   self->pGUIControl->SetEnabled(0 != enabled);
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:AaronDnz,项目名称:xbmc,代码行数:12,代码来源:control.cpp

示例12: WindowXML_ClearList

  PyObject* WindowXML_ClearList(WindowXML *self, PyObject *args)
  {
    if (!self->pWindow) return NULL;

    CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;

    PyXBMCGUILock();
    pwx->ClearList();
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_None;
  }
开发者ID:AWilco,项目名称:xbmc,代码行数:13,代码来源:winxml.cpp

示例13: ControlCheckMark_GetSelected

  PyObject* ControlCheckMark_GetSelected( ControlCheckMark *self )
  {
    bool isSelected = 0;

    PyXBMCGUILock();
    if (self->pGUIControl)
    {
      isSelected = ((CGUICheckMarkControl*)self->pGUIControl)->GetSelected();
    }
    PyXBMCGUIUnlock();

    return Py_BuildValue((char*)"b", isSelected);
  }
开发者ID:AWilco,项目名称:xbmc,代码行数:13,代码来源:controlcheckmark.cpp

示例14: WindowXML_GetListSize

  PyObject* WindowXML_GetListSize(WindowXML *self, PyObject *args)
  {
    if (!self->pWindow) return NULL;

    CGUIPythonWindowXML * pwx = (CGUIPythonWindowXML*)self->pWindow;

    PyXBMCGUILock();
    int listSize = pwx->GetListSize();
    PyXBMCGUIUnlock();

    Py_INCREF(Py_None);
    return Py_BuildValue((char*)"l", listSize);
  }
开发者ID:AWilco,项目名称:xbmc,代码行数:13,代码来源:winxml.cpp

示例15: XBMC_GetCondVisibility

  PyObject* XBMC_GetCondVisibility(PyObject *self, PyObject *args)
  {
    char *cLine = NULL;
    if (!PyArg_ParseTuple(args, (char*)"s", &cLine)) return NULL;

    PyXBMCGUILock();
    int id = g_windowManager.GetTopMostModalDialogID();
    if (id == WINDOW_INVALID) id = g_windowManager.GetActiveWindow();
    PyXBMCGUIUnlock();

    int ret = g_infoManager.TranslateString(cLine);
    return Py_BuildValue((char*)"b", g_infoManager.GetBool(ret,id));
  }
开发者ID:mbosner,项目名称:xbmc,代码行数:13,代码来源:xbmcmodule.cpp


注:本文中的PyXBMCGUILock函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。