Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ on:
- master
paths-ignore:
- README.md
- ChangeLog.md
- docs/**

pull_request:
branches:
- master
paths-ignore:
- README.md
- ChangeLog.md
- docs/**

jobs:
Expand Down
4 changes: 3 additions & 1 deletion ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
- Add macOS support
- Rework mobile layout: make elements larger and better positioned, support swiping between views
- Rework column editor: add support for subrows and basic formatting, each layout is now configured separately
- Allow non-absolute paths in config (resolved relative to {player profile directory}/beefweb/)
- Allow non-absolute paths in config (resolved relative to `{player_profile_dir}/beefweb/`)
- Serve custom web content from `{player_profile_dir}/beefweb/webroot/`
- Replace `BEEFWEB_CONFIG_FILE` environment variable with `BEEFWEB_PROFILE_DIR` (fully overrides `{player_profile_dir}/beefweb/`)
- Allow setting arbitrary UI scale
- Preserve scroll position in file browser
- Increase icon sizes in all layouts
Expand Down
27 changes: 14 additions & 13 deletions cpp/server/deadbeef/plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ void Plugin::handlePluginsLoaded()
pluginsLoaded_ = true;

#ifndef MSRV_OS_MAC
SettingsData::migrate(MSRV_PLAYER_DEADBEEF, getProfileDir());
migrateSettings(MSRV_PLAYER_DEADBEEF, getProfileDir());
#endif

refreshSettings();
Expand All @@ -59,18 +59,19 @@ void Plugin::handlePluginsLoaded()
void Plugin::reconfigure()
{
tryCatchLog([&] {
auto settings = std::make_shared<SettingsData>();

settings->port = port_;
settings->allowRemote = allowRemote_;
settings->musicDirsOrig = parseValueList<std::string>(musicDirs_, ';');
settings->authRequired = authRequired_;
settings->authUser = authUser_;
settings->authPassword = authPassword_;
settings->permissions = permissions_;

settings->initialize(getThisModuleDir(), getProfileDir());

SettingsBuilder builder;

builder.resourceDir = getThisModuleDir();
builder.profileDir = getProfileDir();
builder.port = port_;
builder.allowRemote = allowRemote_;
builder.musicDirs = parseValueList<std::string>(musicDirs_, ';');
builder.authRequired = authRequired_;
builder.authUser = authUser_;
builder.authPassword = authPassword_;
builder.permissions = permissions_;

auto settings = builder.build();
host_.reconfigure(std::move(settings));
});
}
Expand Down
3 changes: 3 additions & 0 deletions cpp/server/file_system.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include <stddef.h>
#include <string>
#include <vector>
#include <memory>

#include <boost/filesystem.hpp>
#include <boost/optional.hpp>
Expand All @@ -16,6 +17,8 @@ namespace fs = boost::filesystem;

using Path = fs::path;

using PathVectorPtr = std::shared_ptr<const std::vector<Path>>;

#ifdef MSRV_OS_POSIX
#define MSRV_PATH_LITERAL(str) Path(str)
#endif
Expand Down
27 changes: 14 additions & 13 deletions cpp/server/foobar2000/plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,24 @@ Path Plugin::getProfileDir()
void Plugin::reconfigure()
{
tryCatchLog([&] {
auto settings = std::make_shared<SettingsData>();

settings->port = settings_store::port;
settings->allowRemote = settings_store::allowRemote;
settings->musicDirsOrig = settings_store::getMusicDirs();
settings->authRequired = settings_store::authRequired;
settings->authUser = settings_store::authUser.get();
settings->authPassword = settings_store::authPassword.get();
settings->permissions = settings_store::getPermissions();
SettingsBuilder builder;

#ifdef MSRV_OS_MAC
auto resourceDir = getThisModuleDir().parent_path() / Path("Resources");
builder.resourceDir = getThisModuleDir().parent_path() / Path("Resources");
#else
const auto& resourceDir = getThisModuleDir();
builder.resourceDir = getThisModuleDir();
#endif

settings->initialize(resourceDir, getProfileDir());
builder.profileDir = getProfileDir();
builder.port = settings_store::port;
builder.allowRemote = settings_store::allowRemote;
builder.musicDirs = settings_store::getMusicDirs();
builder.authRequired = settings_store::authRequired;
builder.authUser = settings_store::authUser.get();
builder.authPassword = settings_store::authPassword.get();
builder.permissions = settings_store::getPermissions();

auto settings = builder.build();

host_.reconfigure(std::move(settings));
});
Expand All @@ -68,7 +69,7 @@ class InitQuit : public initquit
{
Logger::setCurrent(&logger_);
#ifndef MSRV_OS_MAC
SettingsData::migrate(MSRV_PLAYER_FOOBAR2000, Plugin::getProfileDir());
migrateSettings(MSRV_PLAYER_FOOBAR2000, Plugin::getProfileDir());
#endif
tryCatchLog([this] { plugin_ = std::make_unique<Plugin>(); });
}
Expand Down
4 changes: 1 addition & 3 deletions cpp/server/project_info.hpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@
#define MSRV_PROJECT_DESC "Provides web UI and HTTP API for controlling player remotely"
#define MSRV_DEFAULT_PORT 8880
#define MSRV_DEFAULT_TEST_PORT 8882
#define MSRV_CONFIG_FILE "config.json"
#define MSRV_CONFIG_FILE_OLD "beefweb.config.json"
#define MSRV_CONFIG_FILE_ENV "BEEFWEB_CONFIG_FILE"
#define MSRV_CLIENT_CONFIG_DIR "clientconfig"
#define MSRV_PROFILE_DIR_ENV "BEEFWEB_PROFILE_DIR"
#define MSRV_DONATE_URL "https://hyperblast.org/donate/"
#define MSRV_API_DOCS_URL "https://hyperblast.org/beefweb/api/"
#define MSRV_PLAYER_DEADBEEF "deadbeef"
Expand Down
Loading