/*---------------------------------------------------------------------- | PLT_DeviceData::operator const char*() +---------------------------------------------------------------------*/ PLT_DeviceData::operator const char*() { NPT_StringOutputStreamReference stream(new NPT_StringOutputStream); stream->WriteString("Device GUID: "); stream->WriteString((const char*)m_UUID); stream->WriteString("Device Type: "); stream->WriteString((const char*)m_DeviceType); stream->WriteString("Device Base Url: "); stream->WriteString((const char*)GetURLBase().ToString()); stream->WriteString("Device Friendly Name: "); stream->WriteString((const char*)m_FriendlyName); m_Representation = stream->GetString(); return m_Representation; }
/*---------------------------------------------------------------------- | PLT_DeviceData::GetIconUrl +---------------------------------------------------------------------*/ NPT_String PLT_DeviceData::GetIconUrl(const char* mimetype, NPT_Int32 maxsize, NPT_Int32 maxdepth) { PLT_DeviceIcon icon; icon.depth = 0; icon.height = 0; icon.width = 0; for (NPT_Cardinal i=0; i<m_Icons.GetItemCount(); i++) { if ((mimetype && m_Icons[i].mimetype != mimetype) || (maxsize && m_Icons[i].width > maxsize) || (maxsize && m_Icons[i].height > maxsize) || (maxdepth && m_Icons[i].depth > maxdepth)) continue; // pick the biggest and better resolution we can if (icon.width >= m_Icons[i].width || icon.height >= m_Icons[i].height || icon.depth >= m_Icons[i].depth || m_Icons[i].url.IsEmpty()) continue; icon = m_Icons[i]; } if (icon.url == "") return ""; // make absolut path from url base if necessary NPT_HttpUrl url(icon.url); if (!url.IsValid()) { url = GetURLBase(); if (icon.url.StartsWith("/")) { url.SetPathPlus(icon.url); } else { url.SetPathPlus(url.GetPath() + icon.url); } } return url.ToString(); }
/*---------------------------------------------------------------------- | PLT_DeviceData::ToLog +---------------------------------------------------------------------*/ NPT_Result PLT_DeviceData::ToLog(int level /* = NPT_LOG_LEVEL_FINE */) { NPT_COMPILER_UNUSED(level); NPT_StringOutputStreamReference stream(new NPT_StringOutputStream); stream->WriteString("Device GUID: "); stream->WriteString((const char*)m_UUID); stream->WriteString("Device Type: "); stream->WriteString((const char*)m_DeviceType); stream->WriteString("Device Base Url: "); stream->WriteString((const char*)GetURLBase().ToString()); stream->WriteString("Device Friendly Name: "); stream->WriteString((const char*)m_FriendlyName); NPT_LOG_1(level, "%s", (const char*)stream->GetString()); return NPT_SUCCESS; }