Implement XDG compliance, logging, and improved 401 error handling

- Install to ~/.local/bin/winamp-mpris
- Use ~/.local/state/winamp-mpris/bridge.log for logging
- Use $XDG_RUNTIME_DIR/winamp-mpris.pid for PID management
- Add detailed user notification for 401 Unauthorized errors
- Add install.sh for automated, standard-compliant setup
- Include Winamp Web Interface source code and installer in repository
This commit is contained in:
2026-04-08 18:29:40 -04:00
parent 1e9257a27f
commit 22492dbee9
120 changed files with 9092 additions and 10 deletions

411
Wawi Source/Resource.rc Normal file
View File

@@ -0,0 +1,411 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// IMAGE
//
IDR_DIRECTORY IMAGE DISCARDABLE "dir.gif"
IDR_WAFILE IMAGE DISCARDABLE "wafile.gif"
IDR_PLAYLIST IMAGE DISCARDABLE "playlist.gif"
IDR_FILE IMAGE DISCARDABLE "file.gif"
IDR_IMG_ABOUT IMAGE DISCARDABLE "Images\\about.gif"
IDR_IMG_STOP IMAGE DISCARDABLE "Images\\stop.gif"
IDR_IMG_MAIN IMAGE DISCARDABLE "Images\\main.gif"
IDR_IMG_NEXT IMAGE DISCARDABLE "Images\\next.gif"
IDR_IMG_PAUSE IMAGE DISCARDABLE "Images\\pause.gif"
IDR_IMG_PLAY IMAGE DISCARDABLE "Images\\play.gif"
IDR_IMG_PLAYLIST IMAGE DISCARDABLE "Images\\playlist.gif"
IDR_IMG_PREV IMAGE DISCARDABLE "Images\\prev.gif"
IDR_IMG_BROWSE IMAGE DISCARDABLE "Images\\browse.gif"
IDR_IMG_BLACK IMAGE DISCARDABLE "Images\\black.gif"
IDR_VOL_09 IMAGE DISCARDABLE "Images\\vol9.gif"
IDR_VOL_10 IMAGE DISCARDABLE "Images\\vol10.gif"
IDR_VOL_02 IMAGE DISCARDABLE "Images\\vol2.gif"
IDR_VOL_03 IMAGE DISCARDABLE "Images\\vol3.gif"
IDR_VOL_04 IMAGE DISCARDABLE "Images\\vol4.gif"
IDR_VOL_05 IMAGE DISCARDABLE "Images\\vol5.gif"
IDR_VOL_06 IMAGE DISCARDABLE "Images\\vol6.gif"
IDR_VOL_07 IMAGE DISCARDABLE "Images\\vol7.gif"
IDR_VOL_08 IMAGE DISCARDABLE "Images\\vol8.gif"
IDR_VOL_01 IMAGE DISCARDABLE "Images\\vol1.gif"
IDR_VOL_00 IMAGE DISCARDABLE "Images\\vol0.gif"
IDR_IMG_STOPSLOW IMAGE DISCARDABLE "Images\\stopslow.gif"
IDR_ICO_WINAMP IMAGE DISCARDABLE "Images\\wa.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_USERS DIALOGEX 0, 0, 220, 201
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Manage Users"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
LISTBOX IDC_USERS,23,39,173,54,LBS_SORT | LBS_NOINTEGRALHEIGHT |
NOT WS_BORDER | WS_VSCROLL | WS_TABSTOP,WS_EX_STATICEDGE
EDITTEXT IDC_USERNAME,66,100,130,12,ES_AUTOHSCROLL | NOT
WS_BORDER,WS_EX_STATICEDGE
EDITTEXT IDC_PASSWORD,66,119,130,12,ES_PASSWORD | ES_AUTOHSCROLL |
NOT WS_BORDER,WS_EX_STATICEDGE
RTEXT "User",IDC_STATIC,27,102,31,10
RTEXT "Password",IDC_STATIC,26,121,32,10
PUSHBUTTON "Add/Update",IDC_UPDATE,150,146,46,15
CONTROL "Server",IDC_AUTH_SERVER,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,23,147,47,10
CONTROL "Play",IDC_AUTH_CONTROL,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,23,158,48,10
CONTROL "Add files",IDC_AUTH_PLAYLIST,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,88,147,50,10
CONTROL "Download",IDC_AUTH_DOWNLOAD,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,88,158,48,10
CONTROL "Browse",IDC_AUTH_BROWSE,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,88,169,50,10
PUSHBUTTON "Delete",IDC_DELETE,150,162,46,15
LTEXT "Select a user and update their permissions using the boxes below.",
IDC_STATIC,15,19,187,18
CONTROL "Remove Files",IDC_AUTH_CLEAR,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,23,169,59,10
GROUPBOX "User Management",IDC_STATIC,7,7,206,187
END
IDD_SERVER DIALOGEX 0, 0, 220, 201
STYLE WS_CHILD | WS_CAPTION | WS_SYSMENU
CAPTION "WAWI Config : Server Settings"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
GROUPBOX "Network Settings",IDC_STATIC,7,7,206,92
RTEXT "Port:",IDC_STATIC,61,66,16,8
EDITTEXT IDC_PORT_EDIT,83,65,30,12,ES_AUTOHSCROLL | ES_NUMBER |
NOT WS_BORDER,WS_EX_STATICEDGE
CONTROL "Hide error message if an error occurs",IDC_HIDE_ERROR,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,26,81,140,10
LTEXT "Change the port the server runs on. The default is 80; however if you run another web server you probably want to change it.",
IDC_STATIC,13,19,184,26
LTEXT "Winamp must be restarted before a change will take effect.",
IDC_STATIC,13,49,193,12
GROUPBOX "Password Storage",IDC_STATIC,7,105,206,75
CONTROL "Secure Passwords",IDC_SECUREPASSWORD,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,26,148,75,11
PUSHBUTTON "Err... what?",IDC_SECUREPASSWORDHELP,153,118,51,17
CONTROL "Debug Mode",IDC_PASS_DEBUG,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,141,148,58,11
LTEXT "Warning! Changing between Secure and Insecure passwords will require entering all passwords again.",
IDC_STATIC,13,118,131,26
LTEXT "Click 'Ok' before editing users if you change these.",
IDC_STATIC,13,164,194,10
END
IDD_WEBPAGE DIALOGEX 0, 0, 220, 201
STYLE WS_CHILD | WS_CAPTION | WS_SYSMENU
CAPTION "WAWI Config : Web Page Settings"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
GROUPBOX "Frames",IDC_STATIC,7,7,206,75
LTEXT "Change how many frames Wawi uses depending on your browser.",
IDC_STATIC,13,19,184,18
EDITTEXT IDC_PAGETITLE,20,112,150,12,ES_AUTOHSCROLL | NOT
WS_BORDER,WS_EX_STATICEDGE
PUSHBUTTON "?",IDC_PAGETITLEHELP,174,113,12,12
LTEXT "Web Page Title",IDC_STATIC,20,101,139,8
CONTROL "No Frames",IDC_NOFRAMES,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,23,42,60,10
CONTROL "Two Frames",IDC_TWOFRAMES,"Button",BS_AUTORADIOBUTTON,
23,52,60,10
CONTROL "Three Frames",IDC_THREEFRAMES,"Button",
BS_AUTORADIOBUTTON,23,62,60,10
GROUPBOX "Page Details",IDC_STATIC,7,87,206,65
CONTROL "",IDC_FRAMEIMG,"Static",SS_BITMAP | SS_REALSIZEIMAGE,
128,40,16,14
EDITTEXT IDC_REFRESH,96,131,30,12,ES_AUTOHSCROLL | ES_NUMBER |
NOT WS_BORDER,WS_EX_STATICEDGE
LTEXT "Title Page Refresh (s)",IDC_STATIC,20,133,69,8
END
IDD_BROWSE DIALOGEX 0, 0, 220, 201
STYLE DS_MODALFRAME | WS_CHILD | WS_CAPTION | WS_SYSMENU
CAPTION "Browse Options"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
EDITTEXT IDC_MP3_ROOT,23,35,150,12,ES_AUTOHSCROLL | NOT WS_BORDER,
WS_EX_STATICEDGE
GROUPBOX "Browsing Options",IDC_STATIC,7,7,206,187
LTEXT "Root Directory",IDC_STATIC,23,24,114,8
EDITTEXT IDC_FILETYPES,23,98,150,12,ES_AUTOHSCROLL | NOT
WS_BORDER,WS_EX_STATICEDGE
LTEXT "Loadable Filetypes",IDC_STATIC,23,87,153,8
PUSHBUTTON "?",IDC_FILETYPEHELP,177,98,12,12
PUSHBUTTON "?",IDC_ROOTDIRHELP,177,35,12,12
CONTROL "Show",IDC_OTHER_FILES_SHOW,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,79,129,38,9
CONTROL "Download",IDC_OTHER_FILES_DL,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,126,129,48,9
CONTROL "Download",IDC_WA_FILES_DL,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,126,116,51,10
LTEXT "Other files:",IDC_STATIC,23,129,40,9
LTEXT "Winamp Files:",IDC_STATIC,23,116,55,10
CONTROL "Show",IDC_WA_FILES_SHOW,"Button",BS_AUTOCHECKBOX |
WS_DISABLED | WS_TABSTOP,79,116,38,10
EDITTEXT IDC_PLAYLISTDIR,23,67,150,12,ES_AUTOHSCROLL | NOT
WS_BORDER,WS_EX_STATICEDGE
LTEXT "Playlist Directory (Leave empty for Root Dir)",
IDC_STATIC,23,56,147,8
PUSHBUTTON "?",IDC_PLAYLISTDIRHELP,177,67,12,12
END
IDD_ABOUT DIALOG DISCARDABLE 0, 0, 220, 201
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "",IDC_MAINIMAGE,"Static",SS_BITMAP,6,13,206,68
CTEXT "Title goes here",IDC_ABOUT_TITLE,5,88,207,14
CTEXT "© Phil Himsworth 2002\r\n\r\ncontact@flippet.net - http://www.flippet.org",
IDC_STATIC,9,160,201,28
CTEXT "Remote control winamp from your web browser. First released waaaay back in August 2001; now much improved and shinier than ever!\r\n\r\nIf you see anything broken, or have an idea, get in touch and I'll have a look...",
IDC_STATIC,9,101,202,48
END
IDD_LOG DIALOGEX 0, 0, 220, 201
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Log File"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
GROUPBOX "Server Access Log",IDC_STATIC,7,7,206,108
LTEXT "WAWI keeps a log of who has accessed the server for diagnostic or statistical purposes.",
IDC_STATIC,18,26,125,25
EDITTEXT IDC_LOGFILEPATH,17,84,179,12,ES_AUTOHSCROLL | NOT
WS_BORDER,WS_EX_STATICEDGE
LTEXT "Logfile Directory (leave empty for Plugins Dir)",
IDC_STATIC,17,71,146,8
PUSHBUTTON "View Log...",IDC_VIEWLOG,149,26,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_USERS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 213
TOPMARGIN, 7
BOTTOMMARGIN, 194
END
IDD_SERVER, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 213
TOPMARGIN, 7
BOTTOMMARGIN, 194
END
IDD_WEBPAGE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 213
TOPMARGIN, 7
BOTTOMMARGIN, 194
END
IDD_BROWSE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 213
TOPMARGIN, 7
BOTTOMMARGIN, 194
END
IDD_LOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 213
TOPMARGIN, 7
BOTTOMMARGIN, 194
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_USERS ICON DISCARDABLE "users.ico"
IDI_SERVER ICON DISCARDABLE "server.ico"
IDI_WEBPAGE ICON DISCARDABLE "webpage.ico"
IDI_BROWSE ICON DISCARDABLE "browse.ico"
IDI_LOG ICON DISCARDABLE "Log.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_FRAMES_TWO BITMAP DISCARDABLE "Images\\frames_two_lg.bmp"
IDB_FRAMES_THREE BITMAP DISCARDABLE "Images\\frames_three_lg.bmp"
IDB_FRAMES_ONE BITMAP DISCARDABLE "Images\\frames_one_lg.bmp"
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// IMAGE
//
IDR_DOWNLOAD IMAGE DISCARDABLE "download.gif"
IDR_IMG_POPUP IMAGE DISCARDABLE "Images\\popup.gif"
IDR_PLAYDIR IMAGE DISCARDABLE "playdir.gif"
IDR_URLSCT IMAGE DISCARDABLE "Images\\world.gif"
IDR_IMG_ADMIN IMAGE DISCARDABLE "Images\\admin.gif"
IDR_IMG_OK IMAGE DISCARDABLE "Images\\OK.gif"
IDR_IMG_RPT_ON IMAGE DISCARDABLE "Images\\repeaton.gif"
IDR_IMG_RND_ON IMAGE DISCARDABLE "Images\\randomon.gif"
IDR_IMG_RPT_OFF IMAGE DISCARDABLE "Images\\repeatoff.gif"
IDR_IMG_RND_OFF IMAGE DISCARDABLE "Images\\randomoff.gif"
IDR_IMG_LIST_DEL IMAGE DISCARDABLE "Images\\list_delete.gif"
IDR_IMG_LIST_PLAY IMAGE DISCARDABLE "Images\\list_play.gif"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_WINAMP ICON DISCARDABLE "images\\winamp.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_TITLE BITMAP DISCARDABLE "Images\\Title Graphic\\No Background.bmp"
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 7,5,10,0
PRODUCTVERSION 7,5,10,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904b0"
BEGIN
VALUE "Comments", "Winamp Web Interface Plugin\0"
VALUE "CompanyName", " \0"
VALUE "FileDescription", "Winamp Web Interface Plugin\0"
VALUE "FileVersion", "7, 5, 10, 0\0"
VALUE "InternalName", "gen_httpSrv\0"
VALUE "LegalCopyright", "Copyright © 2002 Phil Himsworth\0"
VALUE "LegalTrademarks", "It's mine, dammit, MINE!\0"
VALUE "OriginalFilename", "gen_httpSrv.dll\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", " gen_httpSrv\0"
VALUE "ProductVersion", "7, 5, 10, 0\0"
VALUE "SpecialBuild", "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1200
END
END
#endif // !_MAC
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED