Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - emilles

Pages: 1
1
MusicBee API / Winamp API: get track length
« on: May 30, 2021, 04:47:03 PM »
Is there support in MusicBee's WinAmp (Output Plug-in) API for getting the length of the current track?  WinAmp supports this in 2 ways:
Code
DWORD error;
DWORD_PTR result;
SendMessage(window, WM_WA_IPC, (LPARAM) IPC_GETOUTPUTTIME, (WPARAM) 2, &error, &result);
time_t length = (time_t) result;

Code
void GetBasicFileInfo(time_t& length, const wchar_t* const filePath, HWND hWnd)
{
basicFileInfoStructW fileInfo;
fileInfo.filename = filePath;
fileInfo.quickCheck = 0;
fileInfo.title = NULL;
fileInfo.titlelen = 0;
fileInfo.length = 0;

SendMessageWithTimeout(hWnd, WM_WA_IPC, IPC_GET_BASIC_FILE_INFOW, (WPARAM) &fileInfo);
if (fileInfo.length > 0)
{
length = static_cast<time_t>(fileInfo.length) * 1000;
}
}

IPC_GET_BASIC_FILE_INFOW is 1291.  There is an older message 291 for non-wide chars as well.

I have been using the MusicBee IPC plug-in, which uses the standard MusicBee API and gives me access over IPC.  However, that plug-in seems to have been wiped from the internet.

2
When using a Winamp-style output plug-in, is there a way to be notified (or detect) a track change?  Typically, Winamp does this by calling close() at the end of each track and open() at the start of the next.  However, MB is opening only once at the start of playback.

Also, at the end of a playlist, Winamp check isPlaying() before calling close() to prevent clipping the end of the track.  MB is not doing this either.  I could go off of the close(0 call, ut falling off the end of the playlist is indistinguishable from the user pressing the stop button, which should immediately stop the audio.

3
Plugins / AirPlay plugin
« on: February 13, 2013, 03:57:55 PM »
Improved support for MusicBee in latest release (v4.5).

http://emilles.dyndns.org/software/out_apx.html

* Supports a wide range of AirPlay devices and programs
* Streams audio to multiple supported devices over wired or wireless network(s)
* Synchronizes audio streams between multiple devices
* Displays track metadata (title, artist, album, artwork, progress) on devices that support it
* Supports full set of playback operations (play, pause, stop, seek, skip, etc.)
* Plays multiple tracks with no gap between tracks
* Supports remote control
* Supports password-protected remote speakers
* Supports multi-homed (more than one network interface) workstations
* Discovers remote speakers automatically using zero-configuration network protocols
* Supports static configuration of remote speakers for hard-to-locate devices
* Supports international characters for device names
* Supports mono and stereo input
* Supports standard sample rates (samples per second) on input
* Supports standard sample sizes (bits per sample) on input

Pages: 1