-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRenderFinished.dsa
128 lines (107 loc) · 3.82 KB
/
RenderFinished.dsa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// DAZ Studio version 4.5.1.6 filetype DAZ Script
// Released under GPLv2
var programName = "RenderFinished";
var versionName = "0.01";
var appName = "esemwy_RenderFinished";
var info = DzFileInfo(getScriptFileName());
var sFileName = getSetting("audioFile", "");
var sExecName = getSetting("growlNotify", "")
var nPlatform = App.platform();
var renderFinishedScript = info.path()+"/RenderFinishedScript.dsa";
//set dialog
var wDlg = new DzDialog;
wDlg.caption = programName + " " + versionName;
var gb = new DzVGroupBox( wDlg );
var gbExec = new DzVGroupBox( gb );
gbExec.columns = 3;
var wLblExec = new DzLabel( gbExec );
wLblExec.text = "growlnotify Location:";
var wEdExec = new DzLineEdit( gbExec );
wEdExec.text = sExecName;
wEdExec.readOnly = true;
var wBrowseBtn = addButtonToGB( gbExec, "Browse ...", BrowseExec );
var gbBrowse = new DzVGroupBox( gb );
gbBrowse.columns = 3;
var wLblDest = new DzLabel( gbBrowse );
wLblDest.text = "Audio File:";
var wEdDest = new DzLineEdit( gbBrowse );
wEdDest.text = sFileName;
wEdDest.readOnly = true;
var wBrowseBtn = addButtonToGB( gbBrowse, "Browse ...", BrowseFile );
var gbNotifyOpts = new DzVGroupBox( gb );
gbNotifyOpts.columns = 2;
var wCkGrowl = new DzCheckBox( gbNotifyOpts );
wCkGrowl.text = "Growl Notify";
wCkGrowl.checked = DzAppSettings(appName).getBoolValue("doGrowl");
connect(wCkGrowl, "toggled(bool)", function(on) {
DzAppSettings(appName).setBoolValue("doGrowl", on);
} );
var wCkAudio = new DzCheckBox( gbNotifyOpts );
wCkAudio.text = "Audio Notify";
wCkAudio.checked = DzAppSettings(appName).getBoolValue("doAudio");
connect(wCkAudio, "toggled(bool)", function(on) {
DzAppSettings(appName).setBoolValue("doAudio", on);
} );
var gbButtons = new DzVGroupBox( gb );
gbButtons.columns = 2;
var wOkBtn = addButtonToGB( gbButtons, "OK", createRenderCallBack );
wDlg.setAcceptButton(wOkBtn);
var wCancelBtn = new DzPushButton( gbButtons );
wCancelBtn.text = "&Cancel";
wDlg.setRejectButton( wCancelBtn );
wDlg.minWidth = 350;
wDlg.minHeight = 225;
wDlg.exec();
function createRenderCallBack()
{
var cbm = App.getCallBackMgr();
var oRenderMgr = App.getRenderMgr();
cbm.deleteCallBack('com.smy.renderstarted');
cbm.deleteCallBack('com.smy.renderfinished');
if (DzAppSettings(appName).getBoolValue("doGrowl") || DzAppSettings(appName).getBoolValue("doAudio")) {
var sStartCmd = 'DzAppSettings("'+appName+'").setFloatValue("timerStarted", Date.now());';
var scb = cbm.createCallBack('com.smy.renderstarted', sStartCmd, true);
scb.setConnection(oRenderMgr, 'renderStarting()');
var fcb = cbm.createCallBack('com.smy.renderfinished', renderFinishedScript, false);
fcb.setConnection(oRenderMgr, 'renderFinished(bool)');
}
}
function addButtonToGB( gb, text, func )
{
var wButton = new DzPushButton( gb );
wButton.text = text;
connect( wButton, "clicked()", func );
return( wButton );
}
function BrowseFile()
{
var path = FileDialog.doAudioClipOpenDialog( wEdDest.text, wDlg );
if( path ) {
wEdDest.text = path;
saveSetting("audioFile", path);
}
}
function BrowseExec()
{
var path;
if (nPlatform == App.Windows ) {
var dir = FileDialog.doDirectoryDialog( "Locate growlnotify directory", "", "C:/" );
path = "%1/%2".arg( dir ).arg( "growlnotify.exe" );
}
else if ( nPlatform == App.MacOSX ) {
var dir = FileDialog.doDirectoryDialog( "Locate growlnotify directory", "", "/usr/local/bin" );
path = "%1/%2".arg( dir ).arg( "growlnotify" );
}
if( path && DzFileInfo(path).exists() ) {
wEdExec.text = path;
saveSetting("growlNotify", path);
}
}
function saveSetting( key, keyVal )
{
DzAppSettings(appName).setStringValue( key, keyVal );
}
function getSetting( key, defVal )
{
return DzAppSettings(appName).getStringValue( key, defVal );
}