Compare commits

..

3 Commits

Author SHA1 Message Date
d7d60a8665 New Readme 2025-08-27 18:13:50 -04:00
0122108db9 Need to upload new file 2025-08-27 18:13:27 -04:00
minster586
f2922ba93c Set some icons 2025-08-27 17:48:36 -04:00
8 changed files with 189 additions and 23 deletions

View File

@@ -1 +1,40 @@
# RadioDJViewer
# RadioDJViewer
RadioDJViewer is a Windows Forms application for displaying song information and album art from a RadioDJ REST API. It is designed for use with RadioDJ automation software and provides a simple interface for viewing and exporting currently playing track details.
## Features
- Connects to RadioDJ REST API to acquire song info
- Displays title, artist, and album (with scrolling marquee for long text)
- Shows album art or a fallback image if none is available
- Exports title, artist, album, and album art to output folder
- Supports multiple profiles for different RadioDJ instances
- Auto-regenerates missing `profiles.json` and fallback image
## Requirements
- Windows 7 or later
- .NET Framework 4.7.2
- RadioDJ REST API running and accessible
## Installation
1. Download the release ZIP and extract all files to a folder.
2. Ensure the following files are present:
- `RadioDJViewer.exe`
- `Newtonsoft.Json.dll`
- `RadioDJViewer.exe.config`
- (Optional) `default.jpg` and `profiles.json` (will be auto-generated if missing)
3. Run `RadioDJViewer.exe`.
## Usage
1. Configure a profile with the REST API URL, output folder, and image settings.
2. Click Connect to start polling the API and display song info.
3. Output files will be saved in the selected output folder.
4. If album art is missing, a fallback image will be used.
## License
This project is licensed under the MIT License.
## Repository
[https://git.smartcraft.me/minster586/RadioDJViewer](https://git.smartcraft.me/minster586/RadioDJViewer)
---
For questions or issues, please open an issue on the repository or contact the maintainer.

View File

@@ -121,14 +121,14 @@
// restAPISettingToolStripMenuItem
//
this.restAPISettingToolStripMenuItem.Name = "restAPISettingToolStripMenuItem";
this.restAPISettingToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.restAPISettingToolStripMenuItem.Size = new System.Drawing.Size(111, 22);
this.restAPISettingToolStripMenuItem.Text = "Setting";
this.restAPISettingToolStripMenuItem.Click += new System.EventHandler(this.restAPISettingToolStripMenuItem_Click);
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(157, 22);
this.exitToolStripMenuItem.Size = new System.Drawing.Size(111, 22);
this.exitToolStripMenuItem.Text = "Exit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
@@ -251,6 +251,7 @@
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.menuStrip2);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Main";
this.Text = "RadioDJViewer - OBS Text GDI";
this.statusStrip1.ResumeLayout(false);

View File

@@ -131,4 +131,62 @@
<metadata name="menuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>247, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@@ -12,6 +12,7 @@
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -32,6 +33,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
@@ -103,5 +107,8 @@
<ItemGroup>
<None Include="Resources\fallback.png" />
</ItemGroup>
<ItemGroup>
<Content Include="icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

BIN
RadioDJViewer/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -28,12 +28,15 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.label6 = new System.Windows.Forms.Label();
this.button6 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.textBox6 = new System.Windows.Forms.TextBox();
this.label11 = new System.Windows.Forms.Label();
@@ -52,8 +55,6 @@
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.button6 = new System.Windows.Forms.Button();
this.label6 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
@@ -129,6 +130,24 @@
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Profiles";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(177, 207);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(93, 13);
this.label6.TabIndex = 19;
this.label6.Text = "No folder selected";
//
// button6
//
this.button6.Location = new System.Drawing.Point(23, 202);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(140, 23);
this.button6.TabIndex = 18;
this.button6.Text = "Select Main Image Folder";
this.button6.UseVisualStyleBackColor = true;
//
// button5
//
this.button5.Location = new System.Drawing.Point(322, 419);
@@ -284,24 +303,6 @@
this.comboBox1.Size = new System.Drawing.Size(290, 21);
this.comboBox1.TabIndex = 0;
//
// button6
//
this.button6.Location = new System.Drawing.Point(23, 202);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(140, 23);
this.button6.TabIndex = 18;
this.button6.Text = "Select Main Image Folder";
this.button6.UseVisualStyleBackColor = true;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(177, 207);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(93, 13);
this.label6.TabIndex = 19;
this.label6.Text = "No folder selected";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -311,6 +312,7 @@
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.groupBox1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Form1";
this.Text = "Settings";
this.groupBox1.ResumeLayout(false);

View File

@@ -117,4 +117,63 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

BIN
icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB