Beta v0.9.7 Windows x86 Phase 15 Complete • VS2022 v143

Mcaster1CastIt

A Windows broadcast streaming control panel and real-time statistics monitor for Shoutcast, Icecast2, SteamCast, and Mcaster1DNAS streaming servers. Originally built as CastIt (~2005) for CasterClub by Dave St. John with mentorship from Ed Zalesky (EdcastDSP / Oddsock). Revived and modernized in 2026 as part of the Mcaster1 open-source internet radio platform.

4
Server Types
15
Phases Complete
v0.9.7
Current Version
5
DB Tables
30+
HTML Template Tags

What Mcaster1CastIt Does

Mcaster1CastIt polls Shoutcast, Icecast2, SteamCast, and Mcaster1DNAS streaming servers in real time and displays live statistics in a resizable native Windows application. It logs all stats to a MariaDB/MySQL database, generates HTML status pages using a configurable template substitution engine, and can upload those pages to a web host via FTP or SFTP.

CasterClub is credited as the original creator of CastIt. This is a Mcaster1 reimagining — new identity, modern toolchain (VS2022 v143, vcpkg), expanded roadmap, and full rebranding from CastIt to Mcaster1CastIt.

3-Column Server List

Clean main window showing Server URL / Station Name / Current Song for all registered servers. Resizable with full maximize support (WS_THICKFRAME + ResizableLib anchors).

Monitor Tabs (Right-Click)

Right-click any server row and select Monitor Server to open a dedicated live-stats tab for that mount. Column schema varies by server type. Tabs persist across app restarts via mcaster1castit.ini.

Monitor Detail Dialog

Double-click any row in a Monitor Tab to open a full-detail popup with an embedded WebBrowser (IE11/Trident) rendering a dark-theme HTML5/CSS3 stats card. Fully resizable. Open-in-Browser button.

MariaDB Stats Logging

Logs all polled statistics to a MariaDB/MySQL database (5-table schema). Tables created automatically via the Configuration dialog. Configurable song history retention period.

HTML Template Generation

Generates HTML status pages via a configurable template substitution engine with 30+ tag tokens (listeners, current song, bitrate, stream URL, etc.). HTML5/CSS3 dark-theme templates included.

FTP & SFTP Upload

Uploads generated HTML pages to a web host via FTP (libcurl) or SFTP with SSH key authentication (libssh2). Optional HTTP callback on stat updates. Configurable upload interval.

Add Server Wizard

Step-by-step wizard for adding or editing streaming server entries. Handles credentials for all server types, URL encoding for DNAS auth, and SFTP key path configuration.

System Tray

Minimizes to the Windows system tray. Runs silently in the background while polling servers. Tray icon restores the main window on double-click.

Monitor Tab Column Schemas

Each server type exposes a different set of statistics. Monitor Tab columns are automatically configured based on the detected server type when a monitor is opened.

Server Type Columns
SHOUTcast (0) Station Name, Current Song, Listeners, Peak, Max, Reported, Bitrate, Avg Time, Stream Type
Icecast2 (1) / Mcaster1DNAS (3) Station Name, Mountpoint, Current Song, Listeners, Peak, Connections, Bitrate, Audio, Description, Stream Type
Steamcast (2) Station Name, Current Song, Listeners, Max, Bitrate, Avg Time, Stream Hits, Stream Type

Server URL Format

The Server URL column in the main list displays the url/mountpoint combination:

  • https://dnas.mcaster1.com:9443/live
  • http://stream.example.com:8000/radio
  • http://sc.example.com:8000 (Shoutcast v1 — no mount)

Build Requirements & Dependencies

Visual Studio 2022

Community / Professional / Enterprise. Desktop development with C++ workload. MFC for x86 required (MFC 14.3 via the toolset install).

MSVC v143 / Win32

Toolset v143, Platform Win32 (x86), Windows SDK 10.0. Target: Windows 7+ for broadest compatibility.

vcpkg (C:\vcpkg)

x86-windows triplet. All runtime DLLs auto-deployed to Release\ by MSBuild vcpkg app-local integration — no manual copying required.

vcpkg Dependencies

LibraryVersionPurposevcpkg Triplet
libcurl8.18.0HTTP polling, FTP upload, URL callbackscurl:x86-windows
libxml22.15.1XML response parsing (Shoutcast/Icecast)libxml2:x86-windows
libmariadb3.4.8MariaDB/MySQL statistics logginglibmariadb:x86-windows
OpenSSL3.6.1TLS for libcurl and MariaDB SSL connectionsopenssl:x86-windows
libssh21.11.1SFTP upload, SSH key authenticationlibssh2:x86-windows
libyaml0.2.5YAML config (runtime Phase 9+)libyaml:x86-windows
ResizableLiblatestResizable MFC dialog frameworkexternal/ResizableLib/ (source)

Database Setup

  • Create a MariaDB/MySQL database (e.g. mcaster1castit_stats)
  • Create a user with full access to that database
  • Launch Mcaster1CastIt.exe → Configuration → fill in Hostname, Username, Password, Database
  • Click Create Tables — all 5 tables created automatically
  • Tables: shoutcast_serverinfo, songinfo, shoutcast_history, icecast2_history, icecast2_serverinfo

Development Phases

All 15 phases are complete as of v0.9.7.

Phase 1 — v0.1.0

VS2022 Build Fix — v143 toolset, Win10 SDK, VC6→VS2022 source compat fixes

Phase 2 — v0.2.0

Rebrand CastIt → Mcaster1Castit (classes, dialogs, INI file, window titles, URLs)

Phase 3 — v0.1.0

Dependency migration via vcpkg (curl, libxml2, mariadb, openssl, libssh2, libyaml)

Phase 4 — v0.3.0

Repository cleanup — .gitignore, git init, initial commit

Phase 5 — v0.4.0

Dialog & UI modernization — all dialogs resizable (CResizableDialog), Segoe UI 9pt

Phase 6 — v0.5.0

SFTP + SSH key file authentication (libssh2)

Phase 7 — v0.6.0

Secure MariaDB/MySQL with SSL/TLS connections

Phase 8 — v0.7.0

Mcaster1 platform integration — Mcaster1DNAS server type, ICY metadata push, libyaml prep

Phase 9 — v0.8.0

SSL/SSH key generation — OpenSSL EVP_RSA_gen, auto-fill paths

Phase 10 — v0.9.0

5-tab ConfigDialog, AddServer wizard, DNAS XML fix

Phase 11 — v0.9.2

DNAS credential URL encoding fix

Phase 12 — v0.9.2

AddServer wizard credential fix (scastd.cpp)

Phase 13 — v0.9.3

Simplified 3-column server list

Phase 14 — v0.9.4

Monitor Tabs (right-click) + HTML5/CSS3 templates + DNAS tags

Phase 15 — v0.9.5–0.9.7

Monitor Detail Dialog + embedded WebBrowser + dark-theme HTML + dialog resize fixes + server URL url/mountpoint format

Credits & Lineage

  • David St. John — Original developer of CastIt (~2005), stream-hosting pioneer, Mcaster1 platform maintainer
  • Ed Zalesky (EdcastDSP / Oddsock) — Original mentorship on streaming server architecture
  • CasterClub (casterclub.com) — Original home of CastIt (~2005); credited as the founding creators of this software
  • Re-release planned under MIT or GPLv3

Mcaster1CastIt

The scheduling and monitoring hub of the Mcaster1 open-source internet radio platform. Part of the broader ecosystem alongside Mcaster1DNAS, Mcaster1DSPEncoder, and Mcaster1TagStack.