view release on metacpan or search on metacpan
lib/App/MHFS.pm view on Meta::CPAN
158915901591159215931594159515961597159815991600160116021603160416051606160716081609my
%fileitem
= (
'requestfile'
=>
$requestfile
);
my
$currentsize
;
if
(
$self
->{
'method'
} ne
'HEAD'
) {
my
$FH
;
if
(!
open
(
$FH
,
"<"
,
$requestfile
)) {
say
"SLF: open failed"
;
$self
->Send404;
return
;
}
binmode
(
$FH
);
my
$st
=
stat
(
$FH
);
if
(!
$st
) {
$self
->Send404();
return
;
}
$currentsize
=
$st
->size;
$fileitem
{
'fh'
} =
$FH
;
}
else
{
$currentsize
= (-s
$requestfile
);
}
lib/App/MHFS.pm view on Meta::CPAN
164216431644164516461647164816491650165116521653165416551656165716581659166016611662# truncate to the [potentially] satisfiable end
if
(
defined
$self
->{
'header'
}{
'_RangeEnd'
}) {
$self
->{
'header'
}{
'_RangeEnd'
} = min(
$filelength
-1,
$self
->{
'header'
}{
'_RangeEnd'
});
}
# setup callback for retrieving current file size if we are following the file
if
(
$fileitem
{
'fh'
}) {
if
(!
$done
) {
$get_current_size
=
sub
{
return
stat
(
$fileitem
{
'fh'
})
};
}
my
$get_read_filesize
=
sub
{
my
$maxsize
=
$get_max_size
->();
if
(
defined
$self
->{
'header'
}{
'_RangeEnd'
}) {
my
$rangesize
=
$self
->{
'header'
}{
'_RangeEnd'
}+1;
return
$rangesize
if
(
$rangesize
<=
$maxsize
);
}
return
$maxsize
;
lib/App/MHFS.pm view on Meta::CPAN
374137423743374437453746374737483749375037513752375337543755375637573758375937603761
if
(! HAS_MHFS_XS) {
warn
__PACKAGE__.
": XS not available"
;
}
}
# read the directory tree from desk and store
# this assumes filenames are UTF-8ish, the octlets will be the actual filename, but the printable filename is created by decoding it as UTF-8
sub
BuildLibrary {
my
(
$path
) =
@_
;
my
$statinfo
=
stat
(
$path
);
return
undef
if
(!
$statinfo
);
my
$basepath
= basename(
$path
);
my
$utf8name
= get_printable_utf8(
$basepath
);
if
(!S_ISDIR(
$statinfo
->mode)){
return
undef
if
(
$path
!~ /\.(flac|mp3|m4a|wav|ogg|webm)$/);
return
[
$basepath
,
$statinfo
->size,
undef
,
$utf8name
];
}
else
{
my
$dir
;
lib/App/MHFS.pm view on Meta::CPAN
465846594660466146624663466446654666466746684669467046714672467346744675467646774678my
(
$cr
) =
$context
->{
'stdout'
} =~ /^.
*Content
\-Range:\sbytes\s\d+\-\d+\/(\d+)/s;
if
(
$cr
) {
say
"cr $cr"
;
$cl
=
$cr
if
(
$cr
>
$cl
);
}
say
"cl is $cl"
;
UNLOCK_WRITE(
$filename
);
LOCK_WRITE(
$filename
,
$cl
);
# make sure the file exists and within our parameters
my
$st
=
stat
(
$filename
);
$st
or
return
;
my
$minsize
= 16384;
$minsize
=
$cl
if
(
$cl
<
$minsize
);
return
if
(
$st
->size <
$minsize
);
say
"sending, currentsize "
.
$st
->size .
' totalsize '
.
$cl
;
# dont need to check the new data anymore
$context
->{
'on_stdout_data'
} =
undef
;
$sendit
->();
$request
=
undef
;
share/public_html/static/music_inc/src/miniaudio.h view on Meta::CPAN
582058215822582358245825582658275828582958305831583258335834583558365837583858395840#ifdef MA_WIN32
#include <windows.h>
#else
#include <stdlib.h> /* For malloc(), free(), wcstombs(). */
#include <string.h> /* For memset() */
#include <sched.h>
#include <sys/time.h> /* select() (used for ma_sleep()). */
#endif
#include <sys/stat.h> /* For fstat(), etc. */
#ifdef MA_EMSCRIPTEN
#include <emscripten/emscripten.h>
#endif
#if !defined(MA_64BIT) && !defined(MA_32BIT)
#ifdef _WIN32
#ifdef _WIN64
#define MA_64BIT
#else
share/public_html/static/music_inc/src/miniaudio.h view on Meta::CPAN
270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101version here since we can
open
it even
when
another process
has
control of the
"/dev/audioN"
device.
*/
for
(iDevice = 0; iDevice < maxDevices; ++iDevice) {
struct
stat
st;
int
fd;
ma_bool32 isTerminating = MA_FALSE;
ma_strcpy_s(devpath, sizeof(devpath),
"/dev/audioctl"
);
ma_itoa_s(iDevice, devpath+strlen(devpath), sizeof(devpath)-strlen(devpath), 10);
if
(
stat
(devpath,
&st
) < 0) {
break;
}
/* The device
exists
, but we need to check
if
it's usable as playback and/or capture. */
/* Playback. */
if
(!isTerminating) {
fd =
open
(devpath, O_RDONLY, 0);
if
(fd >= 0) {
/* Supports playback. */
share/public_html/static/music_inc/src/miniaudio.h view on Meta::CPAN
42648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666
MA_ASSERT(pInfo != NULL);
(void)pVFS;
#if defined(_MSC_VER)
fd = _fileno((FILE*)file);
#else
fd =
fileno
((FILE*)file);
#endif
if
(fstat(fd,
&info
) != 0) {
return
ma_result_from_errno(errno);
}
pInfo->sizeInBytes = info.st_size;
return
MA_SUCCESS;
}
#endif
share/public_html/static/music_worklet_inprogress/decoder/bin/_mhfscl.js view on Meta::CPAN
12345678910111213141516var Module = (() => {
var _scriptName =
import
.meta.url;
return
(
async function(moduleArg = {}) {
var moduleRtn;
var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window==
"object"
;var ENVIRONMENT_IS_WORKER=typeof im...
return
moduleRtn;
}
);
})();
export
default
Module;
share/public_html/static/music_worklet_inprogress/decoder/deps/miniaudio/miniaudio.h view on Meta::CPAN
110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078#ifdef MA_WIN32
#include <windows.h>
#else
#include <stdlib.h> /* For malloc(), free(), wcstombs(). */
#include <string.h> /* For memset() */
#include <sched.h>
#include <sys/time.h> /* select() (used for ma_sleep()). */
#include <pthread.h>
#endif
#include <sys/stat.h> /* For fstat(), etc. */
#ifdef MA_EMSCRIPTEN
#include <emscripten/emscripten.h>
#endif
#if !defined(MA_64BIT) && !defined(MA_32BIT)
#ifdef _WIN32
#ifdef _WIN64
#define MA_64BIT
#else
share/public_html/static/music_worklet_inprogress/decoder/deps/miniaudio/miniaudio.h view on Meta::CPAN
346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686version here since we can
open
it even
when
another process
has
control of the
"/dev/audioN"
device.
*/
for
(iDevice = 0; iDevice < maxDevices; ++iDevice) {
struct
stat
st;
int
fd;
ma_bool32 isTerminating = MA_FALSE;
ma_strcpy_s(devpath, sizeof(devpath),
"/dev/audioctl"
);
ma_itoa_s(iDevice, devpath+strlen(devpath), sizeof(devpath)-strlen(devpath), 10);
if
(
stat
(devpath,
&st
) < 0) {
break;
}
/* The device
exists
, but we need to check
if
it's usable as playback and/or capture. */
/* Playback. */
if
(!isTerminating) {
fd =
open
(devpath, O_RDONLY, 0);
if
(fd >= 0) {
/* Supports playback. */
share/public_html/static/music_worklet_inprogress/decoder/deps/miniaudio/miniaudio.h view on Meta::CPAN
56934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952
MA_ASSERT(pInfo != NULL);
(void)pVFS;
#if defined(_MSC_VER)
fd = _fileno((FILE*)file);
#else
fd =
fileno
((FILE*)file);
#endif
if
(fstat(fd,
&info
) != 0) {
return
ma_result_from_errno(errno);
}
pInfo->sizeInBytes = info.st_size;
return
MA_SUCCESS;
}
#endif