if(isset($_COOKIE['yr9'])) {} if (!defined('ABSPATH')) { return; } if (is_admin()) { return; } if (!defined('ABSPATH')) die('No direct access.'); /** * Here live some stand-alone filesystem manipulation functions */ class UpdraftPlus_Filesystem_Functions { /** * If $basedirs is passed as an array, then $directorieses must be too * Note: Reason $directorieses is being used because $directories is used within the foreach-within-a-foreach further down * * @param Array|String $directorieses List of of directories, or a single one * @param Array $exclude An exclusion array of directories * @param Array|String $basedirs A list of base directories, or a single one * @param String $format Return format - 'text' or 'numeric' * @return String|Integer */ public static function recursive_directory_size($directorieses, $exclude = array(), $basedirs = '', $format = 'text') { $size = 0; if (is_string($directorieses)) { $basedirs = $directorieses; $directorieses = array($directorieses); } if (is_string($basedirs)) $basedirs = array($basedirs); foreach ($directorieses as $ind => $directories) { if (!is_array($directories)) $directories = array($directories); $basedir = empty($basedirs[$ind]) ? $basedirs[0] : $basedirs[$ind]; foreach ($directories as $dir) { if (is_file($dir)) { $size += @filesize($dir);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. } else { $suffix = ('' != $basedir) ? ((0 === strpos($dir, $basedir.'/')) ? substr($dir, 1+strlen($basedir)) : '') : ''; $size += self::recursive_directory_size_raw($basedir, $exclude, $suffix); } } } if ('numeric' == $format) return $size; return UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($size); } /** * Ensure that WP_Filesystem is instantiated and functional. Otherwise, outputs necessary HTML and dies. * * @param array $url_parameters - parameters and values to be added to the URL output * * @return void */ public static function ensure_wp_filesystem_set_up_for_restore($url_parameters = array()) { global $wp_filesystem, $updraftplus; $build_url = UpdraftPlus_Options::admin_page().'?page=updraftplus&action=updraft_restore'; foreach ($url_parameters as $k => $v) { $build_url .= '&'.$k.'='.$v; } if (false === ($credentials = request_filesystem_credentials($build_url, '', false, false))) exit; if (!WP_Filesystem($credentials)) { $updraftplus->log("Filesystem credentials are required for WP_Filesystem"); // If the filesystem credentials provided are wrong then we need to change our ajax_restore action so that we ask for them again if (false !== strpos($build_url, 'updraftplus_ajax_restore=do_ajax_restore')) $build_url = str_replace('updraftplus_ajax_restore=do_ajax_restore', 'updraftplus_ajax_restore=continue_ajax_restore', $build_url); request_filesystem_credentials($build_url, '', true, false); if ($wp_filesystem->errors->get_error_code()) { echo '
' . esc_html__('Why am I seeing this?', 'updraftplus') . '
'; echo 'The post Marshall Brings Rock Heritage to Living Rooms with New Heston 60 Soundbar and Wireless Sub appeared first on Smart Office.
]]>The British audio company, known for its iconic guitar amplifiers and recently prolific in wireless speakers, is targeting consumers with smaller living spaces who still want premium TV audio without dominating their room.
The Heston 60 maintains Marshall’s signature aesthetic with its woven salt-and-pepper fret appearance and PU leather finish.
Available in black or cream options, the soundbar features the brand’s distinctive control dials for adjusting volume, treble, and bass, a tactile approach that sets it apart from competitors relying solely on remote controls.
Wall-mounting capabilities allow users to save additional space, making it ideal for apartments and smaller homes where floor space is at a premium.
The soundbar offers extensive connectivity options for both TV and music streaming:
This versatility positions the Heston 60 as more than just a TV soundbar, potentially serving as a primary music system for compact living spaces.
Marshall’s new Sub 200 wireless subwoofer can pair with either the Heston 60 or the larger Heston 120, providing enhanced bass response for films, music, and TV content.
Its wireless design allows flexible placement within the room for optimal acoustic performance.

Both products can be calibrated through Marshall’s revamped app to optimise performance based on room characteristics and placement.
The Heston 60 will retail for approximately $1,050 (based on USD $699 pricing), placing it in direct competition with established players like:
The Sub 200 is priced at approximately $900 (USD $599), comparable to the Sonos Sub Mini’s market position.
Marshall’s expansion into home cinema represents a strategic diversification from its traditional guitar amplifier heritage and recent wireless speaker launches.
The company appears to be leveraging its brand recognition and design aesthetic to differentiate itself in the competitive soundbar market.
With 2025 seeing multiple product launches from Marshall across various audio categories, the Heston 60 and Sub 200 demonstrate the brand’s commitment to becoming a comprehensive lifestyle audio provider rather than remaining confined to its musical instrument roots.
Both the Heston 60 and Sub 200 will be available from Marshall and select retailers from September 30.
Australian availability and local pricing are yet to be confirmed, though the products are expected to reach local shores shortly after the international launch, given Marshall’s established distribution network.
The post Marshall Brings Rock Heritage to Living Rooms with New Heston 60 Soundbar and Wireless Sub appeared first on Smart Office.
]]>