Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
Icecast-Server
Commits
7a519ab7
Commit
7a519ab7
authored
Aug 25, 2002
by
Michael Smith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
icecast2/win32 updates from oddsock.
svn path=/trunk/icecast/; revision=3878
parent
07de3c2d
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
339 additions
and
159 deletions
+339
-159
win32/Icecast2win.clw
win32/Icecast2win.clw
+18
-10
win32/Icecast2win.cpp
win32/Icecast2win.cpp
+2
-0
win32/Icecast2win.dsp
win32/Icecast2win.dsp
+8
-4
win32/Icecast2win.rc
win32/Icecast2win.rc
+13
-3
win32/Icecast2winDlg.cpp
win32/Icecast2winDlg.cpp
+271
-135
win32/Icecast2winDlg.h
win32/Icecast2winDlg.h
+10
-1
win32/StdAfx.h
win32/StdAfx.h
+1
-1
win32/icecast.dsp
win32/icecast.dsp
+9
-1
win32/icecast2.iss
win32/icecast2.iss
+1
-1
win32/resource.h
win32/resource.h
+6
-3
No files found.
win32/Icecast2win.clw
View file @
7a519ab7
...
...
@@ -12,18 +12,19 @@ Class1=CIcecast2winApp
Class2=CIcecast2winDlg
Class3=CAboutDlg
ResourceCount=
8
Resource1=ID
D_ABOUTBOX
ResourceCount=
9
Resource1=ID
R_MENU3
Resource2=IDR_MAINFRAME
Resource3=IDD_
ICECAST2WIN_DIALOG
Resource3=IDD_
ABOUTBOX
Resource4=IDD_STATSDIALOG
Class4=CStatus
Resource5=ID
D_CONFIGDIALOG
Resource5=ID
R_MENU2
Class5=CConfigTab
Class6=CStatsTab
Resource6=IDD_SSTATUS
Resource7=IDR_MENU2
Resource8=IDR_MENU3
Resource7=IDD_CONFIGDIALOG
Resource8=IDD_ICECAST2WIN_DIALOG
Resource9=IDR_TRAY
[CLS:CIcecast2winApp]
Type=0
...
...
@@ -35,8 +36,8 @@ Filter=N
Type=0
HeaderFile=Icecast2winDlg.h
ImplementationFile=Icecast2winDlg.cpp
Filter=
D
LastObject=ID
__MAKETHISSTATTHEWINDOWTITLE
Filter=
C
LastObject=ID
C_HIDESYSTRAY
BaseClass=CResizableDialog
VirtualFilter=dWC
...
...
@@ -57,14 +58,15 @@ Control3=IDOK,button,1342373889
[DLG:IDD_ICECAST2WIN_DIALOG]
Type=1
Class=CIcecast2winDlg
ControlCount=
7
ControlCount=
8
Control1=IDC_MAINTAB,SysTabControl32,1342177280
Control2=IDC_START,button,1342242816
Control3=IDC_AUTOSTART,button,1342251011
Control4=IDC_STATIC,static,1342177294
Control5=IDC_SERVERSTATUS,static,1342177294
Control6=IDC_STATIC_SS,static,1342308
354
Control6=IDC_STATIC_SS,static,1342308
865
Control7=IDC_STATICBLACK,static,1342177294
Control8=IDC_HIDESYSTRAY,button,1342242816
[DLG:IDD_SSTATUS]
Type=1
...
...
@@ -132,3 +134,9 @@ Command1=ID__DELETEFROMGLOBALSTATS
Command2=ID__MAKETHISSTATTHEWINDOWTITLE
CommandCount=2
[MNU:IDR_TRAY]
Type=1
Class=CIcecast2winDlg
Command1=ID_BLANK_RESTORE
CommandCount=1
win32/Icecast2win.cpp
View file @
7a519ab7
...
...
@@ -69,6 +69,8 @@ BOOL CIcecast2winApp::InitInstance()
// SetDialogBkColor(BGCOLOR,TEXTCOLOR);
m_pIconList
[
0
]
=
LoadIcon
(
MAKEINTRESOURCE
(
IDR_MAINFRAME
));
int
nResponse
=
dlg
.
DoModal
();
if
(
nResponse
==
IDOK
)
{
...
...
win32/Icecast2win.dsp
View file @
7a519ab7
...
...
@@ -145,6 +145,14 @@ SOURCE=.\TabPageSSL.cpp
SOURCE=.\TabPageSSL.h
# End Source File
# Begin Source File
SOURCE=.\Traynot.cpp
# End Source File
# Begin Source File
SOURCE=.\TRAYNOT.H
# End Source File
# End Group
# Begin Group "Header Files"
...
...
@@ -223,10 +231,6 @@ SOURCE=.\res\Icecast2.ico
# End Source File
# Begin Source File
SOURCE=.\icecast2logo.bmp
# End Source File
# Begin Source File
SOURCE=.\icecast2logo2.bmp
# End Source File
# Begin Source File
...
...
win32/Icecast2win.rc
View file @
7a519ab7
...
...
@@ -79,7 +79,7 @@ STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "icecast2"
FONT 8, "MS Sans Serif"
, 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "Tab1",IDC_MAINTAB,"SysTabControl32",0x0,0,48,318,201
PUSHBUTTON "Start Server",IDC_START,17,31,56,14
...
...
@@ -87,10 +87,12 @@ BEGIN
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,76,
29,81,17
CONTROL 159,IDC_STATIC,"Static",SS_BITMAP,0,0,117,20
CONTROL 151,IDC_SERVERSTATUS,"Static",SS_BITMAP,
253,28
,65,18,
CONTROL 151,IDC_SERVERSTATUS,"Static",SS_BITMAP,
173,32
,65,18,
WS_EX_CLIENTEDGE
RTEXT "Server Status",IDC_STATIC_SS,163,28,86,14
CTEXT "Server Status",IDC_STATIC_SS,172,23,65,10,
SS_CENTERIMAGE
CONTROL 150,IDC_STATICBLACK,"Static",SS_BITMAP,116,0,200,20
PUSHBUTTON "Hide To Systray",IDC_HIDESYSTRAY,257,22,58,12
END
IDD_SSTATUS DIALOG DISCARDABLE 0, 0, 320, 210
...
...
@@ -233,6 +235,14 @@ BEGIN
END
END
IDR_TRAY MENU DISCARDABLE
BEGIN
POPUP "Blank"
BEGIN
MENUITEM "Restore", ID_BLANK_RESTORE
END
END
/////////////////////////////////////////////////////////////////////////////
//
...
...
win32/Icecast2winDlg.cpp
View file @
7a519ab7
...
...
@@ -42,6 +42,9 @@ bool g_tailError = false;
void
CollectStats
(
stats_event_t
*
event
);
CString
gConfigurationSave
;
char
gTitleSource
[
1024
]
=
""
;
char
gTitleName
[
1024
]
=
""
;
#define MAXSTATSPERSOURCE 30
#define MAXSOURCES 1024
...
...
@@ -64,6 +67,7 @@ typedef struct tagMainElement {
CString
source
;
long
numStats
;
Element
stats
[
MAXSTATSPERSOURCE
];
int
populated
;
}
MainElement
;
typedef
struct
tagMainElementAdditional
{
...
...
@@ -82,6 +86,7 @@ extern "C" {
int
main
(
int
argc
,
char
**
argv
);
}
void
AddToAdditionalGlobalStats
(
CString
source
,
CString
name
)
{
int
foundit
=
0
;
for
(
int
i
=
0
;
i
<
gAdditionalGlobalStats
.
numStats
;
i
++
)
{
...
...
@@ -218,6 +223,7 @@ CIcecast2winDlg::CIcecast2winDlg(CWnd* pParent /*=NULL*/)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon
=
AfxGetApp
()
->
LoadIcon
(
IDR_MAINFRAME
);
m_pTray
=
NULL
;
}
void
CIcecast2winDlg
::
DoDataExchange
(
CDataExchange
*
pDX
)
...
...
@@ -245,6 +251,10 @@ BEGIN_MESSAGE_MAP(CIcecast2winDlg, CResizableDialog)
ON_BN_CLICKED
(
IDC_START
,
OnStart
)
ON_WM_CLOSE
()
ON_WM_SIZE
()
ON_BN_CLICKED
(
IDC_HIDESYSTRAY
,
OnHidesystray
)
ON_COMMAND
(
ID_BLANK_RESTORE
,
OnBlankRestore
)
ON_MESSAGE
(
WM_TRAY_NOTIFY
,
OnTrayNotify
)
ON_WM_DESTROY
()
//}}AFX_MSG_MAP
END_MESSAGE_MAP
()
...
...
@@ -314,7 +324,7 @@ BOOL CIcecast2winDlg::OnInitDialog()
runningBitmap
.
LoadBitmap
(
IDB_BITMAP6
);
stoppedBitmap
.
LoadBitmap
(
IDB_BITMAP5
);
m_SS
.
SetFont
(
&
labelFont
,
TRUE
);
//
m_SS.SetFont(&labelFont, TRUE);
UpdateData
(
FALSE
);
...
...
@@ -530,6 +540,7 @@ void CIcecast2winDlg::OnFileExit()
{
// TODO: Add your command handler code here
DestroyWindow
();
}
...
...
@@ -615,16 +626,13 @@ void CollectStats(stats_event_t *event)
}
int
foundit
=
0
;
for
(
int
i
=
0
;
i
<
numMainStats
;
i
++
)
{
if
(
!
strcmp
(
gStats
[
i
].
source
,
tempSource
))
{
int
foundit2
=
0
;
gStats
[
i
].
populated
=
1
;
for
(
int
j
=
0
;
j
<
gStats
[
i
].
numStats
;
j
++
)
{
// if (!strcmp(gStats[i].stats[j].name, tempElement.name)) {
// strcpy(gStats[i].stats[j].value, tempElement.value);
if
(
gStats
[
i
].
stats
[
j
].
name
==
tempElement
.
name
)
{
//strcpy(gStats[i].stats[j].value, tempElement.value);
gStats
[
i
].
stats
[
j
].
value
=
tempElement
.
value
;
foundit2
=
1
;
...
...
@@ -642,14 +650,34 @@ void CollectStats(stats_event_t *event)
if
(
!
foundit
)
{
// strcpy(gStats[numMainStats].source, tempSource);
if
(
strlen
(
tempSource
)
==
0
)
{
strcpy
(
tempSource
,
"Global Stat"
);
}
gStats
[
numMainStats
].
source
=
tempSource
;
gStats
[
numMainStats
].
stats
[
0
].
name
=
tempElement
.
name
;
gStats
[
numMainStats
].
stats
[
0
].
value
=
tempElement
.
value
;
gStats
[
numMainStats
].
populated
=
1
;
// memcpy(&gStats[numMainStats].stats[0], &tempElement, sizeof(tempElement));
gStats
[
numMainStats
].
numStats
++
;
numMainStats
++
;
}
// Process source disconnects
if
(
event
->
name
!=
NULL
)
{
if
(
!
strcmp
(
event
->
name
,
"listeners"
))
{
if
(
event
->
value
==
NULL
)
{
// source has disconnected...
for
(
int
i
=
0
;
i
<
numMainStats
;
i
++
)
{
if
(
!
strcmp
(
gStats
[
i
].
source
,
tempSource
))
{
gStats
[
i
].
populated
=
0
;
g_mainDialog
->
statsTab
.
m_SourceListCtrl
.
DeleteAllItems
();
g_mainDialog
->
statsTab
.
m_StatsListCtrl
.
DeleteAllItems
();
break
;
}
}
}
}
}
g_mainDialog
->
UpdateStatsLists
();
}
...
...
@@ -834,167 +862,172 @@ void CIcecast2winDlg::UpdateStatsLists()
for
(
int
i
=
0
;
i
<
numMainStats
;
i
++
)
{
int
inthere
=
0
;
int
k
=
0
;
for
(
l
=
0
;
l
<
gAdditionalGlobalStats
.
numStats
;
l
++
)
{
for
(
int
m
=
0
;
m
<
gStats
[
i
].
numStats
;
m
++
)
{
if
((
gAdditionalGlobalStats
.
stats
[
l
].
source
==
gStats
[
i
].
source
)
&&
(
gAdditionalGlobalStats
.
stats
[
l
].
name
==
gStats
[
i
].
stats
[
m
].
name
))
{
gAdditionalGlobalStats
.
stats
[
l
].
value
=
gStats
[
i
].
stats
[
m
].
value
;
break
;
if
(
gStats
[
i
].
populated
)
{
for
(
l
=
0
;
l
<
gAdditionalGlobalStats
.
numStats
;
l
++
)
{
for
(
int
m
=
0
;
m
<
gStats
[
i
].
numStats
;
m
++
)
{
if
((
gAdditionalGlobalStats
.
stats
[
l
].
source
==
gStats
[
i
].
source
)
&&
(
gAdditionalGlobalStats
.
stats
[
l
].
name
==
gStats
[
i
].
stats
[
m
].
name
))
{
gAdditionalGlobalStats
.
stats
[
l
].
value
=
gStats
[
i
].
stats
[
m
].
value
;
break
;
}
}
}
}
if
(
strlen
(
gStats
[
i
].
source
)
>
0
)
{
for
(
k
=
0
;
k
<
statsTab
.
m_SourceListCtrl
.
GetItemCount
();
k
++
)
{
if
(
strcmp
(
gStats
[
i
].
source
,
"Global Stat"
))
{
// If Not Global STat
for
(
k
=
0
;
k
<
statsTab
.
m_SourceListCtrl
.
GetItemCount
();
k
++
)
{
statsTab
.
m_SourceListCtrl
.
GetItemText
(
k
,
0
,
item
,
sizeof
(
item
));
if
(
!
strcmp
(
gStats
[
i
].
source
,
item
))
{
inthere
=
1
;
break
;
statsTab
.
m_SourceListCtrl
.
GetItemText
(
k
,
0
,
item
,
sizeof
(
item
));
if
(
!
strcmp
(
gStats
[
i
].
source
,
item
))
{
inthere
=
1
;
break
;
}
}
}
if
(
!
inthere
)
{
if
(
gStats
[
i
].
source
!=
""
)
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_IMAGE
|
LVIF_TEXT
;
lvi
.
iItem
=
statsTab
.
m_SourceListCtrl
.
GetItemCount
()
;
lvi
.
iSubItem
=
0
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
source
;
statsTab
.
m_SourceListCtrl
.
InsertItem
(
&
lvi
);
if
(
!
inthere
)
{
if
(
gStats
[
i
].
source
!=
""
)
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_IMAGE
|
LVIF_TEXT
;
lvi
.
iItem
=
statsTab
.
m_SourceListCtrl
.
GetItemCount
()
;
lvi
.
i
Sub
Item
=
0
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
source
;
statsTab
.
m_SourceListCtrl
.
InsertItem
(
&
lvi
)
;
}
}
}
int
nItemSelected
=
statsTab
.
m_SourceListCtrl
.
GetSelectionMark
();
if
(
nItemSelected
!=
-
1
)
{
memset
(
item
,
'\000'
,
sizeof
(
item
));
statsTab
.
m_SourceListCtrl
.
GetItemText
(
nItemSelected
,
0
,
item
,
sizeof
(
item
));
if
(
!
strcmp
(
gStats
[
i
].
source
,
item
))
{
for
(
int
l
=
0
;
l
<
gStats
[
i
].
numStats
;
l
++
)
{
int
inthere2
=
0
;
char
item2
[
1024
]
=
""
;
for
(
int
m
=
0
;
m
<
statsTab
.
m_StatsListCtrl
.
GetItemCount
();
m
++
)
{
statsTab
.
m_StatsListCtrl
.
GetItemText
(
m
,
0
,
item2
,
sizeof
(
item2
));
if
(
!
strcmp
(
gStats
[
i
].
stats
[
l
].
name
,
item2
))
{
int
nItemSelected
=
statsTab
.
m_SourceListCtrl
.
GetSelectionMark
();
if
(
nItemSelected
!=
-
1
)
{
memset
(
item
,
'\000'
,
sizeof
(
item
));
statsTab
.
m_SourceListCtrl
.
GetItemText
(
nItemSelected
,
0
,
item
,
sizeof
(
item
));
if
(
!
strcmp
(
gStats
[
i
].
source
,
item
))
{
for
(
int
l
=
0
;
l
<
gStats
[
i
].
numStats
;
l
++
)
{
int
inthere2
=
0
;
char
item2
[
1024
]
=
""
;
for
(
int
m
=
0
;
m
<
statsTab
.
m_StatsListCtrl
.
GetItemCount
();
m
++
)
{
statsTab
.
m_StatsListCtrl
.
GetItemText
(
m
,
0
,
item2
,
sizeof
(
item2
));
if
(
!
strcmp
(
gStats
[
i
].
stats
[
l
].
name
,
item2
))
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_TEXT
;
lvi
.
iItem
=
m
;
lvi
.
iSubItem
=
1
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
l
].
value
;
statsTab
.
m_StatsListCtrl
.
SetItem
(
&
lvi
);
inthere2
=
1
;
break
;
}
}
if
(
!
inthere2
)
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_TEXT
;
lvi
.
iItem
=
m
;
lvi
.
iItem
=
statsTab
.
m_StatsListCtrl
.
GetItemCount
();
lvi
.
iSubItem
=
0
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
l
].
name
;
statsTab
.
m_StatsListCtrl
.
InsertItem
(
&
lvi
);
lvi
.
iSubItem
=
1
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
l
].
value
;
statsTab
.
m_StatsListCtrl
.
SetItem
(
&
lvi
);
inthere2
=
1
;
break
;
}
}
if
(
!
inthere2
)
{
}
}
for
(
l
=
0
;
l
<
gAdditionalGlobalStats
.
numStats
;
l
++
)
{
int
inthere2
=
0
;
char
item2
[
1024
]
=
""
;
char
item3
[
1024
]
=
""
;
CString
itemSource
;
CString
itemName
;
for
(
int
m
=
0
;
m
<
statusTab
.
m_GlobalStatList
.
GetItemCount
();
m
++
)
{
statusTab
.
m_GlobalStatList
.
GetItemText
(
m
,
0
,
item2
,
sizeof
(
item2
));
statusTab
.
m_GlobalStatList
.
GetItemText
(
m
,
1
,
item3
,
sizeof
(
item3
));
itemSource
=
item2
;
itemName
=
item3
;
if
((
gAdditionalGlobalStats
.
stats
[
l
].
source
==
itemSource
)
&&
(
gAdditionalGlobalStats
.
stats
[
l
].
name
==
itemName
))
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_TEXT
;
lvi
.
iItem
=
statsTab
.
m_StatsListCtrl
.
GetItemCount
();
lvi
.
iSubItem
=
0
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
l
].
name
;
statsTab
.
m_StatsListCtrl
.
InsertItem
(
&
lvi
);
lvi
.
iSubItem
=
1
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
l
].
value
;
statsTab
.
m_StatsListCtrl
.
SetItem
(
&
lvi
);
lvi
.
iItem
=
m
;
lvi
.
iSubItem
=
2
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gAdditionalGlobalStats
.
stats
[
l
].
value
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
inthere2
=
1
;
break
;
}
}
}
}
for
(
l
=
0
;
l
<
gAdditionalGlobalStats
.
numStats
;
l
++
)
{
int
inthere2
=
0
;
char
item2
[
1024
]
=
""
;
char
item3
[
1024
]
=
""
;
CString
itemSource
;
CString
itemName
;
for
(
int
m
=
0
;
m
<
statusTab
.
m_GlobalStatList
.
GetItemCount
();
m
++
)
{
statusTab
.
m_GlobalStatList
.
GetItemText
(
m
,
0
,
item2
,
sizeof
(
item2
));
statusTab
.
m_GlobalStatList
.
GetItemText
(
m
,
1
,
item3
,
sizeof
(
item3
));
itemSource
=
item2
;
itemName
=
item3
;
if
((
gAdditionalGlobalStats
.
stats
[
l
].
source
==
itemSource
)
&&
(
gAdditionalGlobalStats
.
stats
[
l
].
name
==
itemName
))
{
if
(
!
inthere2
)
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_TEXT
;
lvi
.
iItem
=
m
;
lvi
.
iItem
=
statusTab
.
m_GlobalStatList
.
GetItemCount
();
lvi
.
iSubItem
=
0
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gAdditionalGlobalStats
.
stats
[
l
].
source
;
statusTab
.
m_GlobalStatList
.
InsertItem
(
&
lvi
);
lvi
.
iSubItem
=
1
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gAdditionalGlobalStats
.
stats
[
l
].
name
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
lvi
.
iSubItem
=
2
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gAdditionalGlobalStats
.
stats
[
l
].
value
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
inthere2
=
1
;
break
;
}
}
if
(
!
inthere2
)
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_TEXT
;
lvi
.
iItem
=
statusTab
.
m_GlobalStatList
.
GetItemCount
();
lvi
.
iSubItem
=
0
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gAdditionalGlobalStats
.
stats
[
l
].
source
;
statusTab
.
m_GlobalStatList
.
InsertItem
(
&
lvi
);
lvi
.
iSubItem
=
1
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gAdditionalGlobalStats
.
stats
[
l
].
name
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
lvi
.
iSubItem
=
2
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gAdditionalGlobalStats
.
stats
[
l
].
value
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
if
((
!
strcmp
(
gAdditionalGlobalStats
.
stats
[
l
].
source
,
gTitleSource
))
&&
(
!
strcmp
(
gAdditionalGlobalStats
.
stats
[
l
].
name
,
gTitleName
)))
{
gAdditionalGlobalStats
.
stats
[
l
].
titleFlag
=
1
;
}
if
(
gAdditionalGlobalStats
.
stats
[
l
].
titleFlag
)
{
CString
windowTitle
=
gAdditionalGlobalStats
.
stats
[
l
].
source
+
" - "
+
gAdditionalGlobalStats
.
stats
[
l
].
name
+
" - "
+
gAdditionalGlobalStats
.
stats
[
l
].
value
;
SetWindowText
(
windowTitle
);
}
}
}
}
else
{
for
(
k
=
0
;
k
<
gStats
[
i
].
numStats
;
k
++
)
{
inthere
=
0
;
for
(
l
=
0
;
l
<
statusTab
.
m_GlobalStatList
.
GetItemCount
();
l
++
)
{
else
{
// If Global Stat
for
(
k
=
0
;
k
<
gStats
[
i
].
numStats
;
k
++
)
{
inthere
=
0
;
for
(
l
=
0
;
l
<
statusTab
.
m_GlobalStatList
.
GetItemCount
();
l
++
)
{
statusTab
.
m_GlobalStatList
.
GetItemText
(
l
,
1
,
item
,
sizeof
(
item
));
if
(
!
strcmp
(
gStats
[
i
].
stats
[
k
].
name
,
item
))
{
inthere
=
1
;
break
;
}
}
if
(
!
inthere
)
{
LVITEM
lvi
;
statusTab
.
m_GlobalStatList
.
GetItemText
(
l
,
1
,
item
,
sizeof
(
item
));
if
(
!
strcmp
(
gStats
[
i
].
stats
[
k
].
name
,
item
))
{
inthere
=
1
;
break
;
lvi
.
mask
=
LVIF_IMAGE
|
LVIF_TEXT
;
lvi
.
iItem
=
statsTab
.
m_SourceListCtrl
.
GetItemCount
();
lvi
.
iSubItem
=
0
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
source
;
statusTab
.
m_GlobalStatList
.
InsertItem
(
&
lvi
);
lvi
.
iSubItem
=
1
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
k
].
name
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
lvi
.
iSubItem
=
2
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
k
].
value
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
}
}
if
(
!
inthere
)
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_IMAGE
|
LVIF_TEXT
;
lvi
.
iItem
=
statsTab
.
m_SourceListCtrl
.
GetItemCount
();
lvi
.
iSubItem
=
0
;
lvi
.
pszText
=
"Global Stat"
;
statusTab
.
m_GlobalStatList
.
InsertItem
(
&
lvi
);
lvi
.
iSubItem
=
1
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
k
].
name
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
lvi
.
iSubItem
=
2
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
k
].
value
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
}
else
{
LVITEM
lvi
;
else
{
LVITEM
lvi
;
lvi
.
mask
=
LVIF_IMAGE
|
LVIF_TEXT
;
lvi
.
iItem
=
l
;
lvi
.
iSubItem
=
2
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
k
].
value
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
lvi
.
mask
=
LVIF_IMAGE
|
LVIF_TEXT
;
lvi
.
iItem
=
l
;
lvi
.
iSubItem
=
2
;
lvi
.
pszText
=
(
LPTSTR
)(
LPCTSTR
)
gStats
[
i
].
stats
[
k
].
value
;
statusTab
.
m_GlobalStatList
.
SetItem
(
&
lvi
);
}
if
((
!
strcmp
(
gStats
[
i
].
source
,
gTitleSource
))
&&
(
!
strcmp
(
gStats
[
i
].
stats
[
k
].
name
,
gTitleName
)))
{
gStats
[
i
].
stats
[
k
].
titleFlag
=
1
;
}
if
(
gStats
[
i
].
stats
[
k
].
titleFlag
)
{
CString
windowTitle
=
gStats
[
i
].
source
+
" - "
+
gStats
[
i
].
stats
[
k
].
name
+
" - "
+
gStats
[
i
].
stats
[
k
].
value
;
SetWindowText
(
windowTitle
);
}
}
}
}
}
for
(
l
=
0
;
l
<
gAdditionalGlobalStats
.
numStats
;
l
++
)
{
if
(
gAdditionalGlobalStats
.
stats
[
l
].
titleFlag
)
{
CString
windowTitle
=
gAdditionalGlobalStats
.
stats
[
l
].
source
+
" - "
+
gAdditionalGlobalStats
.
stats
[
l
].
name
+
" - "
+
gAdditionalGlobalStats
.
stats
[
l
].
value
;
SetWindowText
(
windowTitle
);
}
}
for
(
l
=
0
;
l
<
numMainStats
;
l
++
)
{
for
(
int
k
=
0
;
k
<
gStats
[
i
].
numStats
;
k
++
)
{
if
(
gStats
[
i
].
stats
[
k
].
titleFlag
)
{
CString
windowTitle
=
gStats
[
i
].
source
+
" - "
+
gStats
[
i
].
stats
[
l
].
name
+
" - "
+
gAdditionalGlobalStats
.
stats
[
l
].
value
;
SetWindowText
(
windowTitle
);
}
}
}
}
char
gAppName
[
255
]
=
"icecast2"
;
...
...
@@ -1047,14 +1080,27 @@ void CIcecast2winDlg::config_write()
sprintf
(
buf2
,
"AdditionalStatsName%d"
,
i
);
WritePrivateProfileString
(
gAppName
,
buf2
,
gAdditionalGlobalStats
.
stats
[
i
].
name
,
gConfigFile
);
gAdditionalGlobalStats
.
stats
[
i
].
name
=
buf
;
if
(
gAdditionalGlobalStats
.
stats
[
i
].
titleFlag
)
{
sprintf
(
buf2
,
"%s|%s"
,
gAdditionalGlobalStats
.
stats
[
i
].
source
,
gAdditionalGlobalStats
.
stats
[
i
].
name
);
WritePrivateProfileString
(
gAppName
,
"TitleName"
,
buf2
,
gConfigFile
);
}
}
for
(
i
=
0
;
i
<
numMainStats
;
i
++
)
{
for
(
int
k
=
0
;
k
<
gStats
[
i
].
numStats
;
k
++
)
{
if
(
gStats
[
i
].
stats
[
k
].
titleFlag
)
{
sprintf
(
buf2
,
"%s|%s"
,
gStats
[
i
].
source
,
gStats
[
i
].
stats
[
k
].
name
);
WritePrivateProfileString
(
gAppName
,
"TitleName"
,
buf2
,
gConfigFile
);
}
}
}
}
void
CIcecast2winDlg
::
config_read
()
{
char
buf2
[
255
]
=
""
;
char
buf
[
255
]
=
""
;
char
buf2
[
1024
]
=
""
;
char
buf
[
1024
]
=
""
;
CString
tempString
;
m_colSource0Width
=
GetPrivateProfileInt
(
gAppName
,
"col0SourceWidth"
,
150
,
gConfigFile
);
...
...
@@ -1084,6 +1130,28 @@ void CIcecast2winDlg::config_read()
gAdditionalGlobalStats
.
stats
[
i
].
name
=
buf
;
gAdditionalGlobalStats
.
numStats
++
;
}
GetPrivateProfileString
(
gAppName
,
"TitleName"
,
""
,
buf
,
sizeof
(
buf
),
gConfigFile
);
/*
if (strlen(buf) > 0) {
char *p1 = strchr(buf, '|');
if (p1) {
char tmpSource[1024] = "";
char tmpName[1024] = "";
memset(tmpSource, '\000', sizeof(tmpSource));
memset(tmpName, '\000', sizeof(tmpName));
strncpy(tmpSource, buf, p1-buf);
p1++;
strcpy(tmpName, p1);
strcpy(gTitleSource, tmpSource);
strcpy(gTitleName, tmpName);
}
}
*/
}
...
...
@@ -1111,8 +1179,76 @@ void CIcecast2winDlg::OnSize(UINT nType, int cx, int cy)
}