How do I specify DLNA PlaySingle support in my Media Server Device Profile? - dlna

DLNA CTT 1.5.00.51 Test 7.3.80.1,2,3,4 MM CDS DLNA PlaySingle URI Value is failing with the error message "Not Applicable: The device profile reports the DUT does not support PlaySingle URIs"
I have changed my connection manager to return
"http-get:*:audio/mpeg:*"
",http-get:*:audio/wav:*"
",dlna-playsingle:*:audio/mpeg:*"
",dlna-playsingle:*:audio/wav:*"
when GetProtocolInfo is invoked.
Is that the right string? Or am I way of track?
I also tried
"http-get:*:audio/mpeg:*"
",http-get:*:audio/wav:*"
",playsingle-http-get:*:audio/mpeg:*"
",playsingle-http-get:*:audio/wav:*"
I have read the DLNA and searched the web but there didn't seem to be much documentation.

I had missed a test tool configuration option.
In the CTT create a new device profile; on the option page select "Play Modes" then check the "Play Single URI's" option.
Thereafter 7.3.80.1,2,3,4 and the other 7.3.80.* test cases will be available.
There is no need to alter the devices profile or the results of GetProtocolInfo.
(Maybe it should read "PlaySingle URIs")

Related

Can someone clarify IOS Safari Service Worker Support

Looking at the MDN documentation IOS/Safari fully supports ServiceWorkerGlobalScope.onfetch but when you look at the FetchEvent specification it says it is not supported at all by Safari.
In particular, I would like to store some state for each client and was hoping to use the fetchEvent.clientId property of the event to index it. Of course I presume I also have access to the fetchEvent.request object otherwise I can't see how a service worker can do anything useful and I could simulate clientID from a passed in parameter in the url. But the docs don't really tell me what IOS/Safari supports and doesn't so I don't know which way to go.
Can someone please tell me precisely what does IOS/Safari pass when it calls the defined onfetch function.
I found the answer to my question by using https://jakearchibald.github.io/isserviceworkerready/demos/fetchevent/
connecting my iPad to my Macbook and debugging my iPad. I was eventually able to open the web inspector for the Service worker for that page, and the console.log showed the event passed in.
FetchEvent.clientID is present but a zero length string. As it happens I did the same thing on my (linux) Desktop using Chrome and its also a zero length string, BUT it has another parameter resultingClientId with what looks like a UUID in it. That parameter is not there in Safari.
The FetchEvent.request is there, and in particular the URL. So I can generate my own client id in the client (I am using Date.now().toString() as that is good enough for my purposes) for use in the service worker. In fact my site without a service worker was using the in the URLs I need to intercept already, so I am happy that I have a solution.

Can I use a USB pen drive with libusbdotnet

I have just started on libusbdotnet. I have downloaded the sample code from http://libusbdotnet.sourceforge.net/V2/Index.html.
I am using a JetFlash 4GB Flash drive (a libusb-win32 filter driver was added for this drive).
The ShowInfo code works perfectly, and I can see my device info with two endpoints. Following is the device info from pastebin
http://pastebin.com/2Jdph6bY
However, the ReadOnly sample code does not work.
http://pastebin.com/hNZaEt8N
My code is almost same as that from the libsubdotnet website. I have only changed the endpoint that UsbEndpointReader uses. I have changed it from Ep01 to Ep02, because I read that the first endpoint is a control endpoint used for configuration, access control and similar stuff.
UsbEndpointReader reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep02);
I always get the message "No more bytes!".
I thought that this is because of the absence of data, so I used the ReadWrite sample code.
http://pastebin.com/NiN5w9Jt
But here I also get "No more bytes!" message.
Interestly, the line
ec = writer.Write(Encoding.Default.GetBytes(cmdLine), 2000, out bytesWritten);
executes without errors.
Can pen drives be used for read write operations? Or is something wrong with the code?
A USB thumb drive implements the USB mass storage device class, which is a subset of SCSI. The specification is here.
You're not going to get anything sensible by just reading from an endpoint - you have to send the appropriate commands to get any response.
You have not chosen an easy device class to begin your exploration of USB - you may be better starting with something easier - a HID class device, perhaps (Mouse/Keyboard) though Windows does have enhanced security around mice and keyboards which may prevent you installing a filter.
If you meddle with the filesystem on the USB stick while it's mounted as a drive by Windows, you'll almost certainly run into cache-consistency problems, unless you're extremely careful about what kind of access you allow Windows to do.

