本文整理汇总了C++中WDL_PtrList::Get方法的典型用法代码示例。如果您正苦于以下问题:C++ WDL_PtrList::Get方法的具体用法?C++ WDL_PtrList::Get怎么用?C++ WDL_PtrList::Get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WDL_PtrList
的用法示例。
在下文中一共展示了WDL_PtrList::Get方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateMarkerRegionCache
// return a bitmask: &SNM_MARKER_MASK: marker update, &SNM_REGION_MASK: region update
int UpdateMarkerRegionCache()
{
int updateFlags=0;
int i=0, x=0, num, col; double pos, rgnend; const char* name; bool isRgn;
// added/updated markers/regions?
while ((x = EnumProjectMarkers3(NULL, x, &isRgn, &pos, &rgnend, &name, &num, &col)))
{
MarkerRegion* m = g_mkrRgnCache.Get(i);
if (!m || (m && !m->Compare(isRgn, pos, rgnend, name, num, col)))
{
if (m) g_mkrRgnCache.Delete(i, true);
g_mkrRgnCache.Insert(i, new MarkerRegion(isRgn, pos, rgnend, name, num, col));
updateFlags |= (isRgn ? SNM_REGION_MASK : SNM_MARKER_MASK);
}
i++;
}
// removed markers/regions?
for (int j=g_mkrRgnCache.GetSize()-1; j>=i; j--) {
if (MarkerRegion* m = g_mkrRgnCache.Get(j))
updateFlags |= (m->IsRegion() ? SNM_REGION_MASK : SNM_MARKER_MASK);
g_mkrRgnCache.Delete(j, true);
}
// project time mode update?
static int sPrevTimemode = *(int*)GetConfigVar("projtimemode");
if (updateFlags != (SNM_MARKER_MASK|SNM_REGION_MASK))
if (int* timemode = (int*)GetConfigVar("projtimemode"))
if (*timemode != sPrevTimemode) {
sPrevTimemode = *timemode;
return SNM_MARKER_MASK|SNM_REGION_MASK;
}
return updateFlags;
}
示例2: Read
int audioStreamer_waveOut::Read(char *buf, int len) // returns 0 if blocked, < 0 if error, > 0 if data
{
if (!m_hwi) return -1;
#if 0 // lame, this doesnt really do what we want it to
// check to see if all are full, and if so, kill a lot of em
{
int x;
int cnt=0;
for (x = 0; x < m_bufs.GetSize(); x ++)
{
WAVEHDR *th = (WAVEHDR *) m_bufs.Get(x)->Get();
if (th->dwFlags & WHDR_DONE) cnt++;
}
if (cnt >= m_bufs.GetSize()-1)
{
// audiostream_onover();
for (x = 0; x < m_bufs.GetSize(); x ++)
{
if (x != m_whichbuf)
{
WAVEHDR *th = (WAVEHDR *) m_bufs.Get(x)->Get();
if (th->dwFlags & WHDR_DONE)
{
th->dwBytesRecorded=0;
th->dwFlags = WHDR_PREPARED;
waveInAddBuffer(m_hwi,th,sizeof(WAVEHDR));
}
}
}
}
}
#endif
WAVEHDR *th = (WAVEHDR *) m_bufs.Get(m_whichbuf)->Get();
while (!(th->dwFlags & WHDR_DONE))
{
Sleep(WO_SLEEP);
}
len=min(len,(int)th->dwBytesRecorded);
memcpy(buf,th->lpData,len);
th->dwBytesRecorded=0;
th->dwFlags = WHDR_PREPARED;
waveInAddBuffer(m_hwi,th,sizeof(WAVEHDR));
if (++m_whichbuf >= m_bufs.GetSize()) m_whichbuf=0;
return len;
}
示例3: EndDialog
void EndDialog(HWND wnd, int ret)
{
if (!wnd) return;
int x;
for (x = 0; x < s_modalDialogs.GetSize(); x ++)
if (s_modalDialogs.Get(x)->hwnd == wnd)
{
s_modalDialogs.Get(x)->has_ret=true;
s_modalDialogs.Get(x)->ret = ret;
}
DestroyWindow(wnd);
// todo
}
示例4: TrackPopupMenu
int TrackPopupMenu(HMENU hMenu, int flags, int xpos, int ypos, int resvd, HWND hwnd, const RECT *r)
{
if (!hMenu || m_trackingMenus.GetSize()) return 0;
ReleaseCapture();
m_trackingPar=hwnd;
m_trackingFlags=flags;
m_trackingRet=-1;
m_trackingPt.x=xpos;
m_trackingPt.y=ypos;
submenuWndProc(new HWND__(NULL,0,NULL,"menu",false,submenuWndProc,NULL),WM_CREATE,0,(LPARAM)hMenu);
printf("enter trackpopupmenu loop\n");
while (m_trackingRet<0 && m_trackingMenus.GetSize())
{
void SWELL_RunMessageLoop();
SWELL_RunMessageLoop();
Sleep(10);
}
printf("leave trackpopupmenu loop\n");
int x=m_trackingMenus.GetSize()-1;
while (x>=0)
{
HWND h = m_trackingMenus.Get(x);
m_trackingMenus.Delete(x);
if (h) DestroyWindow(h);
x--;
}
if (!(flags&TPM_NONOTIFY) && m_trackingRet>0)
SendMessage(hwnd,WM_COMMAND,m_trackingRet,0);
return m_trackingRet>0?m_trackingRet:0;
}
示例5: delete
~FontStorage()
{
int i, n = m_fonts.GetSize();
for (i = 0; i < n; ++i)
{
delete(m_fonts.Get(i)->font);
}
m_fonts.Empty(true);
}
示例6: Find
LICE_IBitmap* Find(int id)
{
WDL_MutexLock lock(&m_mutex);
int i, n = m_bitmaps.GetSize();
for (i = 0; i < n; ++i)
{
BitmapKey* key = m_bitmaps.Get(i);
if (key->id == id) return key->bitmap;
}
return 0;
}
示例7: FillHWoutDropDown
void FillHWoutDropDown(HWND _hwnd, int _idc)
{
char buf[128] = "";
lstrcpyn(buf, __LOCALIZE("None","sws_DLG_149"), sizeof(buf));
SendDlgItemMessage(_hwnd,_idc,CB_ADDSTRING,0,(LPARAM)buf);
SendDlgItemMessage(_hwnd,_idc,CB_SETITEMDATA,0,0);
// get mono outputs
WDL_PtrList<WDL_FastString> monos;
int monoIdx=0;
while (GetOutputChannelName(monoIdx)) {
monos.Add(new WDL_FastString(GetOutputChannelName(monoIdx)));
monoIdx++;
}
// add stereo outputs
WDL_PtrList<WDL_FastString> stereos;
if (monoIdx)
{
for(int i=0; i < (monoIdx-1); i++)
{
WDL_FastString* hw = new WDL_FastString();
hw->SetFormatted(256, "%s / %s", monos.Get(i)->Get(), monos.Get(i+1)->Get());
stereos.Add(hw);
}
}
// fill dropdown
for(int i=0; i < stereos.GetSize(); i++) {
SendDlgItemMessage(_hwnd,_idc,CB_ADDSTRING,0,(LPARAM)stereos.Get(i)->Get());
SendDlgItemMessage(_hwnd,_idc,CB_SETITEMDATA,i,i+1); // +1 for <none>
}
for(int i=0; i < monos.GetSize(); i++) {
SendDlgItemMessage(_hwnd,_idc,CB_ADDSTRING,0,(LPARAM)monos.Get(i)->Get());
SendDlgItemMessage(_hwnd,_idc,CB_SETITEMDATA,i,i+1); // +1 for <none>
}
// SendDlgItemMessage(_hwnd,_idc,CB_SETCURSEL,x0,0);
monos.Empty(true);
stereos.Empty(true);
}
示例8: AddFontResourceEx
int AddFontResourceEx(LPCTSTR str, DWORD fl, void *pdv)
{
if (str && *str)
{
int x;
for (x=0;x<s_registered_fonts.GetSize();x++)
if (!strcmp(str,s_registered_fonts.Get(x))) return 0;
s_registered_fonts.Add(strdup(str));
return 1;
}
return 0;
}
示例9: on_list_update
void MainWnd::on_list_update()
{
WDL_PtrList<ShellAction> *actions = NULL;
App *the_app = NULL;
the_app = App::get();
actions = the_app->get_tasks();
#ifdef WIN32
HWND ctrl = GetDlgItem(m_hwnd, IDC_TASKS);
int sel_id = -1;
sel_id = ListView_GetCurSel(ctrl);
ListView_DeleteAllItems(ctrl);
if(!actions->GetSize())
return;
for(int i = 0; i < actions->GetSize(); i++)
{
LVITEM lvitem;
WDL_String tmp;
char buf[128];
ShellAction *action = actions->Get(i);
lvitem.mask = LVIF_TEXT | LVIF_PARAM;
lvitem.iItem = i;
lvitem.iSubItem = 0;
lvitem.lParam = (LPARAM)action->get_id();
lvitem.cchTextMax = strlen(action->get_title());
lvitem.pszText = action->get_title();
ListView_InsertItem(ctrl, &lvitem);
ListView_SetItemText(ctrl, i, 1, action->get_path());
tmp = "Every ";
itoa(action->get_interval(), buf, 10);
tmp.Append(buf);
tmp.Append(" ");
tmp.Append(RUN_TYPE_LABELS[action->get_interval_type()]);
ListView_SetItemText(ctrl, i, 2, tmp.Get());
}
if (sel_id >= 0 && m_selected_task)
{
ShellAction *action = the_app->get_task_by_id(sel_id + 1);
the_app->activate_task(action);
ListView_SetItemState(ctrl, sel_id, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
}
#endif // WIN32
}
示例10: Remove
void Remove(LICE_IBitmap* bitmap)
{
WDL_MutexLock lock(&m_mutex);
int i, n = m_bitmaps.GetSize();
for (i = 0; i < n; ++i)
{
if (m_bitmaps.Get(i)->bitmap == bitmap)
{
m_bitmaps.Delete(i, true);
delete(bitmap);
break;
}
}
}
示例11: UpdateMarkerRegionRun
// notify marker/region listeners?
// polled via SNM_CSurfRun()
void UpdateMarkerRegionRun()
{
if (GetTickCount() > g_mkrRgnNotifyTime)
{
g_mkrRgnNotifyTime = GetTickCount() + SNM_MKR_RGN_UPDATE_FREQ;
#ifdef _SNM_MUTEX
SWS_SectionLock lock(&g_mkrRgnListenersMutex);
#endif
if (int sz=g_mkrRgnListeners.GetSize())
if (int updateFlags = UpdateMarkerRegionCache())
for (int i=sz-1; i>=0; i--)
g_mkrRgnListeners.Get(i)->NotifyMarkerRegionUpdate(updateFlags);
}
}
示例12:
const char *GetStringForIndex(EEL_F val, WDL_FastString **isWriteableAs=NULL)
{
int idx = (int) (val+0.5);
if (idx>=0 && idx < MAX_USER_STRINGS)
{
if (isWriteableAs)
{
if (!m_rw_strings[idx]) m_rw_strings[idx] = new WDL_FastString;
*isWriteableAs = m_rw_strings[idx];
}
return m_rw_strings[idx]?m_rw_strings[idx]->Get():"";
}
WDL_FastString *s = m_strings.Get(idx - STRING_INDEX_BASE);
if (isWriteableAs) *isWriteableAs=s;
return s ? s->Get() : NULL;
}
示例13: TrackPopupMenu
int TrackPopupMenu(HMENU hMenu, int flags, int xpos, int ypos, int resvd, HWND hwnd, const RECT *r)
{
if (!hMenu || m_trackingMenus.GetSize()) return 0;
ReleaseCapture();
m_trackingPar=hwnd;
m_trackingFlags=flags;
m_trackingRet=-1;
m_trackingPt.x=xpos;
m_trackingPt.y=ypos;
// HWND oldFoc = GetFocus();
// bool oldFoc_child = oldFoc && (IsChild(hwnd,oldFoc) || oldFoc == hwnd || oldFoc==GetParent(hwnd));
HWND hh;
submenuWndProc(hh=new HWND__(NULL,0,NULL,"menu",false,submenuWndProc,NULL),WM_CREATE,0,(LPARAM)hMenu);
SetProp(hh,"SWELL_MenuOwner",(HANDLE)hwnd);
while (m_trackingRet<0 && m_trackingMenus.GetSize())
{
void SWELL_RunMessageLoop();
SWELL_RunMessageLoop();
Sleep(10);
}
int x=m_trackingMenus.GetSize()-1;
while (x>=0)
{
HWND h = m_trackingMenus.Get(x);
m_trackingMenus.Delete(x);
if (h) DestroyWindow(h);
x--;
}
// if (oldFoc_child) SetFocus(oldFoc);
if (!(flags&TPM_NONOTIFY) && m_trackingRet>0)
SendMessage(hwnd,WM_COMMAND,m_trackingRet,0);
return m_trackingRet>0?m_trackingRet:0;
}
示例14: ContinuousActionHook
bool ContinuousActionHook (int cmd, int flag)
{
BR_ContinuousAction ca(cmd, NULL, NULL, NULL, NULL);
int id = g_actions.FindSorted(&ca, &CompareActionsByCmd);
if (id != -1)
{
if (!g_actionInProgress)
{
if (ContinuousActionInit(true, cmd, g_actions.Get(id)))
return false; // all good, let it execute from the shortcut the first time
else
return true;
}
else
{
if (flag == ACTION_FLAG && g_actionInProgress->cmd == cmd) return false; // continuous action called from timer, let it pass
else return true;
}
}
return false;
}
示例15: AddLeftItem
void AddLeftItem(COMMAND_T* = NULL)
{
for (int i = 1; i <= GetNumTracks(); i++)
{
MediaTrack* tr = CSurf_TrackFromID(i, false);
WDL_PtrList<void> selItems;
// First find selected items
for (int j = 0; j < GetTrackNumMediaItems(tr); j++)
{
MediaItem* selItem = GetTrackMediaItem(tr, j);
if (*(bool*)GetSetMediaItemInfo(selItem, "B_UISEL", NULL))
selItems.Add(selItem);
}
for (int j = 0; j < selItems.GetSize(); j++)
{
double dLeft = *(double*)GetSetMediaItemInfo((MediaItem*)selItems.Get(j), "D_POSITION", NULL);
double dRight = *(double*)GetSetMediaItemInfo((MediaItem*)selItems.Get(j), "D_LENGTH", NULL) + dLeft;
double dMaxLeft = -DBL_MAX;
MediaItem* leftItem = NULL;
for (int k = 0; k < GetTrackNumMediaItems(tr); k++)
{
MediaItem* mi;
mi = GetTrackMediaItem(tr, k);
double dLeft2 = *(double*)GetSetMediaItemInfo(mi, "D_POSITION", NULL);
double dRight2 = *(double*)GetSetMediaItemInfo(mi, "D_LENGTH", NULL) + dLeft2;
if (dLeft2 < dLeft && dRight2 < dRight && dLeft2 > dMaxLeft)
{
dMaxLeft = dLeft2;
leftItem = mi;
}
}
if (leftItem)
GetSetMediaItemInfo(leftItem, "B_UISEL", &g_i1);
}
}
UpdateTimeline();
}