36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
#include "HomApiClient.h"
|
|
|
|
HomApiClient::HomApiClient (juce::String registryBaseUrl)
|
|
: baseUrl (std::move (registryBaseUrl))
|
|
{
|
|
}
|
|
|
|
void HomApiClient::submitJobAsync (const juce::File& audio,
|
|
ProgressCallback onProgress,
|
|
DoneCallback onDone,
|
|
ErrorCallback onError)
|
|
{
|
|
juce::ignoreUnused (audio);
|
|
|
|
// Skeleton — fire a fake progress sweep then signal "not implemented".
|
|
// Real implementation:
|
|
// 1) POST baseUrl + "/jobs/upload" with multipart audio file
|
|
// 2) POST baseUrl + "/jobs/submit" with the returned key
|
|
// 3) Poll baseUrl + "/jobs/{id}/status" every ~3s
|
|
// 4) GET baseUrl + "/jobs/{id}/output" → stems URLs
|
|
// 5) Download each stem to a temp dir
|
|
// 6) Trigger the host DAW to import them as new tracks
|
|
// (FileDragAndDropHandling on the host's edit window)
|
|
|
|
juce::Thread::launch ([onProgress, onError]
|
|
{
|
|
for (double p : { 0.05, 0.20, 0.50, 0.80 })
|
|
{
|
|
juce::Thread::sleep (300);
|
|
if (onProgress) onProgress (p);
|
|
}
|
|
if (onError)
|
|
onError ("API client skeleton — wire HTTP in next sprint.");
|
|
});
|
|
}
|