Direct access security (Local copy)

<< Click to Display Table of Contents >>

Navigation:  Technical Documentation > AirDDO V8.3 - Setup > SECURITY Tab >

Direct access security (Local copy)

Direct access security allows you to play sounds placed in specific folders (1 to 3)

 

When loading a sound, AirDDO will first check the specified folder(s)

If AirDDO finds the sound to play, it loads it from this folder.

If it doesn't, it loads it from the server (path T_ITEM, with security T_SECUR)

 

 

Direct_Access_Sec

 

Fill the fields by indicating server paths for sounds.

 

Ex : \\NT2\BDM\      ou        D:\DATA\

 

Or browsing the network by clicking the"Select" button

 

This option is used to play the sounds from the AirDDO workstation local hard drive.

It's usually linked to the following option :

 

Use file transfer : With this option, AirDDO will copy in folders 1 to 3, in the background, all files to be played, if not already in these folders.

 

Remark : To not activate one of these path, leave the field blanck.

 

 

TECHNICAL INFORMATIONS :

 

The first function called by AirDDO when local copying is enabled is INIT_TRANSFERT_FILE:

 

This function allows you to initialize the local copy through:

• Creation of Processing Lists

• Reading the registry keys

• The launch of Threads

 

Regarding the registry keys read (found in AirDDO/8.0/Sound) during this initialization, here is the list:

 

• PreferedPath1: Destination path of the local copy.

• SizeMax_PreferedPath1: Volume of data used in the folder containing the files from the local copy.

• SizeFree_PreferedPath1: Minimum free space required on the disk (for the user) to avoid saturation or to keep a volume of free space on the target disk / partition (for other projects if necessary).

• Delay1: (10> Delay1> 100) Waiting time in the copy progress callback ==> useful for managing the network transfer speed during local copying. A low value allows faster copying.

o ex: 50 ms = 8%/mb 40 ms = 11%/mb 30 ms = 17%/mb 20 ms = 18%/mb 15 ms = 33%/mb

• ServicePurge: name of the Playout File Service (to block the gThreadDirectory purge thread if PFS is already running) -> There is a purge process independent of AirDDO but which is not used in a production environment. This key ensures this to avoid having two purge processes simultaneously.

All info is stored in STRUCT_PATH: STRUCT_PATH.INIT () launches the 3 Threads of the local copy:

 

• gThreadCopyFile: Thread for copying sound, spectrum and marker files from the remote filer to the local cache directory.

o Requires AirDDO input, i.e. adding an item to the processing list.

• gThreadDirectory: Thread to purge the local directory to respect the two limits (SizeMax: considered as the maximum desired size of local storage and SizeFree: the minimum size of free disk space required). Delete the last file used (date of last access) and loop (while waiting 60s)

o Independent of other Threads, it does not need AirDDO input to be triggered unlike the other two Threads.

• gThreadCompare: Thread for comparing a filer's file with its local counterpart. Allows you to request a local copy of the new version of a file if it has been modified on the filer.

o Requires AirDDO input, i.e. adding an item to the processing list.

 

gThreadCopyFile:

TRANSFERT_FILE called by AirDDO to add files to the local copy processing list. For each selected file, the file in question is added to the list, its spectrum and its marker TRANSFERT_FILE is called by AirDDO via the SendToFileTransfert function (when the path to the file points to the filer), itself called by VerifSon2 .. .

 

• iRes = 0: File in the course of record, we put the file at the end of the list of files to copy for a future copy

• iRes = -1: Unable to get file information

• iRes = -2: free space (for the user) of the disk <SizeFree_PreferedPath1 ==> the disk is too full

• iRes = -3: file size <= 1, the file size is invalid

• iRes = 1: Local copy authorized and possible:

o We copy the file in ".TRANSF" then we move it with its initial extension (.BWF). For each file (SOUND, SPC, MRK): On the retrieved file, the date of creation of the original file is given, then the date of last access and the date of writing are set to the current time (after copying).

 

CAUTION: We do not check that the "SizeMax" parameter of the folder configured in the registry is exceeded in this thread ...

 

gThreadDirectory :

CHECK We first check that the PFS (Playout File Service) is disabled. IF the size of the local cache folder> SizeMax_PreferedPath1

OR

IF The free space size <SizeFree_PreferedPath1

THEN We delete the file with the oldest last access date (it doesn't matter if it's a .BWF, .SPC or .MRK)

WAIT 60 seconds.

 

gThreadCompare :

COMPARE_FILE called by DDO to add files to the processing list by file comparison (different stack than the local copy) COMPARE_FILE is called by DDO via the CompareFileTransfert function, itself called by VerifSon2 ...

Files are added to the comparison list only if they have a path to the filer. This means that we will compare a file only if it is Drag & Dropped again from the browser!

 

We take the most recent file (date of last writing) between the 2 files (local cache and remote filer). We compare the date of last writing of the file on the filer with the date of creation of the local file:

 

• If the filer is more recent: we put the file in the local copy processing list (via the thread gThreadCopyFile)

• If the local file is more recent or difference less than 60s: We update the creation date of the local file with the date of last writing of the filer (and we put the date of last access and the writing date to l 'actual hour).