Cannot share shared preferences between remote service and activity in an application?

I tried using MULTI_MODE_PROCESS above API Level 11. But still I am not getting updating values in activity and values were updated in remote service. I am not able to share preferences in remote service and activity even in froyo,ginger bread versions.Is this a bug in Android ? Any solution we have for this ?
Without code, it's not clear exactly what you're doing, but my guess is that you did the same thing I did at first: simply change your existing call to getSharedPreferences() to use MULTI_MODE_PROCESS and expect synchronization. That's not enough; you also must call getSharedPreferences() again (with the multi-process flag) before accessing the SharedPreferences that may have been changed by another process.

NDIS OID query from user mode

Writing NDIS 5.1 driver for WinXPe. In addition to normal NDIS send/receive functionality, driver also needs to make some discrete IO values available to user processes, presumably via a set of custom OIDs. Info on web indicates IOCTL_NDISUIO_OPEN_DEVICE then IOCTL_NDISUIO_QUERY_OID_VALUE would be perfect, but these functions appear to be limited to Windows CE and not WinXPe. CreateFile to "\\.\\NdisUio" succeeds, but IOCTL_NDISUIO_OPEN_DEVICE fails with code (50) "the request is not supported". Additionally, I had to cheat just to get nuiouser.h into my project because it's not available with the regular SDK. WMI does not appear to help, because WMI appears to only support "standard" parameters, not custom parameters.
If necessary, I believe I can implement IoCreateDevice and IoCreateSymbolicLink in my NDIS driver, then making custom IOCTLs available to user processes. But I'd rather go the OID route if possible.
Can a WinXPe user process perform an NDIS OID query?
MOF files integrated with the driver SYS permit linkage into WMI system and thus access to OID data.

Using the RDP control to login to a Vista machine that requires Network Level Authentication

I'm trying to use the mstscax.dll (Microsoft Remote Desktop Control) to login to a Vista machine that requires Network Level Authentication.
I've played around with all the methods in IMsRdpClientNonScriptable4, IMsRdpClientAdvancedSettings4 and IMsRdpClient6. There are a slew of functions that appear that the might enable this.
EnableCredSspSupport
PromptForCredentials
PromptForCredsOnClient
NegotiateSecurityLayer
Unfortunately the MSDN documentation is pratacily useless and I can find no examples for any of these on the web. I know that it's possible because a product called "Royal TS" can connect this way.
One hint is that both "Royal TS" and Vista's Remote Desktop create a authoriztion prompt that looks like the one from CredUIPromptForWindowsCredentials, this makes me belive that i might be able to use a function like that to get the credential and then possibly use PublisherCertificateChain to tell RDP about it.
Any ideas would be helpful.
So if other people find this:
All that needs to be done is EnableCredSspSupport=true, the problem I had was that I was loading the mstscax.dll manually and the version I was using supported the IMsRdpClientNonScriptable4 interface but simply didn't work. If you just load the control normally just setting EnableCredSspSupport=true works fine.
This property maybe help you
RDPControl.AdvancedSettings8.EnableCredSspSupport = true;
In addition, It also depend on your OS support Network Level Authentication or not.
Reference (http://technet.microsoft.com/en-us/library/ff393716(v=ws.10).aspx)
I've never tried to do what you're doing but I suggest you take a look at the following article:
Multi Remote Desktop Client .NET
The projects uses mstscax.dll.