INTERACT FORUM
Windows => Third Party Plug-ins, Programs, and Skins => Topic started by: PaulSinnema on June 18, 2011, 06:23:38 am
-
Hi,
MC's MCWS sends Volume values using the current culture configured on the PC. This means that for US values the Volume is sent as '0.2' for 20% and for f.i. Dutch values as '0,2' for 20% (note the decimal point and comma differences).
Since I have no clue what to expect from MC on a Windows Phone I now have the good old decimal point is comma conversion problem again.
This problem also means that date conversions will go wrong (US mm/dd/yyyy, Dutch dd/mm/yyyy).
How do we solve this in a backward compatible way?
Regards
Paul Sinnema
-
Normally Media Center will accept a dot or comma on input, and use the current locale for output.
Could you just accept either delimiter in your code? By adding a Replace(',', '.') for example?
It's possible MCWS could be changed to always return using the English locale for internal variables. Display variables (i.e. "VolumeDisplay") should still honor locale.
-
Hi Matt,
Yep, that's exactly what I did. I made a dirty hack for the problem. I scan the first inputs I get from MC. If the Volume has a period I use the periode from then on and when it has a comma I use that. It works fine. It does however not solve the date problem. I haven't analysed that indepth so it might be no problem at all. I'll look into that soon.
Regards
Paul
-
It's possible MCWS could be changed to always return using the English locale for internal variables. Display variables (i.e. "VolumeDisplay") should still honor locale.
There's also the InvariantCulture. Wouldn't that be the better choice?
Regards
Paul
-
Hi Matt,
Yep, that's exactly what I did. I made a dirty hack for the problem. I scan the first inputs I get from MC. If the Volume has a period I use the periode from then on and when it has a comma I use that. It works fine. It does however not solve the date problem. I haven't analysed that indepth so it might be no problem at all. I'll look into that soon.
Regards
Paul
I'm not sure if it's appropriate here as I don't know what's sending and receiving the dates but presumably you're working with strings, but often it's helpful to send them in the big endian yyyy/mm/dd format. Many systems dealing with datetime type objects work these out automatically. May not work this case.
-
Hi Chriz,
It's been a while.
We can stop the discussion right here. I've just checked. MC does not send Dates like that. It uses some kind of independent value. Below is a XML value as returned by MC.
Regards
Paul
<Item>
<Field Name="Key">705</Field>
<Field Name="Filename">D:\MP3\Al Di Meola\Scenario\Al Di Meola - Scenario.mp3</Field>
<Field Name="Name">Scenario</Field>
<Field Name="Artist">Al Di Meola</Field>
<Field Name="Album">Scenario</Field>
<Field Name="Genre">Other</Field>
<Field Name="Date">36526</Field>
<Field Name="Bitrate">192</Field>
<Field Name="Image File">INTERNAL</Field>
<Field Name="Rating">5</Field>
<Field Name="Duration">240,1430000000000007</Field>
<Field Name="Track #">4</Field>
<Field Name="Media Type">Audio</Field>
<Field Name="Date Imported">1303378675</Field>
<Field Name="File Type">mp3</Field>
<Field Name="File Size">5907562</Field>
<Field Name="Date Created">1285176716</Field>
<Field Name="Date Modified">1299855387</Field>
<Field Name="Compression">CBR (MPEG-1 Layer 3)</Field>
<Field Name="Publisher">Columbia</Field>
<Field Name="Replay Gain">-7,4699999999999998</Field>
<Field Name="Peak Level">0,9789699912071228</Field>
<Field Name="Intensity">1</Field>
<Field Name="BPM">84</Field>
<Field Name="Sample Rate">44100</Field>
<Field Name="Channels">2</Field>
<Field Name="Bit Depth">16</Field>
<Field Name="Album Gain">-8,1155557632446289</Field>
<Field Name="Complete Album">1</Field>
</Item>
-
Ah! I remember...
This may help
http://yabb.jriver.com/interact/index.php?topic=33020.msg280016#msg280016 in particular the two functions at the bottom.