Removed CrystalDiskInfo
BIN
CrystalDiskInfo7_6_1/CdiResource/AlertMail.exe
(Stored with Git LFS)
BIN
CrystalDiskInfo7_6_1/CdiResource/AlertMail4.exe
(Stored with Git LFS)
@ -1,160 +0,0 @@
|
||||
*
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
color: #000000;
|
||||
background: #ffffff;
|
||||
background-image: url(image/background.png);
|
||||
font-family: "メイリオ", Meiryo, Tahoma;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
select
|
||||
{
|
||||
font-family: "メイリオ", Meiryo, Tahoma;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.inline
|
||||
{
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.double
|
||||
{
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
font-family: "メイリオ", Meiryo, Tahoma;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a#AllOn
|
||||
{
|
||||
vertical-align: bottom;
|
||||
background-image: url(image/GraphAllOn.png);
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity=60);
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
a:hover#AllOn
|
||||
{
|
||||
background-image: url(image/GraphAllOn.png);
|
||||
opacity: 1.0;
|
||||
filter: alpha(opacity=100);
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
a#AllOff
|
||||
{
|
||||
vertical-align: bottom;
|
||||
background-image: url(image/GraphAllOff.png);
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity=60);
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
a:hover#AllOff
|
||||
{
|
||||
background-image: url(image/GraphAllOff.png);
|
||||
opacity: 1.0;
|
||||
filter: alpha(opacity=100);
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
a#Reset
|
||||
{
|
||||
vertical-align: bottom;
|
||||
background-image: url(image/GraphReset.png);
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity=60);
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
a:hover#Reset
|
||||
{
|
||||
background-image: url(image/GraphReset.png);
|
||||
opacity: 1.0;
|
||||
filter: alpha(opacity=100);
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
|
||||
#menuBar
|
||||
{
|
||||
width: 100%;
|
||||
list-style-type: none;
|
||||
margin-bottom: 4px;
|
||||
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
line-height: 1.20;
|
||||
text-align: center;
|
||||
background: #cccccc url(image/graphMenuBar.png) repeat-x;
|
||||
background-position: 0px 0px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#menuBar li
|
||||
{
|
||||
display: inline;
|
||||
font-size: 12px;
|
||||
margin: 0px;
|
||||
padding-top: 2px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#menuBar li a
|
||||
{
|
||||
float: left;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
color: #666666;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 30px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#menuBar li a:hover
|
||||
{
|
||||
color: #000000;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#menuBar li a.selected
|
||||
{
|
||||
color: #333333;
|
||||
background: url(check.png) no-repeat;
|
||||
background-position: 20px 12px;
|
||||
}
|
||||
|
||||
#menuBar li a.hidden
|
||||
{
|
||||
visibility: hidden;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
}
|
||||
|
||||
#menuBar li a.visible
|
||||
{
|
||||
visibility: visible;
|
||||
}
|
@ -1,222 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html oncontextmenu="return false" onmousewheel="return !event.shiftKey" onselectstart="return false" ondragover="return false">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
|
||||
<title>CrystalDiskInfo</title>
|
||||
<!--[if lte IE 8 ]><script language="javascript" type="text/javascript" src="./flot/excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="./flot/jquery.min.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="./flot/jquery.flot.min.js"></script>
|
||||
<link id="StyleSheet" href="Graph.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body onresize="changeSize();" oncontextmenu="return false" onmousewheel="return !event.shiftKey" onselectstart="return false" ondragover="return false">
|
||||
<div id="mainMenu">
|
||||
<ul id="menuBar">
|
||||
<li id="LiAllOn" class="allOnOff"></li>
|
||||
<li id="LiAllOff" class="allOnOff"></li>
|
||||
<li id="LiRefresh" class="allOnOff"></li>
|
||||
<li id="LiDisk0"><a href="#" id="Disk0"></a></li>
|
||||
<li id="LiDisk1"><a href="#" id="Disk1"></a></li>
|
||||
<li id="LiDisk2"><a href="#" id="Disk2"></a></li>
|
||||
<li id="LiDisk3"><a href="#" id="Disk3"></a></li>
|
||||
<li id="LiDisk4"><a href="#" id="Disk4"></a></li>
|
||||
<li id="LiDisk5"><a href="#" id="Disk5"></a></li>
|
||||
<li id="LiDisk6"><a href="#" id="Disk6"></a></li>
|
||||
<li id="LiDisk7"><a href="#" id="Disk7"></a></li>
|
||||
<li id="LiDisk8"><a href="#" id="Disk8"></a></li>
|
||||
<li id="LiDisk9"><a href="#" id="Disk9"></a></li>
|
||||
<li id="LiDisk10"><a href="#" id="Disk10"></a></li>
|
||||
<li id="LiDisk11"><a href="#" id="Disk11"></a></li>
|
||||
<li id="LiDisk12"><a href="#" id="Disk12"></a></li>
|
||||
<li id="LiDisk13"><a href="#" id="Disk13"></a></li>
|
||||
<li id="LiDisk14"><a href="#" id="Disk14"></a></li>
|
||||
<li id="LiDisk15"><a href="#" id="Disk15"></a></li>
|
||||
<li id="LiDisk16"><a href="#" id="Disk16"></a></li>
|
||||
<li id="LiDisk17"><a href="#" id="Disk17"></a></li>
|
||||
<li id="LiDisk18"><a href="#" id="Disk18"></a></li>
|
||||
<li id="LiDisk19"><a href="#" id="Disk19"></a></li>
|
||||
<li id="LiDisk20"><a href="#" id="Disk20"></a></li>
|
||||
<li id="LiDisk21"><a href="#" id="Disk21"></a></li>
|
||||
<li id="LiDisk22"><a href="#" id="Disk22"></a></li>
|
||||
<li id="LiDisk23"><a href="#" id="Disk23"></a></li>
|
||||
<li id="LiDisk24"><a href="#" id="Disk24"></a></li>
|
||||
<li id="LiDisk25"><a href="#" id="Disk25"></a></li>
|
||||
<li id="LiDisk26"><a href="#" id="Disk26"></a></li>
|
||||
<li id="LiDisk27"><a href="#" id="Disk27"></a></li>
|
||||
<li id="LiDisk28"><a href="#" id="Disk28"></a></li>
|
||||
<li id="LiDisk29"><a href="#" id="Disk29"></a></li>
|
||||
<li id="LiDisk30"><a href="#" id="Disk30"></a></li>
|
||||
<li id="LiDisk31"><a href="#" id="Disk31"></a></li>
|
||||
<li id="LiDisk32"><a href="#" id="Disk32"></a></li>
|
||||
<li id="LiDisk33"><a href="#" id="Disk33"></a></li>
|
||||
<li id="LiDisk34"><a href="#" id="Disk34"></a></li>
|
||||
<li id="LiDisk35"><a href="#" id="Disk35"></a></li>
|
||||
<li id="LiDisk36"><a href="#" id="Disk36"></a></li>
|
||||
<li id="LiDisk37"><a href="#" id="Disk37"></a></li>
|
||||
<li id="LiDisk38"><a href="#" id="Disk38"></a></li>
|
||||
<li id="LiDisk39"><a href="#" id="Disk39"></a></li>
|
||||
<li id="LiDisk40"><a href="#" id="Disk40"></a></li>
|
||||
<li id="LiDisk41"><a href="#" id="Disk41"></a></li>
|
||||
<li id="LiDisk42"><a href="#" id="Disk42"></a></li>
|
||||
<li id="LiDisk43"><a href="#" id="Disk43"></a></li>
|
||||
<li id="LiDisk44"><a href="#" id="Disk44"></a></li>
|
||||
<li id="LiDisk45"><a href="#" id="Disk45"></a></li>
|
||||
<li id="LiDisk46"><a href="#" id="Disk46"></a></li>
|
||||
<li id="LiDisk47"><a href="#" id="Disk47"></a></li>
|
||||
</ul>
|
||||
<div id="select" style="margin-left: 10px;">
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="#" id="AllOn"></a></td>
|
||||
<td><a href="#" id="AllOff"></a></td>
|
||||
<td><a href="#" id="Reset"></a></td>
|
||||
<td>
|
||||
<select id="SelectAttributeId" title="Select Attribute ID" onchange="this.click()">
|
||||
<option value="261" selected="selected">Reallocated Sectors Count</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="placeholder" style="margin:20px;width:600px;height:340px;"></div>
|
||||
<div id="overview" style="margin-left:20px;margin-right:20px;width:600px;height:40px"></div>
|
||||
<script id="source" language="javascript" type="text/javascript">
|
||||
|
||||
function changeBackgroundImage(x)
|
||||
{
|
||||
document.body.style.backgroundImage = x;
|
||||
}
|
||||
|
||||
function updateData(x)
|
||||
{
|
||||
d = eval(x);
|
||||
}
|
||||
|
||||
function updateMainViewOptions(x)
|
||||
{
|
||||
options = eval("(" + x + ")");
|
||||
}
|
||||
|
||||
function updateOverViewOptions(x)
|
||||
{
|
||||
overViewOptions = eval("(" + x + ")");
|
||||
}
|
||||
|
||||
function reDraw()
|
||||
{
|
||||
document.body.style.cursor = "wait";
|
||||
plot = $.plot($("#placeholder"), d, options);
|
||||
overview = $.plot($("#overview"), d, overViewOptions);
|
||||
document.body.style.cursor = "auto";
|
||||
}
|
||||
|
||||
var d = [[]];
|
||||
var options = {};
|
||||
var overViewOptions = {};
|
||||
var plot;
|
||||
var overview;
|
||||
|
||||
function changeSize()
|
||||
{
|
||||
var obj = document.getElementById("placeholder");
|
||||
if(obj)
|
||||
{
|
||||
obj.style.width = (document.documentElement.clientWidth - 40) + "px";
|
||||
obj.style.height = (document.documentElement.clientHeight - 150) + "px";
|
||||
}
|
||||
var obj = document.getElementById("overview");
|
||||
if(obj)
|
||||
{
|
||||
obj.style.width = (document.documentElement.clientWidth - 40) + "px";
|
||||
}
|
||||
|
||||
plot = $.plot($("#placeholder"), d, options);
|
||||
overview = $.plot($("#overview"), d, overViewOptions);
|
||||
}
|
||||
|
||||
// helper for returning the weekends in a period
|
||||
function weekendAreas(plotarea)
|
||||
{
|
||||
var areas = [];
|
||||
var d = new Date(plotarea.xmin);
|
||||
// go to the first Saturday
|
||||
d.setDate(d.getDate() - ((d.getDay() + 1) % 7))
|
||||
d.setSeconds(0);
|
||||
d.setMinutes(0);
|
||||
d.setHours(0);
|
||||
|
||||
var i = d.getTime() - d.getTimezoneOffset() * 60 * 1000;
|
||||
do {
|
||||
// when we don't set y1 and y2 the rectangle
|
||||
// automatically extends to infinity in those directions
|
||||
areas.push({ x1: i, x2: i + 2 * 24 * 60 * 60 * 1000 });
|
||||
i += 7 * 24 * 60 * 60 * 1000;
|
||||
} while (i < plotarea.xmax);
|
||||
|
||||
return areas;
|
||||
}
|
||||
|
||||
// now connect the two
|
||||
var internalSelection = false;
|
||||
|
||||
$("#placeholder").bind("selected", function (event, area) {
|
||||
// do the zooming
|
||||
plot = $.plot($("#placeholder"), d,
|
||||
$.extend(true, {}, options, {
|
||||
xaxis: { min: area.x1, max: area.x2 },
|
||||
yaxis: { min: area.y1, max: area.y2 }
|
||||
}));
|
||||
|
||||
if (internalSelection)
|
||||
return; // prevent eternal loop
|
||||
internalSelection = true;
|
||||
overview.setSelection(area);
|
||||
internalSelection = false;
|
||||
});
|
||||
|
||||
$("#overview").bind("selected", function (event, area) {
|
||||
if (internalSelection)
|
||||
return;
|
||||
internalSelection = true;
|
||||
plot.setSelection(area);
|
||||
internalSelection = false;
|
||||
});
|
||||
|
||||
function showTooltip(x, y, contents) {
|
||||
var str = "" + contents;
|
||||
x = x - str.length * 6;
|
||||
$('<div id="tooltip">' + contents + '</div>').css( {
|
||||
position: 'absolute',
|
||||
display: 'none',
|
||||
top: y - 40,
|
||||
left: x,
|
||||
border: '1px solid #ddd',
|
||||
padding: '4px',
|
||||
'background-color': '#eee',
|
||||
'font-size': '20px',
|
||||
opacity: 0.90
|
||||
}).appendTo("body").fadeIn(200);
|
||||
}
|
||||
|
||||
var previousPoint = null;
|
||||
$("#placeholder").bind("plothover", function (event, pos, item) {
|
||||
if (item) {
|
||||
if (previousPoint != item.datapoint) {
|
||||
previousPoint = item.datapoint;
|
||||
|
||||
$("#tooltip").remove();
|
||||
var x = item.datapoint[0].toFixed(2),
|
||||
y = item.datapoint[1].toFixed(2);
|
||||
|
||||
showTooltip(item.pageX, item.pageY, parseInt(y));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("#tooltip").remove();
|
||||
previousPoint = null;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<div id="complete"></div>
|
||||
</body>
|
||||
</html>
|
@ -1,222 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html oncontextmenu="return false" onmousewheel="return !event.shiftKey" onselectstart="return false" ondragover="return false">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=8" >
|
||||
<title>CrystalDiskInfo</title>
|
||||
<!--[if lte IE 8 ]><script language="javascript" type="text/javascript" src="./flot/excanvas.min.js"></script><![endif]-->
|
||||
<script language="javascript" type="text/javascript" src="./flot/jquery.min.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="./flot/jquery.flot.min.js"></script>
|
||||
<link id="StyleSheet" href="Graph.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body onresize="changeSize();" oncontextmenu="return false" onmousewheel="return !event.shiftKey" onselectstart="return false" ondragover="return false">
|
||||
<div id="mainMenu">
|
||||
<ul id="menuBar">
|
||||
<li id="LiAllOn" class="allOnOff"></li>
|
||||
<li id="LiAllOff" class="allOnOff"></li>
|
||||
<li id="LiRefresh" class="allOnOff"></li>
|
||||
<li id="LiDisk0"><a href="#" id="Disk0"></a></li>
|
||||
<li id="LiDisk1"><a href="#" id="Disk1"></a></li>
|
||||
<li id="LiDisk2"><a href="#" id="Disk2"></a></li>
|
||||
<li id="LiDisk3"><a href="#" id="Disk3"></a></li>
|
||||
<li id="LiDisk4"><a href="#" id="Disk4"></a></li>
|
||||
<li id="LiDisk5"><a href="#" id="Disk5"></a></li>
|
||||
<li id="LiDisk6"><a href="#" id="Disk6"></a></li>
|
||||
<li id="LiDisk7"><a href="#" id="Disk7"></a></li>
|
||||
<li id="LiDisk8"><a href="#" id="Disk8"></a></li>
|
||||
<li id="LiDisk9"><a href="#" id="Disk9"></a></li>
|
||||
<li id="LiDisk10"><a href="#" id="Disk10"></a></li>
|
||||
<li id="LiDisk11"><a href="#" id="Disk11"></a></li>
|
||||
<li id="LiDisk12"><a href="#" id="Disk12"></a></li>
|
||||
<li id="LiDisk13"><a href="#" id="Disk13"></a></li>
|
||||
<li id="LiDisk14"><a href="#" id="Disk14"></a></li>
|
||||
<li id="LiDisk15"><a href="#" id="Disk15"></a></li>
|
||||
<li id="LiDisk16"><a href="#" id="Disk16"></a></li>
|
||||
<li id="LiDisk17"><a href="#" id="Disk17"></a></li>
|
||||
<li id="LiDisk18"><a href="#" id="Disk18"></a></li>
|
||||
<li id="LiDisk19"><a href="#" id="Disk19"></a></li>
|
||||
<li id="LiDisk20"><a href="#" id="Disk20"></a></li>
|
||||
<li id="LiDisk21"><a href="#" id="Disk21"></a></li>
|
||||
<li id="LiDisk22"><a href="#" id="Disk22"></a></li>
|
||||
<li id="LiDisk23"><a href="#" id="Disk23"></a></li>
|
||||
<li id="LiDisk24"><a href="#" id="Disk24"></a></li>
|
||||
<li id="LiDisk25"><a href="#" id="Disk25"></a></li>
|
||||
<li id="LiDisk26"><a href="#" id="Disk26"></a></li>
|
||||
<li id="LiDisk27"><a href="#" id="Disk27"></a></li>
|
||||
<li id="LiDisk28"><a href="#" id="Disk28"></a></li>
|
||||
<li id="LiDisk29"><a href="#" id="Disk29"></a></li>
|
||||
<li id="LiDisk30"><a href="#" id="Disk30"></a></li>
|
||||
<li id="LiDisk31"><a href="#" id="Disk31"></a></li>
|
||||
<li id="LiDisk32"><a href="#" id="Disk32"></a></li>
|
||||
<li id="LiDisk33"><a href="#" id="Disk33"></a></li>
|
||||
<li id="LiDisk34"><a href="#" id="Disk34"></a></li>
|
||||
<li id="LiDisk35"><a href="#" id="Disk35"></a></li>
|
||||
<li id="LiDisk36"><a href="#" id="Disk36"></a></li>
|
||||
<li id="LiDisk37"><a href="#" id="Disk37"></a></li>
|
||||
<li id="LiDisk38"><a href="#" id="Disk38"></a></li>
|
||||
<li id="LiDisk39"><a href="#" id="Disk39"></a></li>
|
||||
<li id="LiDisk40"><a href="#" id="Disk40"></a></li>
|
||||
<li id="LiDisk41"><a href="#" id="Disk41"></a></li>
|
||||
<li id="LiDisk42"><a href="#" id="Disk42"></a></li>
|
||||
<li id="LiDisk43"><a href="#" id="Disk43"></a></li>
|
||||
<li id="LiDisk44"><a href="#" id="Disk44"></a></li>
|
||||
<li id="LiDisk45"><a href="#" id="Disk45"></a></li>
|
||||
<li id="LiDisk46"><a href="#" id="Disk46"></a></li>
|
||||
<li id="LiDisk47"><a href="#" id="Disk47"></a></li>
|
||||
</ul>
|
||||
<div id="select" style="margin-left: 10px;">
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="#" id="AllOn"></a></td>
|
||||
<td><a href="#" id="AllOff"></a></td>
|
||||
<td><a href="#" id="Reset"></a></td>
|
||||
<td>
|
||||
<select id="SelectAttributeId" title="Select Attribute ID" onchange="this.click()">
|
||||
<option value="261" selected="selected">Reallocated Sectors Count</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="placeholder" style="margin:20px;width:600px;height:340px;"></div>
|
||||
<div id="overview" style="margin-left:20px;margin-right:20px;width:600px;height:40px"></div>
|
||||
<script id="source" language="javascript" type="text/javascript">
|
||||
|
||||
function changeBackgroundImage(x)
|
||||
{
|
||||
document.body.style.backgroundImage = x;
|
||||
}
|
||||
|
||||
function updateData(x)
|
||||
{
|
||||
d = eval(x);
|
||||
}
|
||||
|
||||
function updateMainViewOptions(x)
|
||||
{
|
||||
options = eval("(" + x + ")");
|
||||
}
|
||||
|
||||
function updateOverViewOptions(x)
|
||||
{
|
||||
overViewOptions = eval("(" + x + ")");
|
||||
}
|
||||
|
||||
function reDraw()
|
||||
{
|
||||
document.body.style.cursor = "wait";
|
||||
plot = $.plot($("#placeholder"), d, options);
|
||||
overview = $.plot($("#overview"), d, overViewOptions);
|
||||
document.body.style.cursor = "auto";
|
||||
}
|
||||
|
||||
var d = [[]];
|
||||
var options = {};
|
||||
var overViewOptions = {};
|
||||
var plot;
|
||||
var overview;
|
||||
|
||||
function changeSize()
|
||||
{
|
||||
var obj = document.getElementById("placeholder");
|
||||
if(obj)
|
||||
{
|
||||
obj.style.width = (document.documentElement.clientWidth - 40) + "px";
|
||||
obj.style.height = (document.documentElement.clientHeight - 150) + "px";
|
||||
}
|
||||
var obj = document.getElementById("overview");
|
||||
if(obj)
|
||||
{
|
||||
obj.style.width = (document.documentElement.clientWidth - 40) + "px";
|
||||
}
|
||||
|
||||
plot = $.plot($("#placeholder"), d, options);
|
||||
overview = $.plot($("#overview"), d, overViewOptions);
|
||||
}
|
||||
|
||||
// helper for returning the weekends in a period
|
||||
function weekendAreas(plotarea)
|
||||
{
|
||||
var areas = [];
|
||||
var d = new Date(plotarea.xmin);
|
||||
// go to the first Saturday
|
||||
d.setDate(d.getDate() - ((d.getDay() + 1) % 7))
|
||||
d.setSeconds(0);
|
||||
d.setMinutes(0);
|
||||
d.setHours(0);
|
||||
|
||||
var i = d.getTime() - d.getTimezoneOffset() * 60 * 1000;
|
||||
do {
|
||||
// when we don't set y1 and y2 the rectangle
|
||||
// automatically extends to infinity in those directions
|
||||
areas.push({ x1: i, x2: i + 2 * 24 * 60 * 60 * 1000 });
|
||||
i += 7 * 24 * 60 * 60 * 1000;
|
||||
} while (i < plotarea.xmax);
|
||||
|
||||
return areas;
|
||||
}
|
||||
|
||||
// now connect the two
|
||||
var internalSelection = false;
|
||||
|
||||
$("#placeholder").bind("selected", function (event, area) {
|
||||
// do the zooming
|
||||
plot = $.plot($("#placeholder"), d,
|
||||
$.extend(true, {}, options, {
|
||||
xaxis: { min: area.x1, max: area.x2 },
|
||||
yaxis: { min: area.y1, max: area.y2 }
|
||||
}));
|
||||
|
||||
if (internalSelection)
|
||||
return; // prevent eternal loop
|
||||
internalSelection = true;
|
||||
overview.setSelection(area);
|
||||
internalSelection = false;
|
||||
});
|
||||
|
||||
$("#overview").bind("selected", function (event, area) {
|
||||
if (internalSelection)
|
||||
return;
|
||||
internalSelection = true;
|
||||
plot.setSelection(area);
|
||||
internalSelection = false;
|
||||
});
|
||||
|
||||
function showTooltip(x, y, contents) {
|
||||
var str = "" + contents;
|
||||
x = x - str.length * 6;
|
||||
$('<div id="tooltip">' + contents + '</div>').css( {
|
||||
position: 'absolute',
|
||||
display: 'none',
|
||||
top: y - 40,
|
||||
left: x,
|
||||
border: '1px solid #ddd',
|
||||
padding: '4px',
|
||||
'background-color': '#eee',
|
||||
'font-size': '20px',
|
||||
opacity: 0.90
|
||||
}).appendTo("body").fadeIn(200);
|
||||
}
|
||||
|
||||
var previousPoint = null;
|
||||
$("#placeholder").bind("plothover", function (event, pos, item) {
|
||||
if (item) {
|
||||
if (previousPoint != item.datapoint) {
|
||||
previousPoint = item.datapoint;
|
||||
|
||||
$("#tooltip").remove();
|
||||
var x = item.datapoint[0].toFixed(2),
|
||||
y = item.datapoint[1].toFixed(2);
|
||||
|
||||
showTooltip(item.pageX, item.pageY, parseInt(y));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("#tooltip").remove();
|
||||
previousPoint = null;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<div id="complete"></div>
|
||||
</body>
|
||||
</html>
|
@ -1,327 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html oncontextmenu="return false" onmousewheel="return !event.shiftKey" onselectstart="return false" ondragover="return false">
|
||||
<head>
|
||||
<title>CrystalDiskInfo</title>
|
||||
<style type="text/css">
|
||||
body
|
||||
{
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
color: #000000;
|
||||
background: #ffffff;
|
||||
background-image: url("./image/background.png");
|
||||
font-family: "メイリオ", Meiryo, Tahoma;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
p
|
||||
{
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
th
|
||||
{
|
||||
font-size: 14px;
|
||||
background-image: url("./image/labelUnsupported.png");
|
||||
background-position: center bottom;
|
||||
background-repeat: no-repeat;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
a:link
|
||||
{
|
||||
text-decoration: none;
|
||||
color: #3333ff;
|
||||
}
|
||||
|
||||
a:visited
|
||||
{
|
||||
text-decoration: none;
|
||||
color: #6666ff;
|
||||
}
|
||||
|
||||
div.color
|
||||
{
|
||||
display: block;
|
||||
border: #cccccc 3px double;
|
||||
background-color: #eeeeee;
|
||||
width : 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
div.valueC
|
||||
{
|
||||
display: block;
|
||||
text-align: center;
|
||||
border-left: #cccccc 1px solid;
|
||||
border-top: #f0f0f0 1px solid;
|
||||
border-bottom: #dddddd 1px solid;
|
||||
border-right: #f0f0f0 1px solid;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 0px;
|
||||
color: #111111;
|
||||
font-family: monospace;
|
||||
height: 18px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
div.valueL
|
||||
{
|
||||
display: block;
|
||||
text-align: left;
|
||||
border-left: #cccccc 1px solid;
|
||||
border-top: #f0f0f0 1px solid;
|
||||
border-bottom: #dddddd 1px solid;
|
||||
border-right: #f0f0f0 1px solid;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 0px;
|
||||
color: #111111;
|
||||
font-family: "メイリオ", Meiryo, Tahoma;
|
||||
height: 18px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
line-height: 1.2;
|
||||
width: 404px;
|
||||
}
|
||||
|
||||
a.buttonEnable
|
||||
{
|
||||
color : #000000;
|
||||
width : 120px;
|
||||
height: 20px;
|
||||
font-size: 14px;
|
||||
padding-top: 4px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
background-image: url(image/buttonEnable.png);
|
||||
}
|
||||
|
||||
a:hover.buttonEnable
|
||||
{
|
||||
background-image: url(image/buttonHover.png);
|
||||
}
|
||||
|
||||
</style>
|
||||
<script id="source" language="javascript" type="text/javascript">
|
||||
function changeBackgroundColor(x)
|
||||
{
|
||||
var arg = x.split(", ");
|
||||
var id = "Color" + arg[0];
|
||||
var color = arg[1];
|
||||
|
||||
var obj = document.getElementById(id);
|
||||
if(obj)
|
||||
{
|
||||
obj.style.backgroundColor = color;
|
||||
}
|
||||
}
|
||||
|
||||
function changeBackgroundImage(x)
|
||||
{
|
||||
document.body.style.backgroundImage = x;
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body oncontextmenu="return false" onmousewheel="return !event.shiftKey" onselectstart="return false" ondragover="return false">
|
||||
<table width="416" border="0">
|
||||
<tr>
|
||||
<th colspan="12" id="LabelLineColor"> </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="16"><div align="center">1</div></td>
|
||||
<td width="20"><div id="Color0" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select0"></a></div></td>
|
||||
<td width="68"><div id="ColorCode0" class="valueC"></div></td>
|
||||
<td width="16"><div align="center">13</div></td>
|
||||
<td width="20"><div id="Color12" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select12"></a></div></td>
|
||||
<td width="68"><div id="ColorCode12" class="valueC"></div></td>
|
||||
<td width="16"><div align="center">25</div></td>
|
||||
<td width="20"><div id="Color24" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select24"></a></div></td>
|
||||
<td width="68"><div id="ColorCode24" class="valueC"></div></td>
|
||||
<td width="16"><div align="center">37</div></td>
|
||||
<td width="20"><div id="Color36" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select36"></a></div></td>
|
||||
<td width="68"><div id="ColorCode36" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">2</div></td>
|
||||
<td><div id="Color1" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select1"></a></div></td>
|
||||
<td><div id="ColorCode1" class="valueC"></div></td>
|
||||
<td><div align="center">14</div></td>
|
||||
<td><div id="Color13" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select13"></a></div></td>
|
||||
<td><div id="ColorCode13" class="valueC"></div></td>
|
||||
<td><div align="center">26</div></td>
|
||||
<td><div id="Color25" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select25"></a></div></td>
|
||||
<td><div id="ColorCode25" class="valueC"></div></td>
|
||||
<td><div align="center">38</div></td>
|
||||
<td><div id="Color37" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select37"></a></div></td>
|
||||
<td><div id="ColorCode37" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">3</div></td>
|
||||
<td><div id="Color2" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select2"></a></div></td>
|
||||
<td><div id="ColorCode2" class="valueC"></div></td>
|
||||
<td><div align="center">15</div></td>
|
||||
<td><div id="Color14" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select14"></a></div></td>
|
||||
<td><div id="ColorCode14" class="valueC"></div></td>
|
||||
<td><div align="center">27</div></td>
|
||||
<td><div id="Color26" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select26"></a></div></td>
|
||||
<td><div id="ColorCode26" class="valueC"></div></td>
|
||||
<td><div align="center">39</div></td>
|
||||
<td><div id="Color38" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select38"></a></div></td>
|
||||
<td><div id="ColorCode38" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">4</div></td>
|
||||
<td><div id="Color3" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select3"></a></div></td>
|
||||
<td><div id="ColorCode3" class="valueC"></div></td>
|
||||
<td><div align="center">16</div></td>
|
||||
<td><div id="Color15" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select15"></a></div></td>
|
||||
<td><div id="ColorCode15" class="valueC"></div></td>
|
||||
<td><div align="center">28</div></td>
|
||||
<td><div id="Color27" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select27"></a></div></td>
|
||||
<td><div id="ColorCode27" class="valueC"></div></td>
|
||||
<td><div align="center">40</div></td>
|
||||
<td><div id="Color39" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select39"></a></div></td>
|
||||
<td><div id="ColorCode39" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">5</div></td>
|
||||
<td><div id="Color4" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select4"></a></div></td>
|
||||
<td><div id="ColorCode4" class="valueC"></div></td>
|
||||
<td><div align="center">17</div></td>
|
||||
<td><div id="Color16" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select16"></a></div></td>
|
||||
<td><div id="ColorCode16" class="valueC"></div></td>
|
||||
<td><div align="center">29</div></td>
|
||||
<td><div id="Color28" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select28"></a></div></td>
|
||||
<td><div id="ColorCode28" class="valueC"></div></td>
|
||||
<td><div align="center">41</div></td>
|
||||
<td><div id="Color40" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select40"></a></div></td>
|
||||
<td><div id="ColorCode40" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">6</div></td>
|
||||
<td><div id="Color5" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select5"></a></div></td>
|
||||
<td><div id="ColorCode5" class="valueC"></div></td>
|
||||
<td><div align="center">18</div></td>
|
||||
<td><div id="Color17" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select17"></a></div></td>
|
||||
<td><div id="ColorCode17" class="valueC"></div></td>
|
||||
<td><div align="center">30</div></td>
|
||||
<td><div id="Color29" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select29"></a></div></td>
|
||||
<td><div id="ColorCode29" class="valueC"></div></td>
|
||||
<td><div align="center">42</div></td>
|
||||
<td><div id="Color41" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select41"></a></div></td>
|
||||
<td><div id="ColorCode41" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">7</div></td>
|
||||
<td><div id="Color6" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select6"></a></div></td>
|
||||
<td><div id="ColorCode6" class="valueC"></div></td>
|
||||
<td><div align="center">19</div></td>
|
||||
<td><div id="Color18" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select18"></a></div></td>
|
||||
<td><div id="ColorCode18" class="valueC"></div></td>
|
||||
<td><div align="center">31</div></td>
|
||||
<td><div id="Color30" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select30"></a></div></td>
|
||||
<td><div id="ColorCode30" class="valueC"></div></td>
|
||||
<td><div align="center">43</div></td>
|
||||
<td><div id="Color42" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select42"></a></div></td>
|
||||
<td><div id="ColorCode42" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">8</div></td>
|
||||
<td><div id="Color7" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select7"></a></div></td>
|
||||
<td><div id="ColorCode7" class="valueC"></div></td>
|
||||
<td><div align="center">20</div></td>
|
||||
<td><div id="Color19" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select19"></a></div></td>
|
||||
<td><div id="ColorCode19" class="valueC"></div></td>
|
||||
<td><div align="center">32</div></td>
|
||||
<td><div id="Color31" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select31"></a></div></td>
|
||||
<td><div id="ColorCode31" class="valueC"></div></td>
|
||||
<td><div align="center">44</div></td>
|
||||
<td><div id="Color43" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select43"></a></div></td>
|
||||
<td><div id="ColorCode43" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">9</div></td>
|
||||
<td><div id="Color8" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select8"></a></div></td>
|
||||
<td><div id="ColorCode8" class="valueC"></div></td>
|
||||
<td><div align="center">21</div></td>
|
||||
<td><div id="Color20" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select20"></a></div></td>
|
||||
<td><div id="ColorCode20" class="valueC"></div></td>
|
||||
<td><div align="center">33</div></td>
|
||||
<td><div id="Color32" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select32"></a></div></td>
|
||||
<td><div id="ColorCode32" class="valueC"></div></td>
|
||||
<td><div align="center">45</div></td>
|
||||
<td><div id="Color44" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select44"></a></div></td>
|
||||
<td><div id="ColorCode44" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">10</div></td>
|
||||
<td><div id="Color9" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select9"></a></div></td>
|
||||
<td><div id="ColorCode9" class="valueC"></div></td>
|
||||
<td><div align="center">22</div></td>
|
||||
<td><div id="Color21" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select21"></a></div></td>
|
||||
<td><div id="ColorCode21" class="valueC"></div></td>
|
||||
<td><div align="center">34</div></td>
|
||||
<td><div id="Color33" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select33"></a></div></td>
|
||||
<td><div id="ColorCode33" class="valueC"></div></td>
|
||||
<td><div align="center">46</div></td>
|
||||
<td><div id="Color45" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select45"></a></div></td>
|
||||
<td><div id="ColorCode45" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">11</div></td>
|
||||
<td><div id="Color10" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select10"></a></div></td>
|
||||
<td><div id="ColorCode10" class="valueC"></div></td>
|
||||
<td><div align="center">23</div></td>
|
||||
<td><div id="Color22" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select22"></a></div></td>
|
||||
<td><div id="ColorCode22" class="valueC"></div></td>
|
||||
<td><div align="center">35</div></td>
|
||||
<td><div id="Color34" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select34"></a></div></td>
|
||||
<td><div id="ColorCode34" class="valueC"></div></td>
|
||||
<td><div align="center">47</div></td>
|
||||
<td><div id="Color46" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select46"></a></div></td>
|
||||
<td><div id="ColorCode46" class="valueC"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">12</div></td>
|
||||
<td><div id="Color11" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select11"></a></div></td>
|
||||
<td><div id="ColorCode11" class="valueC"></div></td>
|
||||
<td><div align="center">24</div></td>
|
||||
<td><div id="Color23" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select23"></a></div></td>
|
||||
<td><div id="ColorCode23" class="valueC"></div></td>
|
||||
<td><div align="center">36</div></td>
|
||||
<td><div id="Color35" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select35"></a></div></td>
|
||||
<td><div id="ColorCode35" class="valueC"></div></td>
|
||||
<td><div align="center">48</div></td>
|
||||
<td><div id="Color47" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select47"></a></div></td>
|
||||
<td><div id="ColorCode47" class="valueC"></div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td width="108"><div id="LabelThreshold" align="right">Threshold</div></td>
|
||||
<td width="20"><div id="Color48" class="color"><a href="#"><img src="image/blank.png" border="0" id="Select48"></a></div></td>
|
||||
<td width="68"><div id="ColorCode48" class="valueC"></div></td>
|
||||
<td width="204"><a href="#" id="Reset" class="buttonEnable">Reset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr width="450">
|
||||
<table width="450" border="0">
|
||||
<tr>
|
||||
<th colspan="3" id="LabelBgImage"> </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="404"><div id="BgImage" class="valueL"></td>
|
||||
<td width="16"><a href="#"><img src="image/file.png" border="0" id="SelectBgImage"></a></td>
|
||||
<td width="16"><a href="#"><img src="image/nofile.png" border="0" id="NoBgImage"></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="complete"></div>
|
||||
</body>
|
||||
</html>
|
@ -1,404 +0,0 @@
|
||||
(function($){function Plot(target_,data_,options_){var series=[],options={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{mode:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null},yaxis:{autoscaleMargin:0.02},x2axis:{autoscaleMargin:null},y2axis:{autoscaleMargin:0.02},points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left"},grid:{color:"#545454",backgroundColor:null,tickColor:"#dddddd",labelMargin:5,borderWidth:2,borderColor:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},selection:{mode:null,color:"#e8cfac"},crosshair:{mode:null,color:"#aa0000"},shadowSize:4},canvas=null,overlay=null,eventHolder=null,ctx=null,octx=null,target=$(target_),axes={xaxis:{},yaxis:{},x2axis:{},y2axis:{}},plotOffset={left:0,right:0,top:0,bottom:0},canvasWidth=0,canvasHeight=0,plotWidth=0,plotHeight=0,workarounds={};this.setData=setData;this.setupGrid=setupGrid;this.draw=draw;this.clearSelection=clearSelection;this.setSelection=setSelection;this.getCanvas=function(){return canvas;};this.getPlotOffset=function(){return plotOffset;};this.getData=function(){return series;};this.getAxes=function(){return axes;};this.setCrosshair=setCrosshair;this.clearCrosshair=function(){setCrosshair(null);};this.highlight=highlight;this.unhighlight=unhighlight;parseOptions(options_);setData(data_);constructCanvas();setupGrid();draw();function setData(d){series=parseData(d);fillInSeriesOptions();processData();}
|
||||
function parseData(d){var res=[];for(var i=0;i<d.length;++i){var s;if(d[i].data){s={};for(var v in d[i])
|
||||
s[v]=d[i][v];}
|
||||
else{s={data:d[i]};}
|
||||
res.push(s);}
|
||||
return res;}
|
||||
function parseOptions(o){$.extend(true,options,o);if(options.grid.borderColor==null)
|
||||
options.grid.borderColor=options.grid.color
|
||||
if(options.xaxis.noTicks&&options.xaxis.ticks==null)
|
||||
options.xaxis.ticks=options.xaxis.noTicks;if(options.yaxis.noTicks&&options.yaxis.ticks==null)
|
||||
options.yaxis.ticks=options.yaxis.noTicks;if(options.grid.coloredAreas)
|
||||
options.grid.markings=options.grid.coloredAreas;if(options.grid.coloredAreasColor)
|
||||
options.grid.markingsColor=options.grid.coloredAreasColor;}
|
||||
function fillInSeriesOptions(){var i;var neededColors=series.length,usedColors=[],assignedColors=[];for(i=0;i<series.length;++i){var sc=series[i].color;if(sc!=null){--neededColors;if(typeof sc=="number")
|
||||
assignedColors.push(sc);else
|
||||
usedColors.push(parseColor(series[i].color));}}
|
||||
for(i=0;i<assignedColors.length;++i){neededColors=Math.max(neededColors,assignedColors[i]+1);}
|
||||
var colors=[],variation=0;i=0;while(colors.length<neededColors){var c;if(options.colors.length==i)
|
||||
c=new Color(100,100,100);else
|
||||
c=parseColor(options.colors[i]);var sign=variation%2==1?-1:1;var factor=1+sign*Math.ceil(variation/2)*0.2;c.scale(factor,factor,factor);colors.push(c);++i;if(i>=options.colors.length){i=0;++variation;}}
|
||||
var colori=0,s;for(i=0;i<series.length;++i){s=series[i];if(s.color==null){s.color=colors[colori].toString();++colori;}
|
||||
else if(typeof s.color=="number")
|
||||
s.color=colors[s.color].toString();s.lines=$.extend(true,{},options.lines,s.lines);s.points=$.extend(true,{},options.points,s.points);s.bars=$.extend(true,{},options.bars,s.bars);if(s.lines.show==null&&!s.bars.show&&!s.points.show)
|
||||
s.lines.show=true;if(s.shadowSize==null)
|
||||
s.shadowSize=options.shadowSize;if(!s.xaxis)
|
||||
s.xaxis=axes.xaxis;if(s.xaxis==1)
|
||||
s.xaxis=axes.xaxis;else if(s.xaxis==2)
|
||||
s.xaxis=axes.x2axis;if(!s.yaxis)
|
||||
s.yaxis=axes.yaxis;if(s.yaxis==1)
|
||||
s.yaxis=axes.yaxis;else if(s.yaxis==2)
|
||||
s.yaxis=axes.y2axis;}}
|
||||
function processData(){var topSentry=Number.POSITIVE_INFINITY,bottomSentry=Number.NEGATIVE_INFINITY,axis,i,j,k;for(axis in axes){axes[axis].datamin=topSentry;axes[axis].datamax=bottomSentry;axes[axis].min=options[axis].min;axes[axis].max=options[axis].max;axes[axis].used=false;}
|
||||
for(i=0;i<series.length;++i){var s=series[i];s.datapoints={points:[],incr:2};var data=s.data,points=s.datapoints.points,incr=s.datapoints.incr,axisx=s.xaxis,axisy=s.yaxis,xmin=topSentry,xmax=bottomSentry,ymin=topSentry,ymax=bottomSentry;axisx.used=axisy.used=true;for(j=k=0;j<data.length;++j,k+=incr){var x=null,y=null;if(data[j]!=null){x=data[j][0];y=data[j][1];}
|
||||
if(x!=null&&!isNaN(x=+x)){if(x<xmin)
|
||||
xmin=x;if(x>xmax)
|
||||
xmax=x}
|
||||
else
|
||||
x=null;if(y!=null&&!isNaN(y=+y)){if(y<ymin)
|
||||
ymin=y;if(y>ymax)
|
||||
ymax=y;}
|
||||
else
|
||||
y=null;if(x==null||y==null)
|
||||
x=y=null;points[k+1]=y;points[k]=x;}
|
||||
if(s.bars.show){var delta=s.bars.align=="left"?0:-s.bars.barWidth/2;xmin+=delta;xmax+=delta+s.bars.barWidth;}
|
||||
axisx.datamin=Math.min(axisx.datamin,xmin);axisx.datamax=Math.max(axisx.datamax,xmax);axisy.datamin=Math.min(axisy.datamin,ymin);axisy.datamax=Math.max(axisy.datamax,ymax);}}
|
||||
function constructCanvas(){function makeCanvas(width,height){var c=document.createElement('canvas');c.width=width;c.height=height;
|
||||
try{c=window.G_vmlCanvasManager.initElement(c);}catch(e){}return c;}
|
||||
canvasWidth=target.width();canvasHeight=target.height();target.html("");if(target.css("position")=='static')
|
||||
target.css("position","relative");if(canvasWidth<=0||canvasHeight<=0)
|
||||
throw"Invalid dimensions for plot, width = "+canvasWidth+", height = "+canvasHeight;canvas=$(makeCanvas(canvasWidth,canvasHeight)).appendTo(target).get(0);ctx=canvas.getContext("2d");overlay=$(makeCanvas(canvasWidth,canvasHeight)).css({position:'absolute',left:0,top:0}).appendTo(target).get(0);octx=overlay.getContext("2d");eventHolder=$([overlay,canvas]);if(options.selection.mode!=null||options.crosshair.mode!=null||options.grid.hoverable){eventHolder.each(function(){this.onmousemove=onMouseMove;});if(options.selection.mode!=null)
|
||||
eventHolder.mousedown(onMouseDown);}
|
||||
if(options.crosshair.mode!=null)
|
||||
eventHolder.mouseout(onMouseOut);if(options.grid.clickable)
|
||||
eventHolder.click(onClick);}
|
||||
function setupGrid(){function setupAxis(axis,options){setRange(axis,options);prepareTickGeneration(axis,options);setTicks(axis,options);if(axis==axes.xaxis||axis==axes.x2axis){axis.p2c=function(p){return(p-axis.min)*axis.scale;};axis.c2p=function(c){return axis.min+c/axis.scale;};}
|
||||
else{axis.p2c=function(p){return(axis.max-p)*axis.scale;};axis.c2p=function(p){return axis.max-p/axis.scale;};}}
|
||||
for(var axis in axes)
|
||||
setupAxis(axes[axis],options[axis]);setSpacing();insertLabels();insertLegend();}
|
||||
function setRange(axis,axisOptions){var min=axisOptions.min!=null?+axisOptions.min:axis.datamin,max=axisOptions.max!=null?+axisOptions.max:axis.datamax;if(min==Number.POSITIVE_INFINITY)
|
||||
min=0;if(max==Number.NEGATIVE_INFINITY)
|
||||
max=1;if(max-min==0.0){var widen=max==0?1:0.01;if(axisOptions.min==null)
|
||||
min-=widen;if(axisOptions.max==null||axisOptions.min!=null)
|
||||
max+=widen;}
|
||||
else{var margin=axisOptions.autoscaleMargin;if(margin!=null){if(axisOptions.min==null){min-=(max-min)*margin;if(min<0&&axis.datamin>=0)
|
||||
min=0;}
|
||||
if(axisOptions.max==null){max+=(max-min)*margin;if(max>0&&axis.datamax<=0)
|
||||
max=0;}}}
|
||||
axis.min=min;axis.max=max;}
|
||||
function prepareTickGeneration(axis,axisOptions){var noTicks;if(typeof axisOptions.ticks=="number"&&axisOptions.ticks>0)
|
||||
noTicks=axisOptions.ticks;else if(axis==axes.xaxis||axis==axes.x2axis)
|
||||
noTicks=canvasWidth/100;else
|
||||
noTicks=canvasHeight/60;var delta=(axis.max-axis.min)/noTicks;var size,generator,unit,formatter,i,magn,norm;if(axisOptions.mode=="time"){var timeUnitSize={"second":1000,"minute":60*1000,"hour":60*60*1000,"day":24*60*60*1000,"month":30*24*60*60*1000,"year":365.2425*24*60*60*1000};var spec=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var minSize=0;if(axisOptions.minTickSize!=null){if(typeof axisOptions.tickSize=="number")
|
||||
minSize=axisOptions.tickSize;else
|
||||
minSize=axisOptions.minTickSize[0]*timeUnitSize[axisOptions.minTickSize[1]];}
|
||||
for(i=0;i<spec.length-1;++i)
|
||||
if(delta<(spec[i][0]*timeUnitSize[spec[i][1]]
|
||||
+spec[i+1][0]*timeUnitSize[spec[i+1][1]])/2&&spec[i][0]*timeUnitSize[spec[i][1]]>=minSize)
|
||||
break;size=spec[i][0];unit=spec[i][1];if(unit=="year"){magn=Math.pow(10,Math.floor(Math.log(delta/timeUnitSize.year)/Math.LN10));norm=(delta/timeUnitSize.year)/magn;if(norm<1.5)
|
||||
size=1;else if(norm<3)
|
||||
size=2;else if(norm<7.5)
|
||||
size=5;else
|
||||
size=10;size*=magn;}
|
||||
if(axisOptions.tickSize){size=axisOptions.tickSize[0];unit=axisOptions.tickSize[1];}
|
||||
generator=function(axis){var ticks=[],tickSize=axis.tickSize[0],unit=axis.tickSize[1],d=new Date(axis.min);var step=tickSize*timeUnitSize[unit];if(unit=="second")
|
||||
d.setUTCSeconds(floorInBase(d.getUTCSeconds(),tickSize));if(unit=="minute")
|
||||
d.setUTCMinutes(floorInBase(d.getUTCMinutes(),tickSize));if(unit=="hour")
|
||||
d.setUTCHours(floorInBase(d.getUTCHours(),tickSize));if(unit=="month")
|
||||
d.setUTCMonth(floorInBase(d.getUTCMonth(),tickSize));if(unit=="year")
|
||||
d.setUTCFullYear(floorInBase(d.getUTCFullYear(),tickSize));d.setUTCMilliseconds(0);if(step>=timeUnitSize.minute)
|
||||
d.setUTCSeconds(0);if(step>=timeUnitSize.hour)
|
||||
d.setUTCMinutes(0);if(step>=timeUnitSize.day)
|
||||
d.setUTCHours(0);if(step>=timeUnitSize.day*4)
|
||||
d.setUTCDate(1);if(step>=timeUnitSize.year)
|
||||
d.setUTCMonth(0);var carry=0,v=Number.NaN,prev;do{prev=v;v=d.getTime();ticks.push({v:v,label:axis.tickFormatter(v,axis)});if(unit=="month"){if(tickSize<1){d.setUTCDate(1);var start=d.getTime();d.setUTCMonth(d.getUTCMonth()+1);var end=d.getTime();d.setTime(v+carry*timeUnitSize.hour+(end-start)*tickSize);carry=d.getUTCHours();d.setUTCHours(0);}
|
||||
else
|
||||
d.setUTCMonth(d.getUTCMonth()+tickSize);}
|
||||
else if(unit=="year"){d.setUTCFullYear(d.getUTCFullYear()+tickSize);}
|
||||
else
|
||||
d.setTime(v+step);}while(v<axis.max&&v!=prev);return ticks;};formatter=function(v,axis){var d=new Date(v);if(axisOptions.timeformat!=null)
|
||||
return $.plot.formatDate(d,axisOptions.timeformat,axisOptions.monthNames);var t=axis.tickSize[0]*timeUnitSize[axis.tickSize[1]];var span=axis.max-axis.min;if(t<timeUnitSize.minute)
|
||||
fmt="%h:%M:%S";else if(t<timeUnitSize.day){if(span<2*timeUnitSize.day)
|
||||
fmt="%h:%M";else
|
||||
fmt="%b %d %h:%M";}
|
||||
else if(t<timeUnitSize.month)
|
||||
fmt="%b %d";else if(t<timeUnitSize.year){if(span<timeUnitSize.year)
|
||||
fmt="%b";else
|
||||
fmt="%b %y";}
|
||||
else
|
||||
fmt="%y";return $.plot.formatDate(d,fmt,axisOptions.monthNames);};}
|
||||
else{var maxDec=axisOptions.tickDecimals;var dec=-Math.floor(Math.log(delta)/Math.LN10);if(maxDec!=null&&dec>maxDec)
|
||||
dec=maxDec;magn=Math.pow(10,-dec);norm=delta/magn;if(norm<1.5)
|
||||
size=1;else if(norm<3){size=2;if(norm>2.25&&(maxDec==null||dec+1<=maxDec)){size=2.5;++dec;}}
|
||||
else if(norm<7.5)
|
||||
size=5;else
|
||||
size=10;size*=magn;if(axisOptions.minTickSize!=null&&size<axisOptions.minTickSize)
|
||||
size=axisOptions.minTickSize;if(axisOptions.tickSize!=null)
|
||||
size=axisOptions.tickSize;axis.tickDecimals=Math.max(0,(maxDec!=null)?maxDec:dec);generator=function(axis){var ticks=[];var start=floorInBase(axis.min,axis.tickSize),i=0,v=Number.NaN,prev;do{prev=v;v=start+i*axis.tickSize;ticks.push({v:v,label:axis.tickFormatter(v,axis)});++i;}while(v<axis.max&&v!=prev);return ticks;};formatter=function(v,axis){return v.toFixed(axis.tickDecimals);};}
|
||||
axis.tickSize=unit?[size,unit]:size;axis.tickGenerator=generator;if($.isFunction(axisOptions.tickFormatter))
|
||||
axis.tickFormatter=function(v,axis){return""+axisOptions.tickFormatter(v,axis);};else
|
||||
axis.tickFormatter=formatter;if(axisOptions.labelWidth!=null)
|
||||
axis.labelWidth=axisOptions.labelWidth;if(axisOptions.labelHeight!=null)
|
||||
axis.labelHeight=axisOptions.labelHeight;}
|
||||
function setTicks(axis,axisOptions){axis.ticks=[];if(!axis.used)
|
||||
return;if(axisOptions.ticks==null)
|
||||
axis.ticks=axis.tickGenerator(axis);else if(typeof axisOptions.ticks=="number"){if(axisOptions.ticks>0)
|
||||
axis.ticks=axis.tickGenerator(axis);}
|
||||
else if(axisOptions.ticks){var ticks=axisOptions.ticks;if($.isFunction(ticks))
|
||||
ticks=ticks({min:axis.min,max:axis.max});var i,v;for(i=0;i<ticks.length;++i){var label=null;var t=ticks[i];if(typeof t=="object"){v=t[0];if(t.length>1)
|
||||
label=t[1];}
|
||||
else
|
||||
v=t;if(label==null)
|
||||
label=axis.tickFormatter(v,axis);axis.ticks[i]={v:v,label:label};}}
|
||||
if(axisOptions.autoscaleMargin!=null&&axis.ticks.length>0){if(axisOptions.min==null)
|
||||
axis.min=Math.min(axis.min,axis.ticks[0].v);if(axisOptions.max==null&&axis.ticks.length>1)
|
||||
axis.max=Math.min(axis.max,axis.ticks[axis.ticks.length-1].v);}}
|
||||
function setSpacing(){function measureXLabels(axis){if(axis.labelWidth==null)
|
||||
axis.labelWidth=canvasWidth/6;if(axis.labelHeight==null){labels=[];for(i=0;i<axis.ticks.length;++i){l=axis.ticks[i].label;if(l)
|
||||
labels.push('<div class="tickLabel" style="float:left;width:'+axis.labelWidth+'px">'+l+'</div>');}
|
||||
axis.labelHeight=0;if(labels.length>0){var dummyDiv=$('<div style="position:absolute;top:-10000px;width:10000px;font-size:smaller">'
|
||||
+labels.join("")+'<div style="clear:left"></div></div>').appendTo(target);axis.labelHeight=dummyDiv.height();dummyDiv.remove();}}}
|
||||
function measureYLabels(axis){if(axis.labelWidth==null||axis.labelHeight==null){var i,labels=[],l;for(i=0;i<axis.ticks.length;++i){l=axis.ticks[i].label;if(l)
|
||||
labels.push('<div class="tickLabel">'+l+'</div>');}
|
||||
if(labels.length>0){var dummyDiv=$('<div style="position:absolute;top:-10000px;font-size:smaller">'
|
||||
+labels.join("")+'</div>').appendTo(target);if(axis.labelWidth==null)
|
||||
axis.labelWidth=dummyDiv.width();if(axis.labelHeight==null)
|
||||
axis.labelHeight=dummyDiv.find("div").height();dummyDiv.remove();}
|
||||
if(axis.labelWidth==null)
|
||||
axis.labelWidth=0;if(axis.labelHeight==null)
|
||||
axis.labelHeight=0;}}
|
||||
measureXLabels(axes.xaxis);measureYLabels(axes.yaxis);measureXLabels(axes.x2axis);measureYLabels(axes.y2axis);var maxOutset=options.grid.borderWidth;for(i=0;i<series.length;++i)
|
||||
maxOutset=Math.max(maxOutset,2*(series[i].points.radius+series[i].points.lineWidth/2));plotOffset.left=plotOffset.right=plotOffset.top=plotOffset.bottom=maxOutset;var margin=options.grid.labelMargin+options.grid.borderWidth;if(axes.xaxis.labelHeight>0)
|
||||
plotOffset.bottom=Math.max(maxOutset,axes.xaxis.labelHeight+margin);if(axes.yaxis.labelWidth>0)
|
||||
plotOffset.left=Math.max(maxOutset,axes.yaxis.labelWidth+margin);if(axes.x2axis.labelHeight>0)
|
||||
plotOffset.top=Math.max(maxOutset,axes.x2axis.labelHeight+margin);if(axes.y2axis.labelWidth>0)
|
||||
plotOffset.right=Math.max(maxOutset,axes.y2axis.labelWidth+margin);plotWidth=canvasWidth-plotOffset.left-plotOffset.right;plotHeight=canvasHeight-plotOffset.bottom-plotOffset.top;axes.xaxis.scale=plotWidth/(axes.xaxis.max-axes.xaxis.min);axes.yaxis.scale=plotHeight/(axes.yaxis.max-axes.yaxis.min);axes.x2axis.scale=plotWidth/(axes.x2axis.max-axes.x2axis.min);axes.y2axis.scale=plotHeight/(axes.y2axis.max-axes.y2axis.min);}
|
||||
function draw(){drawGrid();for(var i=0;i<series.length;i++){drawSeries(series[i]);}}
|
||||
function extractRange(ranges,coord){var firstAxis=coord+"axis",secondaryAxis=coord+"2axis",axis,from,to,reverse;if(ranges[firstAxis]){axis=axes[firstAxis];from=ranges[firstAxis].from;to=ranges[firstAxis].to;}
|
||||
else if(ranges[secondaryAxis]){axis=axes[secondaryAxis];from=ranges[secondaryAxis].from;to=ranges[secondaryAxis].to;}
|
||||
else{axis=axes[firstAxis];from=ranges[coord+"1"];to=ranges[coord+"2"];}
|
||||
if(from!=null&&to!=null&&from>to)
|
||||
return{from:to,to:from,axis:axis};return{from:from,to:to,axis:axis};}
|
||||
function drawGrid(){var i;ctx.save();ctx.clearRect(0,0,canvasWidth,canvasHeight);ctx.translate(plotOffset.left,plotOffset.top);if(options.grid.backgroundColor){ctx.fillStyle=getColorOrGradient(options.grid.backgroundColor,plotHeight,0,"rgba(255, 255, 255, 0)");ctx.fillRect(0,0,plotWidth,plotHeight);}
|
||||
var markings=options.grid.markings;if(markings){if($.isFunction(markings))
|
||||
markings=markings({xmin:axes.xaxis.min,xmax:axes.xaxis.max,ymin:axes.yaxis.min,ymax:axes.yaxis.max,xaxis:axes.xaxis,yaxis:axes.yaxis,x2axis:axes.x2axis,y2axis:axes.y2axis});for(i=0;i<markings.length;++i){var m=markings[i],xrange=extractRange(m,"x"),yrange=extractRange(m,"y");if(xrange.from==null)
|
||||
xrange.from=xrange.axis.min;if(xrange.to==null)
|
||||
xrange.to=xrange.axis.max;if(yrange.from==null)
|
||||
yrange.from=yrange.axis.min;if(yrange.to==null)
|
||||
yrange.to=yrange.axis.max;if(xrange.to<xrange.axis.min||xrange.from>xrange.axis.max||yrange.to<yrange.axis.min||yrange.from>yrange.axis.max)
|
||||
continue;xrange.from=Math.max(xrange.from,xrange.axis.min);xrange.to=Math.min(xrange.to,xrange.axis.max);yrange.from=Math.max(yrange.from,yrange.axis.min);yrange.to=Math.min(yrange.to,yrange.axis.max);if(xrange.from==xrange.to&&yrange.from==yrange.to)
|
||||
continue;xrange.from=xrange.axis.p2c(xrange.from);xrange.to=xrange.axis.p2c(xrange.to);yrange.from=yrange.axis.p2c(yrange.from);yrange.to=yrange.axis.p2c(yrange.to);if(xrange.from==xrange.to||yrange.from==yrange.to){ctx.strokeStyle=m.color||options.grid.markingsColor;ctx.beginPath();ctx.lineWidth=m.lineWidth||options.grid.markingsLineWidth;ctx.moveTo(xrange.from,yrange.from);ctx.lineTo(xrange.to,yrange.to);ctx.stroke();}
|
||||
else{ctx.fillStyle=m.color||options.grid.markingsColor;ctx.fillRect(xrange.from,yrange.to,xrange.to-xrange.from,yrange.from-yrange.to);}}}
|
||||
ctx.lineWidth=1;ctx.strokeStyle=options.grid.tickColor;ctx.beginPath();var v,axis=axes.xaxis;for(i=0;i<axis.ticks.length;++i){v=axis.ticks[i].v;if(v<=axis.min||v>=axes.xaxis.max)
|
||||
continue;ctx.moveTo(Math.floor(axis.p2c(v))+ctx.lineWidth/2,0);ctx.lineTo(Math.floor(axis.p2c(v))+ctx.lineWidth/2,plotHeight);}
|
||||
axis=axes.yaxis;for(i=0;i<axis.ticks.length;++i){v=axis.ticks[i].v;if(v<=axis.min||v>=axis.max)
|
||||
continue;ctx.moveTo(0,Math.floor(axis.p2c(v))+ctx.lineWidth/2);ctx.lineTo(plotWidth,Math.floor(axis.p2c(v))+ctx.lineWidth/2);}
|
||||
axis=axes.x2axis;for(i=0;i<axis.ticks.length;++i){v=axis.ticks[i].v;if(v<=axis.min||v>=axis.max)
|
||||
continue;ctx.moveTo(Math.floor(axis.p2c(v))+ctx.lineWidth/2,-5);ctx.lineTo(Math.floor(axis.p2c(v))+ctx.lineWidth/2,5);}
|
||||
axis=axes.y2axis;for(i=0;i<axis.ticks.length;++i){v=axis.ticks[i].v;if(v<=axis.min||v>=axis.max)
|
||||
continue;ctx.moveTo(plotWidth-5,Math.floor(axis.p2c(v))+ctx.lineWidth/2);ctx.lineTo(plotWidth+5,Math.floor(axis.p2c(v))+ctx.lineWidth/2);}
|
||||
ctx.stroke();if(options.grid.borderWidth){var bw=options.grid.borderWidth;ctx.lineWidth=bw;ctx.strokeStyle=options.grid.borderColor;ctx.strokeRect(-bw/2,-bw/2,plotWidth+bw,plotHeight+bw);}
|
||||
ctx.restore();}
|
||||
function insertLabels(){target.find(".tickLabels").remove();var html='<div class="tickLabels" style="font-size:smaller;color:'+options.grid.color+'">';function addLabels(axis,labelGenerator){for(var i=0;i<axis.ticks.length;++i){var tick=axis.ticks[i];if(!tick.label||tick.v<axis.min||tick.v>axis.max)
|
||||
continue;html+=labelGenerator(tick,axis);}}
|
||||
var margin=options.grid.labelMargin+options.grid.borderWidth;addLabels(axes.xaxis,function(tick,axis){return'<div style="position:absolute;top:'+(plotOffset.top+plotHeight+margin)+'px;left:'+(plotOffset.left+axis.p2c(tick.v)-axis.labelWidth/2)+'px;width:'+axis.labelWidth+'px;text-align:center" class="tickLabel">'+tick.label+"</div>";});addLabels(axes.yaxis,function(tick,axis){return'<div style="position:absolute;top:'+(plotOffset.top+axis.p2c(tick.v)-axis.labelHeight/2)+'px;right:'+(plotOffset.right+plotWidth+margin)+'px;width:'+axis.labelWidth+'px;text-align:right" class="tickLabel">'+parseInt(tick.label)+"</div>";});addLabels(axes.x2axis,function(tick,axis){return'<div style="position:absolute;bottom:'+(plotOffset.bottom+plotHeight+margin)+'px;left:'+(plotOffset.left+axis.p2c(tick.v)-axis.labelWidth/2)+'px;width:'+axis.labelWidth+'px;text-align:center" class="tickLabel">'+tick.label+"</div>";});addLabels(axes.y2axis,function(tick,axis){return'<div style="position:absolute;top:'+(plotOffset.top+axis.p2c(tick.v)-axis.labelHeight/2)+'px;left:'+(plotOffset.left+plotWidth+margin)+'px;width:'+axis.labelWidth+'px;text-align:left" class="tickLabel">'+tick.label+"</div>";});html+='</div>';target.append(html);}
|
||||
function drawSeries(series){if(series.lines.show)
|
||||
drawSeriesLines(series);if(series.bars.show)
|
||||
drawSeriesBars(series);if(series.points.show)
|
||||
drawSeriesPoints(series);}
|
||||
function drawSeriesLines(series){function plotLine(datapoints,offset,axisx,axisy){var points=datapoints.points,incr=datapoints.incr,drawx=null,drawy=null;ctx.beginPath();for(var i=incr;i<points.length;i+=incr){var x1=points[i-incr],y1=points[i-incr+1],x2=points[i],y2=points[i+1];if(x1==null||x2==null)
|
||||
continue;if(y1<=y2&&y1<axisy.min){if(y2<axisy.min)
|
||||
continue;x1=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.min;}
|
||||
else if(y2<=y1&&y2<axisy.min){if(y1<axisy.min)
|
||||
continue;x2=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.min;}
|
||||
if(y1>=y2&&y1>axisy.max){if(y2>axisy.max)
|
||||
continue;x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max;}
|
||||
else if(y2>=y1&&y2>axisy.max){if(y1>axisy.max)
|
||||
continue;x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max;}
|
||||
if(x1<=x2&&x1<axisx.min){if(x2<axisx.min)
|
||||
continue;y1=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.min;}
|
||||
else if(x2<=x1&&x2<axisx.min){if(x1<axisx.min)
|
||||
continue;y2=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.min;}
|
||||
if(x1>=x2&&x1>axisx.max){if(x2>axisx.max)
|
||||
continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max;}
|
||||
else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)
|
||||
continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max;}
|
||||
if(drawx!=axisx.p2c(x1)||drawy!=axisy.p2c(y1)+offset)
|
||||
ctx.moveTo(axisx.p2c(x1),axisy.p2c(y1)+offset);drawx=axisx.p2c(x2);drawy=axisy.p2c(y2)+offset;ctx.lineTo(drawx,drawy);}
|
||||
ctx.stroke();}
|
||||
function plotLineArea(datapoints,axisx,axisy){var points=datapoints.points,incr=datapoints.incr,bottom=Math.min(Math.max(0,axisy.min),axisy.max),top,lastX=0,areaOpen=false;for(var i=incr;i<points.length;i+=incr){var x1=points[i-incr],y1=points[i-incr+1],x2=points[i],y2=points[i+1];if(areaOpen&&x1!=null&&x2==null){ctx.lineTo(axisx.p2c(lastX),axisy.p2c(bottom));ctx.fill();areaOpen=false;continue;}
|
||||
if(x1==null||x2==null)
|
||||
continue;if(x1<=x2&&x1<axisx.min){if(x2<axisx.min)
|
||||
continue;y1=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.min;}
|
||||
else if(x2<=x1&&x2<axisx.min){if(x1<axisx.min)
|
||||
continue;y2=(axisx.min-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.min;}
|
||||
if(x1>=x2&&x1>axisx.max){if(x2>axisx.max)
|
||||
continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max;}
|
||||
else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)
|
||||
continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max;}
|
||||
if(!areaOpen){ctx.beginPath();ctx.moveTo(axisx.p2c(x1),axisy.p2c(bottom));areaOpen=true;}
|
||||
if(y1>=axisy.max&&y2>=axisy.max){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.max));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.max));lastX=x2;continue;}
|
||||
else if(y1<=axisy.min&&y2<=axisy.min){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.min));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.min));lastX=x2;continue;}
|
||||
var x1old=x1,x2old=x2;if(y1<=y2&&y1<axisy.min&&y2>=axisy.min){x1=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.min;}
|
||||
else if(y2<=y1&&y2<axisy.min&&y1>=axisy.min){x2=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.min;}
|
||||
if(y1>=y2&&y1>axisy.max&&y2<=axisy.max){x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max;}
|
||||
else if(y2>=y1&&y2>axisy.max&&y1<=axisy.max){x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max;}
|
||||
if(x1!=x1old){if(y1<=axisy.min)
|
||||
top=axisy.min;else
|
||||
top=axisy.max;ctx.lineTo(axisx.p2c(x1old),axisy.p2c(top));ctx.lineTo(axisx.p2c(x1),axisy.p2c(top));}
|
||||
ctx.lineTo(axisx.p2c(x1),axisy.p2c(y1));ctx.lineTo(axisx.p2c(x2),axisy.p2c(y2));if(x2!=x2old){if(y2<=axisy.min)
|
||||
top=axisy.min;else
|
||||
top=axisy.max;ctx.lineTo(axisx.p2c(x2),axisy.p2c(top));ctx.lineTo(axisx.p2c(x2old),axisy.p2c(top));}
|
||||
lastX=Math.max(x2,x2old);}
|
||||
if(areaOpen){ctx.lineTo(axisx.p2c(lastX),axisy.p2c(bottom));ctx.fill();}}
|
||||
ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineJoin="round";var lw=series.lines.lineWidth,sw=series.shadowSize;if(lw>0&&sw>0){var w=sw/2;ctx.lineWidth=w;ctx.strokeStyle="rgba(0,0,0,0.1)";plotLine(series.datapoints,lw/2+w+w/2,series.xaxis,series.yaxis);ctx.strokeStyle="rgba(0,0,0,0.2)";plotLine(series.datapoints,lw/2+w/2,series.xaxis,series.yaxis);}
|
||||
ctx.lineWidth=lw;ctx.strokeStyle=series.color;var fillStyle=getFillStyle(series.lines,series.color,0,plotHeight);if(fillStyle){ctx.fillStyle=fillStyle;plotLineArea(series.datapoints,series.xaxis,series.yaxis);}
|
||||
if(lw>0)
|
||||
plotLine(series.datapoints,0,series.xaxis,series.yaxis);ctx.restore();}
|
||||
function drawSeriesPoints(series){function plotPoints(datapoints,radius,fillStyle,offset,circumference,axisx,axisy){var points=datapoints.points,incr=datapoints.incr;for(var i=0;i<points.length;i+=incr){var x=points[i],y=points[i+1];if(x==null||x<axisx.min||x>axisx.max||y<axisy.min||y>axisy.max)
|
||||
continue;ctx.beginPath();ctx.arc(axisx.p2c(x),axisy.p2c(y)+offset,radius,0,circumference,true);if(fillStyle){ctx.fillStyle=fillStyle;ctx.fill();}
|
||||
ctx.stroke();}}
|
||||
ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var lw=series.lines.lineWidth,sw=series.shadowSize,radius=series.points.radius;if(lw>0&&sw>0){var w=sw/2;ctx.lineWidth=w;ctx.strokeStyle="rgba(0,0,0,0.1)";plotPoints(series.datapoints,radius,null,w+w/2,2*Math.PI,series.xaxis,series.yaxis);ctx.strokeStyle="rgba(0,0,0,0.2)";plotPoints(series.datapoints,radius,null,w/2,2*Math.PI,series.xaxis,series.yaxis);}
|
||||
ctx.lineWidth=lw;ctx.strokeStyle=series.color;plotPoints(series.datapoints,radius,getFillStyle(series.points,series.color),0,2*Math.PI,series.xaxis,series.yaxis);ctx.restore();}
|
||||
function drawBar(x,y,barLeft,barRight,offset,fillStyleCallback,axisx,axisy,c){var drawLeft=true,drawRight=true,drawTop=true,drawBottom=false,left=x+barLeft,right=x+barRight,bottom=0,top=y;if(top<bottom){top=0;bottom=y;drawBottom=true;drawTop=false;}
|
||||
if(right<axisx.min||left>axisx.max||top<axisy.min||bottom>axisy.max)
|
||||
return;if(left<axisx.min){left=axisx.min;drawLeft=false;}
|
||||
if(right>axisx.max){right=axisx.max;drawRight=false;}
|
||||
if(bottom<axisy.min){bottom=axisy.min;drawBottom=false;}
|
||||
if(top>axisy.max){top=axisy.max;drawTop=false;}
|
||||
left=axisx.p2c(left);bottom=axisy.p2c(bottom);right=axisx.p2c(right);top=axisy.p2c(top);if(fillStyleCallback){c.beginPath();c.moveTo(left,bottom);c.lineTo(left,top);c.lineTo(right,top);c.lineTo(right,bottom);c.fillStyle=fillStyleCallback(bottom,top);c.fill();}
|
||||
if(drawLeft||drawRight||drawTop||drawBottom){c.beginPath();c.moveTo(left,bottom+offset);if(drawLeft)
|
||||
c.lineTo(left,top+offset);else
|
||||
c.moveTo(left,top+offset);if(drawTop)
|
||||
c.lineTo(right,top+offset);else
|
||||
c.moveTo(right,top+offset);if(drawRight)
|
||||
c.lineTo(right,bottom+offset);else
|
||||
c.moveTo(right,bottom+offset);if(drawBottom)
|
||||
c.lineTo(left,bottom+offset);else
|
||||
c.moveTo(left,bottom+offset);c.stroke();}}
|
||||
function drawSeriesBars(series){function plotBars(datapoints,barLeft,barRight,offset,fillStyleCallback,axisx,axisy){var points=datapoints.points,incr=datapoints.incr;for(var i=0;i<points.length;i+=incr){if(points[i]==null)
|
||||
continue;drawBar(points[i],points[i+1],barLeft,barRight,offset,fillStyleCallback,axisx,axisy,ctx);}}
|
||||
ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineJoin="round";ctx.lineWidth=series.bars.lineWidth;ctx.strokeStyle=series.color;var barLeft=series.bars.align=="left"?0:-series.bars.barWidth/2;var fillStyleCallback=series.bars.fill?function(bottom,top){return getFillStyle(series.bars,series.color,bottom,top);}:null;plotBars(series.datapoints,barLeft,barLeft+series.bars.barWidth,0,fillStyleCallback,series.xaxis,series.yaxis);ctx.restore();}
|
||||
function getFillStyle(filloptions,seriesColor,bottom,top){var fill=filloptions.fill;if(!fill)
|
||||
return null;if(filloptions.fillColor)
|
||||
return getColorOrGradient(filloptions.fillColor,bottom,top,seriesColor);var c=parseColor(seriesColor);c.a=typeof fill=="number"?fill:0.4;c.normalize();return c.toString();}
|
||||
function insertLegend(){target.find(".legend").remove();if(!options.legend.show)
|
||||
return;var fragments=[];var rowStarted=false;for(i=0;i<series.length;++i){if(!series[i].label)
|
||||
continue;if(i%options.legend.noColumns==0){if(rowStarted)
|
||||
fragments.push('</tr>');fragments.push('<tr>');rowStarted=true;}
|
||||
var label=series[i].label;if(options.legend.labelFormatter!=null)
|
||||
label=options.legend.labelFormatter(label);fragments.push('<td class="legendColorBox"><div style="border:1px solid '+options.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+series[i].color+';overflow:hidden"></div></div></td>'+'<td class="legendLabel">'+label+'</td>');}
|
||||
if(rowStarted)
|
||||
fragments.push('</tr>');if(fragments.length==0)
|
||||
return;var table='<table style="font-size:smaller;color:'+options.grid.color+'">'+fragments.join("")+'</table>';if(options.legend.container!=null)
|
||||
$(options.legend.container).html(table);else{var pos="",p=options.legend.position,m=options.legend.margin;if(m[0]==null)
|
||||
m=[m,m];if(p.charAt(0)=="n")
|
||||
pos+='top:'+(m[1]+plotOffset.top)+'px;';else if(p.charAt(0)=="s")
|
||||
pos+='bottom:'+(m[1]+plotOffset.bottom)+'px;';if(p.charAt(1)=="e")
|
||||
pos+='right:'+(m[0]+plotOffset.right)+'px;';else if(p.charAt(1)=="w")
|
||||
pos+='left:'+(m[0]+plotOffset.left)+'px;';var legend=$('<div class="legend">'+table.replace('style="','style="position:absolute;'+pos+';')+'</div>').appendTo(target);if(options.legend.backgroundOpacity!=0.0){var c=options.legend.backgroundColor;if(c==null){var tmp;if(options.grid.backgroundColor&&typeof options.grid.backgroundColor=="string")
|
||||
tmp=options.grid.backgroundColor;else
|
||||
tmp=extractColor(legend);c=parseColor(tmp).adjust(null,null,null,1).toString();}
|
||||
var div=legend.children();$('<div style="position:absolute;width:'+div.width()+'px;height:'+div.height()+'px;'+pos+'background-color:'+c+';"> </div>').prependTo(legend).css('opacity',options.legend.backgroundOpacity);}}}
|
||||
var lastMousePos={pageX:null,pageY:null},selection={first:{x:-1,y:-1},second:{x:-1,y:-1},show:false,active:false},crosshair={pos:{x:-1,y:-1}},highlights=[],clickIsMouseUp=false,redrawTimeout=null,hoverTimeout=null;function findNearbyItem(mouseX,mouseY,seriesFilter){var maxDistance=options.grid.mouseActiveRadius,lowestDistance=maxDistance*maxDistance+1,item=null,foundPoint=false,i,j;for(var i=0;i<series.length;++i){if(!seriesFilter(series[i]))
|
||||
continue;var s=series[i],points=s.datapoints.points,incr=s.datapoints.incr,axisx=s.xaxis,axisy=s.yaxis,mx=axisx.c2p(mouseX),my=axisy.c2p(mouseY),maxx=maxDistance/axisx.scale,maxy=maxDistance/axisy.scale,checkbar=s.bars.show,checkpoint=!s.bars.show||s.lines.show||s.points.show,barLeft=s.bars.align=="left"?0:-s.bars.barWidth/2,barRight=barLeft+s.bars.barWidth;for(j=0;j<points.length;j+=incr){var x=points[j],y=points[j+1];if(x==null)
|
||||
continue;if(checkbar){if(!foundPoint&&mx>=x+barLeft&&mx<=x+barRight&&my>=Math.min(0,y)&&my<=Math.max(0,y))
|
||||
item=[i,j/incr];}
|
||||
if(checkpoint){if((x-mx>maxx||x-mx<-maxx)||(y-my>maxy||y-my<-maxy))
|
||||
continue;var dx=Math.abs(axisx.p2c(x)-mouseX),dy=Math.abs(axisy.p2c(y)-mouseY),dist=dx*dx+dy*dy;if(dist<lowestDistance){lowestDistance=dist;foundPoint=true;item=[i,j/incr];}}}}
|
||||
if(item){i=item[0];j=item[1];return{datapoint:series[i].data[j],dataIndex:j,series:series[i],seriesIndex:i}}
|
||||
return null;}
|
||||
function onMouseMove(ev){var e=ev||window.event;if(e.pageX==null&&e.clientX!=null){var de=document.documentElement,b=document.body;lastMousePos.pageX=e.clientX+(de&&de.scrollLeft||b.scrollLeft||0)-(de.clientLeft||0);lastMousePos.pageY=e.clientY+(de&&de.scrollTop||b.scrollTop||0)-(de.clientTop||0);}
|
||||
else{lastMousePos.pageX=e.pageX;lastMousePos.pageY=e.pageY;}
|
||||
if(options.grid.hoverable)
|
||||
triggerClickHoverEvent("plothover",lastMousePos,function(s){return s["hoverable"]!=false;});if(options.crosshair.mode!=null){if(!selection.active){setPositionFromEvent(crosshair.pos,lastMousePos);triggerRedrawOverlay();}
|
||||
else
|
||||
crosshair.pos.x=-1;}
|
||||
if(selection.active){target.trigger("plotselecting",[selectionIsSane()?getSelectionForEvent():null]);updateSelection(lastMousePos);}}
|
||||
function onMouseDown(e){if(e.which!=1)
|
||||
return;document.body.focus();if(document.onselectstart!==undefined&&workarounds.onselectstart==null){workarounds.onselectstart=document.onselectstart;document.onselectstart=function(){return false;};}
|
||||
if(document.ondrag!==undefined&&workarounds.ondrag==null){workarounds.ondrag=document.ondrag;document.ondrag=function(){return false;};}
|
||||
setSelectionPos(selection.first,e);lastMousePos.pageX=null;selection.active=true;$(document).one("mouseup",onSelectionMouseUp);}
|
||||
function onMouseOut(ev){if(options.crosshair.mode!=null&&crosshair.pos.x!=-1){crosshair.pos.x=-1;triggerRedrawOverlay();}}
|
||||
function onClick(e){if(clickIsMouseUp){clickIsMouseUp=false;return;}
|
||||
triggerClickHoverEvent("plotclick",e,function(s){return s["clickable"]!=false;});}
|
||||
function triggerClickHoverEvent(eventname,event,seriesFilter){var offset=eventHolder.offset(),pos={pageX:event.pageX,pageY:event.pageY},canvasX=event.pageX-offset.left-plotOffset.left,canvasY=event.pageY-offset.top-plotOffset.top;if(axes.xaxis.used)
|
||||
pos.x=axes.xaxis.c2p(canvasX);if(axes.yaxis.used)
|
||||
pos.y=axes.yaxis.c2p(canvasY);if(axes.x2axis.used)
|
||||
pos.x2=axes.x2axis.c2p(canvasX);if(axes.y2axis.used)
|
||||
pos.y2=axes.y2axis.c2p(canvasY);var item=findNearbyItem(canvasX,canvasY,seriesFilter);if(item){item.pageX=parseInt(item.series.xaxis.p2c(item.datapoint[0])+offset.left+plotOffset.left);item.pageY=parseInt(item.series.yaxis.p2c(item.datapoint[1])+offset.top+plotOffset.top);}
|
||||
if(options.grid.autoHighlight){for(var i=0;i<highlights.length;++i){var h=highlights[i];if(h.auto==eventname&&!(item&&h.series==item.series&&h.point==item.datapoint))
|
||||
unhighlight(h.series,h.point);}
|
||||
if(item)
|
||||
highlight(item.series,item.datapoint,eventname);}
|
||||
target.trigger(eventname,[pos,item]);}
|
||||
function triggerRedrawOverlay(){if(!redrawTimeout)
|
||||
redrawTimeout=setTimeout(redrawOverlay,30);}
|
||||
function redrawOverlay(){redrawTimeout=null;octx.save();octx.clearRect(0,0,canvasWidth,canvasHeight);octx.translate(plotOffset.left,plotOffset.top);var i,hi;for(i=0;i<highlights.length;++i){hi=highlights[i];if(hi.series.bars.show)
|
||||
drawBarHighlight(hi.series,hi.point);else
|
||||
drawPointHighlight(hi.series,hi.point);}
|
||||
if(selection.show&&selectionIsSane()){octx.strokeStyle=parseColor(options.selection.color).scale(null,null,null,0.8).toString();octx.lineWidth=1;ctx.lineJoin="round";octx.fillStyle=parseColor(options.selection.color).scale(null,null,null,0.4).toString();var x=Math.min(selection.first.x,selection.second.x),y=Math.min(selection.first.y,selection.second.y),w=Math.abs(selection.second.x-selection.first.x),h=Math.abs(selection.second.y-selection.first.y);octx.fillRect(x,y,w,h);octx.strokeRect(x,y,w,h);}
|
||||
if(options.crosshair.mode!=null&&crosshair.pos.x!=-1){octx.strokeStyle=parseColor(options.crosshair.color).scale(null,null,null,0.8).toString();octx.lineWidth=1;ctx.lineJoin="round";var pos=crosshair.pos;octx.beginPath();if(options.crosshair.mode.indexOf("x")!=-1){octx.moveTo(pos.x,0);octx.lineTo(pos.x,plotHeight);}
|
||||
if(options.crosshair.mode.indexOf("y")!=-1){octx.moveTo(0,pos.y);octx.lineTo(plotWidth,pos.y);}
|
||||
octx.stroke();}
|
||||
octx.restore();}
|
||||
function highlight(s,point,auto){if(typeof s=="number")
|
||||
s=series[s];if(typeof point=="number")
|
||||
point=s.data[point];var i=indexOfHighlight(s,point);if(i==-1){highlights.push({series:s,point:point,auto:auto});triggerRedrawOverlay();}
|
||||
else if(!auto)
|
||||
highlights[i].auto=false;}
|
||||
function unhighlight(s,point){if(typeof s=="number")
|
||||
s=series[s];if(typeof point=="number")
|
||||
point=s.data[point];var i=indexOfHighlight(s,point);if(i!=-1){highlights.splice(i,1);triggerRedrawOverlay();}}
|
||||
function indexOfHighlight(s,p){for(var i=0;i<highlights.length;++i){var h=highlights[i];if(h.series==s&&h.point[0]==p[0]&&h.point[1]==p[1])
|
||||
return i;}
|
||||
return-1;}
|
||||
function drawPointHighlight(series,point){var x=point[0],y=point[1],axisx=series.xaxis,axisy=series.yaxis;if(x<axisx.min||x>axisx.max||y<axisy.min||y>axisy.max)
|
||||
return;var pointRadius=series.points.radius+series.points.lineWidth/2;octx.lineWidth=pointRadius;octx.strokeStyle=parseColor(series.color).scale(1,1,1,0.5).toString();var radius=1.5*pointRadius;octx.beginPath();octx.arc(axisx.p2c(x),axisy.p2c(y),radius,0,2*Math.PI,true);octx.stroke();}
|
||||
function drawBarHighlight(series,point){octx.lineJoin="round";octx.lineWidth=series.bars.lineWidth;octx.strokeStyle=parseColor(series.color).scale(1,1,1,0.5).toString();var fillStyle=parseColor(series.color).scale(1,1,1,0.5).toString();var barLeft=series.bars.align=="left"?0:-series.bars.barWidth/2;drawBar(point[0],point[1],barLeft,barLeft+series.bars.barWidth,0,function(){return fillStyle;},series.xaxis,series.yaxis,octx);}
|
||||
function setPositionFromEvent(pos,e){var offset=eventHolder.offset();pos.x=clamp(0,e.pageX-offset.left-plotOffset.left,plotWidth);pos.y=clamp(0,e.pageY-offset.top-plotOffset.top,plotHeight);}
|
||||
function setCrosshair(pos){if(pos==null)
|
||||
crosshair.pos.x=-1;else{crosshair.pos.x=clamp(0,pos.x!=null?axes.xaxis.p2c(pos.x):axes.x2axis.p2c(pos.x2),plotWidth);crosshair.pos.y=clamp(0,pos.y!=null?axes.yaxis.p2c(pos.y):axes.y2axis.p2c(pos.y2),plotHeight);}
|
||||
triggerRedrawOverlay();}
|
||||
function getSelectionForEvent(){var x1=Math.min(selection.first.x,selection.second.x),x2=Math.max(selection.first.x,selection.second.x),y1=Math.max(selection.first.y,selection.second.y),y2=Math.min(selection.first.y,selection.second.y);var r={};if(axes.xaxis.used)
|
||||
r.xaxis={from:axes.xaxis.c2p(x1),to:axes.xaxis.c2p(x2)};if(axes.x2axis.used)
|
||||
r.x2axis={from:axes.x2axis.c2p(x1),to:axes.x2axis.c2p(x2)};if(axes.yaxis.used)
|
||||
r.yaxis={from:axes.yaxis.c2p(y1),to:axes.yaxis.c2p(y2)};if(axes.y2axis.used)
|
||||
r.y2axis={from:axes.y2axis.c2p(y1),to:axes.y2axis.c2p(y2)};return r;}
|
||||
function triggerSelectedEvent(){var r=getSelectionForEvent();target.trigger("plotselected",[r]);if(axes.xaxis.used&&axes.yaxis.used)
|
||||
target.trigger("selected",[{x1:r.xaxis.from,y1:r.yaxis.from,x2:r.xaxis.to,y2:r.yaxis.to}]);}
|
||||
function onSelectionMouseUp(e){if(document.onselectstart!==undefined)
|
||||
document.onselectstart=workarounds.onselectstart;if(document.ondrag!==undefined)
|
||||
document.ondrag=workarounds.ondrag;selection.active=false;updateSelection(e);if(selectionIsSane()){triggerSelectedEvent();clickIsMouseUp=true;}
|
||||
else{target.trigger("plotunselected",[]);target.trigger("plotselecting",[null]);}
|
||||
return false;}
|
||||
function setSelectionPos(pos,e){setPositionFromEvent(pos,e);if(options.selection.mode=="y"){if(pos==selection.first)
|
||||
pos.x=0;else
|
||||
pos.x=plotWidth;}
|
||||
if(options.selection.mode=="x"){if(pos==selection.first)
|
||||
pos.y=0;else
|
||||
pos.y=plotHeight;}}
|
||||
function updateSelection(pos){if(pos.pageX==null)
|
||||
return;setSelectionPos(selection.second,pos);if(selectionIsSane()){selection.show=true;triggerRedrawOverlay();}
|
||||
else
|
||||
clearSelection(true);}
|
||||
function clearSelection(preventEvent){if(selection.show){selection.show=false;triggerRedrawOverlay();if(!preventEvent)
|
||||
target.trigger("plotunselected",[]);}}
|
||||
function setSelection(ranges,preventEvent){var range;if(options.selection.mode=="y"){selection.first.x=0;selection.second.x=plotWidth;}
|
||||
else{range=extractRange(ranges,"x");selection.first.x=range.axis.p2c(range.from);selection.second.x=range.axis.p2c(range.to);}
|
||||
if(options.selection.mode=="x"){selection.first.y=0;selection.second.y=plotHeight;}
|
||||
else{range=extractRange(ranges,"y");selection.first.y=range.axis.p2c(range.from);selection.second.y=range.axis.p2c(range.to);}
|
||||
selection.show=true;triggerRedrawOverlay();if(!preventEvent)
|
||||
triggerSelectedEvent();}
|
||||
function selectionIsSane(){var minSize=5;return Math.abs(selection.second.x-selection.first.x)>=minSize&&Math.abs(selection.second.y-selection.first.y)>=minSize;}
|
||||
function getColorOrGradient(spec,bottom,top,defaultColor){if(typeof spec=="string")
|
||||
return spec;else{var gradient=ctx.createLinearGradient(0,top,0,bottom);for(var i=0,l=spec.colors.length;i<l;++i){var c=spec.colors[i];gradient.addColorStop(i/(l-1),typeof c=="string"?c:parseColor(defaultColor).scale(c.brightness,c.brightness,c.brightness,c.opacity));}
|
||||
return gradient;}}}
|
||||
$.plot=function(target,data,options){var plot=new Plot(target,data,options);return plot;};$.plot.formatDate=function(d,fmt,monthNames){var leftPad=function(n){n=""+n;return n.length==1?"0"+n:n;};var r=[];var escape=false;if(monthNames==null)
|
||||
monthNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];for(var i=0;i<fmt.length;++i){var c=fmt.charAt(i);if(escape){switch(c){case'h':c=""+d.getUTCHours();break;case'H':c=leftPad(d.getUTCHours());break;case'M':c=leftPad(d.getUTCMinutes());break;case'S':c=leftPad(d.getUTCSeconds());break;case'd':c=""+d.getUTCDate();break;case'm':c=""+(d.getUTCMonth()+1);break;case'y':c=""+d.getUTCFullYear();break;case'b':c=""+monthNames[d.getUTCMonth()];break;}
|
||||
r.push(c);escape=false;}
|
||||
else{if(c=="%")
|
||||
escape=true;else
|
||||
r.push(c);}}
|
||||
return r.join("");};function floorInBase(n,base){return base*Math.floor(n/base);}
|
||||
function clamp(min,value,max){if(value<min)
|
||||
return min;else if(value>max)
|
||||
return max;else
|
||||
return value;}
|
||||
function Color(r,g,b,a){var rgba=['r','g','b','a'];var x=4;while(-1<--x){this[rgba[x]]=arguments[x]||((x==3)?1.0:0);}
|
||||
this.toString=function(){if(this.a>=1.0){return"rgb("+[this.r,this.g,this.b].join(",")+")";}else{return"rgba("+[this.r,this.g,this.b,this.a].join(",")+")";}};this.scale=function(rf,gf,bf,af){x=4;while(-1<--x){if(arguments[x]!=null)
|
||||
this[rgba[x]]*=arguments[x];}
|
||||
return this.normalize();};this.adjust=function(rd,gd,bd,ad){x=4;while(-1<--x){if(arguments[x]!=null)
|
||||
this[rgba[x]]+=arguments[x];}
|
||||
return this.normalize();};this.clone=function(){return new Color(this.r,this.b,this.g,this.a);};var limit=function(val,minVal,maxVal){return Math.max(Math.min(val,maxVal),minVal);};this.normalize=function(){this.r=clamp(0,parseInt(this.r),255);this.g=clamp(0,parseInt(this.g),255);this.b=clamp(0,parseInt(this.b),255);this.a=clamp(0,this.a,1);return this;};this.normalize();}
|
||||
var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]};function extractColor(element){var color,elem=element;do{color=elem.css("background-color").toLowerCase();if(color!=''&&color!='transparent')
|
||||
break;elem=elem.parent();}while(!$.nodeName(elem.get(0),"body"));if(color=="rgba(0, 0, 0, 0)")
|
||||
return"transparent";return color;}
|
||||
function parseColor(str){var result;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))
|
||||
return new Color(parseInt(result[1],10),parseInt(result[2],10),parseInt(result[3],10));if(result=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
|
||||
return new Color(parseInt(result[1],10),parseInt(result[2],10),parseInt(result[3],10),parseFloat(result[4]));if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))
|
||||
return new Color(parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55);if(result=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
|
||||
return new Color(parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55,parseFloat(result[4]));if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))
|
||||
return new Color(parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16));if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))
|
||||
return new Color(parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")
|
||||
return new Color(255,255,255,0);else{result=lookupColors[name];return new Color(result[0],result[1],result[2]);}}})(jQuery);
|
Before Width: | Height: | Size: 254 B |
Before Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 314 B |
Before Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 550 B |
Before Width: | Height: | Size: 571 B |
Before Width: | Height: | Size: 583 B |
Before Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 147 B |
Before Width: | Height: | Size: 451 B |
Before Width: | Height: | Size: 492 B |
Before Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 490 B |
@ -1,371 +0,0 @@
|
||||
|
||||
Opus-tools, with the exception of opusinfo.[ch] is available under
|
||||
the following two clause BSD-style license:
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
||||
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
Opusinfo is a fork of ogginfo from the vorbis-tools package
|
||||
(http://www.xiph.org). It is available under the GPL:
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
@ -1,34 +0,0 @@
|
||||
== Opus Audio Tools ==
|
||||
|
||||
This is opus-tools, a set of tools to encode, inspect, and decode
|
||||
audio in the Opus format.
|
||||
|
||||
For more information on Opus see http://www.opus-codec.org/
|
||||
|
||||
There is basic documentation in the HTML files included in this archive.
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
These Win32 opus-tools binaries were cross-compiled with mingw from:
|
||||
|
||||
http://downloads.xiph.org/releases/opus/opus-tools-0.1.7.tar.gz
|
||||
corrsponding to https://git.xiph.org/?p=opus-tools.git
|
||||
commit: 7afc14217cf6a408829bd94a3372b69c3b08344b
|
||||
tag: v0.1.7
|
||||
|
||||
opus 1.1 pre-release
|
||||
corresponding to https://git.xiph.org/?p=opus.git
|
||||
commit: 02fed471a4568852d6618e041c4f2af0d7730ee2
|
||||
|
||||
http://downloads.xiph.org/releases/flac/flac-1.3.0.tar.xz
|
||||
http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.xz
|
||||
|
||||
You can verify the files with:
|
||||
sha256sum -c SHA256SUMS.txt
|
||||
gpg --verify SHA256SUMS.txt.asc
|
||||
|
||||
These tools are available as part of cygwin: http://www.cygwin.com/
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Please send any comments/bug reports on these tools
|
||||
by email to Ralph Giles <giles@mozilla.com> and
|
||||
Greg Maxwell <greg@xiph.org>.
|
BIN
CrystalDiskInfo7_6_1/CdiResource/opus/opusdec.exe
(Stored with Git LFS)
@ -1,7 +0,0 @@
|
||||
FlatSquare - Crystal Disk Info Theme
|
||||
|
||||
Designed by RejZoR
|
||||
https://rejzor.wordpress.com
|
||||
rejzor[at]gmail.com
|
||||
|
||||
It's flat and square. It's FlatSquare :)
|
Before Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 143 B |
Before Width: | Height: | Size: 180 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 143 B |
Before Width: | Height: | Size: 180 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 145 B |
Before Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 268 B |
Before Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 145 B |
Before Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 268 B |
Before Width: | Height: | Size: 87 B |
Before Width: | Height: | Size: 89 B |
Before Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 97 B |
Before Width: | Height: | Size: 99 B |
Before Width: | Height: | Size: 101 B |
Before Width: | Height: | Size: 87 B |
Before Width: | Height: | Size: 89 B |
Before Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 97 B |
Before Width: | Height: | Size: 99 B |
Before Width: | Height: | Size: 101 B |
Before Width: | Height: | Size: 87 B |
Before Width: | Height: | Size: 89 B |