...
 
Commits (11)
...@@ -20,4 +20,7 @@ including.lst ...@@ -20,4 +20,7 @@ including.lst
doxygen.tag doxygen.tag
/image /image
/scripts /scripts
/html /html
\ No newline at end of file
/src/camogm_fifo_reader
/src/camogm_fifo_writer
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#ifndef _CAMOGM_H #ifndef _CAMOGM_H
#define _CAMOGM_H #define _CAMOGM_H
//#define USE_POLL
#include <pthread.h> #include <pthread.h>
#include <stdbool.h> #include <stdbool.h>
#include <ogg/ogg.h> #include <ogg/ogg.h>
...@@ -182,6 +182,7 @@ typedef struct { ...@@ -182,6 +182,7 @@ typedef struct {
int fd_head[SENSOR_PORTS]; ///< file descriptor for JPEG header int fd_head[SENSOR_PORTS]; ///< file descriptor for JPEG header
int fd_fparmsall[SENSOR_PORTS]; ///< file descriptor for sensor/compressor parameters int fd_fparmsall[SENSOR_PORTS]; ///< file descriptor for sensor/compressor parameters
int fd_exif[SENSOR_PORTS]; ///< file descriptor for Exif data int fd_exif[SENSOR_PORTS]; ///< file descriptor for Exif data
int fd_tiff[SENSOR_PORTS]; ///< file descriptor for Tiff data
int head_size[SENSOR_PORTS]; ///< JPEG header size int head_size[SENSOR_PORTS]; ///< JPEG header size
unsigned char jpegHeader[SENSOR_PORTS][JPEG_HEADER_MAXSIZE]; unsigned char jpegHeader[SENSOR_PORTS][JPEG_HEADER_MAXSIZE];
int metadata_start; int metadata_start;
...@@ -205,7 +206,7 @@ typedef struct { ...@@ -205,7 +206,7 @@ typedef struct {
int ivf; ///< video file (jpeg, mov - open) int ivf; ///< video file (jpeg, mov - open)
int last; ///< last packet in a file int last; ///< last packet in a file
int exif; ///< flag indicating that Exif headers should be calculated and included in each frame int exif; ///< flag indicating that Exif (or Tiff for raw data) headers should be calculated and included in each frame
int exifSize[SENSOR_PORTS]; ///< signed int exifSize[SENSOR_PORTS]; ///< signed
unsigned char ed[SENSOR_PORTS][MAX_EXIF_SIZE]; unsigned char ed[SENSOR_PORTS][MAX_EXIF_SIZE];
......
...@@ -291,8 +291,12 @@ int camogm_frame_jpeg(camogm_state *state) ...@@ -291,8 +291,12 @@ int camogm_frame_jpeg(camogm_state *state)
struct iovec chunks_iovec[8]; struct iovec chunks_iovec[8];
int port = state->port_num; int port = state->port_num;
time_t curr_time; time_t curr_time;
int is_tiff = state->this_frame_params[port].color == COLORMODE_RAW;
sprintf(state->path, "%s%d_%010ld_%06ld.jpeg", state->path_prefix, port, state->this_frame_params[port].timestamp_sec, state->this_frame_params[port].timestamp_usec); if (is_tiff) {
sprintf(state->path, "%s%d_%010ld_%06ld.tiff", state->path_prefix, port, state->this_frame_params[port].timestamp_sec, state->this_frame_params[port].timestamp_usec);
} else {
sprintf(state->path, "%s%d_%010ld_%06ld.jpeg", state->path_prefix, port, state->this_frame_params[port].timestamp_sec, state->this_frame_params[port].timestamp_usec);
}
if (!state->rawdev_op) { if (!state->rawdev_op) {
l = 0; l = 0;
for (i = 0; i < (state->chunk_index) - 1; i++) { for (i = 0; i < (state->chunk_index) - 1; i++) {
......
...@@ -84,7 +84,7 @@ int camogm_start_kml(camogm_state *state) ...@@ -84,7 +84,7 @@ int camogm_start_kml(camogm_state *state)
(int)dir_table_entry.ltag, \ (int)dir_table_entry.ltag, \
(int)dir_table_entry.len, \ (int)dir_table_entry.len, \
(int)dir_table_entry.src, \ (int)dir_table_entry.src, \
(int)dir_table_entry.dst)); (int)dir_table_entry.dst_exif));
} }
} }
close(fd_ExifDir); close(fd_ExifDir);
...@@ -159,11 +159,11 @@ int camogm_frame_kml(camogm_state *state) ...@@ -159,11 +159,11 @@ int camogm_frame_kml(camogm_state *state)
// generating KML itself // generating KML itself
// using GPS time - in the same structure // using GPS time - in the same structure
if (state->kml_exif[Exif_GPSInfo_GPSDateStamp_Index].ltag == Exif_GPSInfo_GPSDateStamp) { // Exif_GPSInfo_GPSDateStamp is present in template if (state->kml_exif[Exif_GPSInfo_GPSDateStamp_Index].ltag == Exif_GPSInfo_GPSDateStamp) { // Exif_GPSInfo_GPSDateStamp is present in template
memcpy(datestr, &(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSDateStamp_Index].dst]), 10); memcpy(datestr, &(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSDateStamp_Index].dst_exif]), 10);
datestr[4] = '-'; datestr[7] = '-'; datestr[10] = '\0'; datestr[4] = '-'; datestr[7] = '-'; datestr[10] = '\0';
} }
if (state->kml_exif[Exif_GPSInfo_GPSTimeStamp_Index].ltag == Exif_GPSInfo_GPSTimeStamp) { // Exif_GPSInfo_GPSTimeStamp is present in template if (state->kml_exif[Exif_GPSInfo_GPSTimeStamp_Index].ltag == Exif_GPSInfo_GPSTimeStamp) { // Exif_GPSInfo_GPSTimeStamp is present in template
ip = (int*)&(state->ed[state->kml_exif[Exif_GPSInfo_GPSTimeStamp_Index].dst]); ip = (int*)&(state->ed[state->kml_exif[Exif_GPSInfo_GPSTimeStamp_Index].dst_exif]);
hours = __cpu_to_be32( ip[0]); hours = __cpu_to_be32( ip[0]);
minutes = __cpu_to_be32( ip[2]); minutes = __cpu_to_be32( ip[2]);
seconds = (1.0 * (__cpu_to_be32( ip[4]) + 1)) / __cpu_to_be32( ip[5]); // GPS likes ".999", let's inc by one - anyway will round that out seconds = (1.0 * (__cpu_to_be32( ip[4]) + 1)) / __cpu_to_be32( ip[5]); // GPS likes ".999", let's inc by one - anyway will round that out
...@@ -179,52 +179,52 @@ int camogm_frame_kml(camogm_state *state) ...@@ -179,52 +179,52 @@ int camogm_frame_kml(camogm_state *state)
// knowing format provided from GPS - degrees and minuts only, no seconds: // knowing format provided from GPS - degrees and minuts only, no seconds:
if (state->kml_exif[Exif_GPSInfo_GPSLongitude_Index].ltag == Exif_GPSInfo_GPSLongitude) { // Exif_GPSInfo_GPSLongitude is present in template if (state->kml_exif[Exif_GPSInfo_GPSLongitude_Index].ltag == Exif_GPSInfo_GPSLongitude) { // Exif_GPSInfo_GPSLongitude is present in template
ip = (int*)&(state->ed[state->kml_exif[Exif_GPSInfo_GPSLongitude_Index].dst]); ip = (int*)&(state->ed[state->kml_exif[Exif_GPSInfo_GPSLongitude_Index].dst_exif]);
longitude = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3])); longitude = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3]));
if ((state->kml_exif[Exif_GPSInfo_GPSLongitudeRef_Index].ltag == Exif_GPSInfo_GPSLongitudeRef) && if ((state->kml_exif[Exif_GPSInfo_GPSLongitudeRef_Index].ltag == Exif_GPSInfo_GPSLongitudeRef) &&
(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLongitudeRef_Index].dst] != 'E')) longitude = -longitude; (state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLongitudeRef_Index].dst_exif] != 'E')) longitude = -longitude;
D2(fprintf(debug_file, "(longitude) 0x%x 0x%x 0x%x 0x%x '%c'\n", ip[0], ip[1], ip[2], ip[3], state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLongitudeRef_Index].dst])); D2(fprintf(debug_file, "(longitude) 0x%x 0x%x 0x%x 0x%x '%c'\n", ip[0], ip[1], ip[2], ip[3], state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLongitudeRef_Index].dst_exif]));
} }
if (state->kml_exif[Exif_GPSInfo_GPSLatitude_Index].ltag == Exif_GPSInfo_GPSLatitude) { // Exif_GPSInfo_GPSLatitude is present in template if (state->kml_exif[Exif_GPSInfo_GPSLatitude_Index].ltag == Exif_GPSInfo_GPSLatitude) { // Exif_GPSInfo_GPSLatitude is present in template
ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLatitude_Index].dst]); ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLatitude_Index].dst_exif]);
latitude = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3])); latitude = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3]));
if ((state->kml_exif[Exif_GPSInfo_GPSLatitudeRef_Index].ltag == Exif_GPSInfo_GPSLatitudeRef) && if ((state->kml_exif[Exif_GPSInfo_GPSLatitudeRef_Index].ltag == Exif_GPSInfo_GPSLatitudeRef) &&
(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLatitudeRef_Index].dst] != 'N')) latitude = -latitude; (state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLatitudeRef_Index].dst_exif] != 'N')) latitude = -latitude;
D2(fprintf(debug_file, "(latitude) 0x%x 0x%x 0x%x 0x%x '%c'\n", ip[0], ip[1], ip[2], ip[3], state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLatitudeRef_Index].dst] ? '-' : '+')); D2(fprintf(debug_file, "(latitude) 0x%x 0x%x 0x%x 0x%x '%c'\n", ip[0], ip[1], ip[2], ip[3], state->ed[port][state->kml_exif[Exif_GPSInfo_GPSLatitudeRef_Index].dst_exif] ? '-' : '+'));
} }
// altitude - will be modified/replaced later // altitude - will be modified/replaced later
if (state->kml_exif[Exif_GPSInfo_GPSAltitude_Index].ltag == Exif_GPSInfo_GPSAltitude) { // Exif_GPSInfo_GPSAltitude is present in template if (state->kml_exif[Exif_GPSInfo_GPSAltitude_Index].ltag == Exif_GPSInfo_GPSAltitude) { // Exif_GPSInfo_GPSAltitude is present in template
ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSAltitude_Index].dst]); ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSAltitude_Index].dst_exif]);
altitude = (1.0 * __cpu_to_be32( ip[0])) / __cpu_to_be32( ip[1]); altitude = (1.0 * __cpu_to_be32( ip[0])) / __cpu_to_be32( ip[1]);
if ((state->kml_exif[Exif_GPSInfo_GPSAltitudeRef_Index].ltag == Exif_GPSInfo_GPSAltitudeRef) && if ((state->kml_exif[Exif_GPSInfo_GPSAltitudeRef_Index].ltag == Exif_GPSInfo_GPSAltitudeRef) &&
(state->ed[port][state->kml_exif[Exif_GPSInfo_GPSAltitudeRef_Index].dst] != '\0')) altitude = -altitude; (state->ed[port][state->kml_exif[Exif_GPSInfo_GPSAltitudeRef_Index].dst_exif] != '\0')) altitude = -altitude;
D2(fprintf(debug_file, "(altitude) 0x%x 0x%x '%c'\n", ip[0], ip[1], state->ed[port][state->kml_exif[Exif_GPSInfo_GPSAltitudeRef_Index].dst])); D2(fprintf(debug_file, "(altitude) 0x%x 0x%x '%c'\n", ip[0], ip[1], state->ed[port][state->kml_exif[Exif_GPSInfo_GPSAltitudeRef_Index].dst_exif]));
} }
D1(fprintf(debug_file, "longitude=%f, latitude=%f, altitude=%f\n", longitude, latitude, altitude)); D1(fprintf(debug_file, "longitude=%f, latitude=%f, altitude=%f\n", longitude, latitude, altitude));
// heading - no processing of "True/Magnetic" Exif_GPSInfo_CompassDirectionRef now (always M) // heading - no processing of "True/Magnetic" Exif_GPSInfo_CompassDirectionRef now (always M)
if (state->kml_exif[Exif_GPSInfo_CompassDirection_Index].ltag == Exif_GPSInfo_CompassDirection) { // Exif_GPSInfo_CompassDirection is present in template if (state->kml_exif[Exif_GPSInfo_CompassDirection_Index].ltag == Exif_GPSInfo_CompassDirection) { // Exif_GPSInfo_CompassDirection is present in template
ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_CompassDirection_Index].dst]); ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_CompassDirection_Index].dst_exif]);
heading = (1.0 * __cpu_to_be32( ip[0])) / __cpu_to_be32( ip[1]); heading = (1.0 * __cpu_to_be32( ip[0])) / __cpu_to_be32( ip[1]);
D2(fprintf(debug_file, "(heading) 0x%x 0x%x\n", ip[0], ip[1])); D2(fprintf(debug_file, "(heading) 0x%x 0x%x\n", ip[0], ip[1]));
} }
// processing 'hacked' pitch and roll (made of Exif destination latitude/longitude) // processing 'hacked' pitch and roll (made of Exif destination latitude/longitude)
if (state->kml_exif[Exif_GPSInfo_CompassRoll_Index].ltag == Exif_GPSInfo_CompassRoll) { // Exif_GPSInfo_CompassRoll is present in template if (state->kml_exif[Exif_GPSInfo_CompassRoll_Index].ltag == Exif_GPSInfo_CompassRoll) { // Exif_GPSInfo_CompassRoll is present in template
ip = (int*)&(state->ed[state->kml_exif[Exif_GPSInfo_CompassRoll_Index].dst]); ip = (int*)&(state->ed[state->kml_exif[Exif_GPSInfo_CompassRoll_Index].dst_exif]);
roll = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3])); roll = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3]));
if ((state->kml_exif[Exif_GPSInfo_CompassRollRef_Index].ltag == Exif_GPSInfo_CompassRollRef) && if ((state->kml_exif[Exif_GPSInfo_CompassRollRef_Index].ltag == Exif_GPSInfo_CompassRollRef) &&
(state->ed[port][state->kml_exif[Exif_GPSInfo_CompassRollRef_Index].dst] != EXIF_COMPASS_ROLL_ASCII[0])) roll = -roll; (state->ed[port][state->kml_exif[Exif_GPSInfo_CompassRollRef_Index].dst_exif] != EXIF_COMPASS_ROLL_ASCII[0])) roll = -roll;
D2(fprintf(debug_file, "(roll) 0x%x 0x%x '%c'\n", ip[0], ip[1], state->ed[port][state->kml_exif[Exif_GPSInfo_CompassRollRef_Index].dst])); D2(fprintf(debug_file, "(roll) 0x%x 0x%x '%c'\n", ip[0], ip[1], state->ed[port][state->kml_exif[Exif_GPSInfo_CompassRollRef_Index].dst_exif]));
} }
if (state->kml_exif[Exif_GPSInfo_CompassPitch_Index].ltag == Exif_GPSInfo_CompassPitch) { // Exif_GPSInfo_CompassPitch is present in template if (state->kml_exif[Exif_GPSInfo_CompassPitch_Index].ltag == Exif_GPSInfo_CompassPitch) { // Exif_GPSInfo_CompassPitch is present in template
ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_CompassPitch_Index].dst]); ip = (int*)&(state->ed[port][state->kml_exif[Exif_GPSInfo_CompassPitch_Index].dst_exif]);
pitch = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3])); pitch = __cpu_to_be32( ip[0]) / (1.0 * __cpu_to_be32( ip[1])) + __cpu_to_be32( ip[2]) / (60.0 * __cpu_to_be32( ip[3]));
if ((state->kml_exif[Exif_GPSInfo_CompassPitchRef_Index].ltag == Exif_GPSInfo_CompassPitchRef) && if ((state->kml_exif[Exif_GPSInfo_CompassPitchRef_Index].ltag == Exif_GPSInfo_CompassPitchRef) &&
(state->ed[port][state->kml_exif[Exif_GPSInfo_CompassPitchRef_Index].dst] != EXIF_COMPASS_PITCH_ASCII[0])) pitch = -pitch; (state->ed[port][state->kml_exif[Exif_GPSInfo_CompassPitchRef_Index].dst_exif] != EXIF_COMPASS_PITCH_ASCII[0])) pitch = -pitch;
D2(fprintf(debug_file, "(pitch) 0x%x 0x%x '%c'\n", ip[0], ip[1], state->ed[port][state->kml_exif[Exif_GPSInfo_CompassPitchRef_Index].dst])); D2(fprintf(debug_file, "(pitch) 0x%x 0x%x '%c'\n", ip[0], ip[1], state->ed[port][state->kml_exif[Exif_GPSInfo_CompassPitchRef_Index].dst_exif]));
} }
// convert from GPS heading, pitch, roll to KML heading, tilt, roll // convert from GPS heading, pitch, roll to KML heading, tilt, roll
tilt = pitch + 90.0; tilt = pitch + 90.0;
......
...@@ -40,7 +40,7 @@ function reload() { ...@@ -40,7 +40,7 @@ function reload() {
} }
function mount_hdd(callback) { function mount_hdd(callback) {
makeRequest('camogm_interface.php','?cmd=mount',callback); makeRequest('camogm_interface.php','?cmd=mount',callback);
document.getElementById('directory').value = "/var/hdd/"; document.getElementById('directory').value = "/mnt/sda1/";
document.getElementById('mount_hdd_button').style.display = "none"; document.getElementById('mount_hdd_button').style.display = "none";
} }
...@@ -56,7 +56,7 @@ function process_mount_hdd(xmldoc) { ...@@ -56,7 +56,7 @@ function process_mount_hdd(xmldoc) {
function mount_custom_partition(partition) { function mount_custom_partition(partition) {
if (document.getElementById("mount_point").value != "") { if (document.getElementById("mount_point").value != "") {
makeRequest('camogm_interface.php','?cmd=mount&partition='+partition+'&mountpoint='+document.getElementById("mount_point").value,"scan_devices()"); makeRequest('camogm_interface.php','?cmd=mount&partition='+partition+'&mountpoint='+document.getElementById("mount_point").value,"scan_devices()");
document.getElementById('directory').value = "/var/hdd/"; document.getElementById('directory').value = "/mnt/sda1/";
document.getElementById('mount_hdd_button').style.display = "none"; document.getElementById('mount_hdd_button').style.display = "none";
} }
} }
...@@ -137,7 +137,7 @@ function process_scan_devices(xmldoc) { ...@@ -137,7 +137,7 @@ function process_scan_devices(xmldoc) {
content += "<tr><td></td><td>"+partition+"</td><td><input id='mount_point' size='8' type='text'"; content += "<tr><td></td><td>"+partition+"</td><td><input id='mount_point' size='8' type='text'";
//if (partition=="/dev/hda1"){ //if (partition=="/dev/hda1"){
if (partition=="/dev/sda1"){ if (partition=="/dev/sda1"){
content += " value='/var/hdd'"; content += " value='/mnt/sda1'";
} }
content += "></td><td>" + xmldoc.getElementsByTagName('size')[i].firstChild.data + "</td><td>" + '</td><td><a href="#" onClick="mount_custom_partition(\''+partition+'\');">mount</a></td></tr>'; content += "></td><td>" + xmldoc.getElementsByTagName('size')[i].firstChild.data + "</td><td>" + '</td><td><a href="#" onClick="mount_custom_partition(\''+partition+'\');">mount</a></td></tr>';
} else { } else {
...@@ -158,7 +158,6 @@ function process_scan_devices(xmldoc) { ...@@ -158,7 +158,6 @@ function process_scan_devices(xmldoc) {
function find_selected_device(){ function find_selected_device(){
for(var i=0;i<devices.length;i++){ for(var i=0;i<devices.length;i++){
if (devices[i]=="/dev/hda1") selected_device = devices[i];
if (devices[i]=="/dev/sda1") selected_device = devices[i]; if (devices[i]=="/dev/sda1") selected_device = devices[i];
break; break;
} }
......
...@@ -344,7 +344,7 @@ ...@@ -344,7 +344,7 @@
fprintf($fcmd, "prefix=%s;\n", $xml_directory); fprintf($fcmd, "prefix=%s;\n", $xml_directory);
} }
else else
fprintf($fcmd, "prefix=%s;\n", "/var/hdd/"); fprintf($fcmd, "prefix=%s;\n", "/mnt/sda1/");
} }
} }
...@@ -518,7 +518,11 @@ ...@@ -518,7 +518,11 @@
<?php <?php
for ($i = 0; $i < $sensor_ports; $i++) { for ($i = 0; $i < $sensor_ports; $i++) {
echo "<td id=\"ajax_qual\">"; echo "<td id=\"ajax_qual\">";
echo elphel_get_P_value($i, ELPHEL_QUALITY) . " %"; if (elphel_get_P_value($i, ELPHEL_COLOR) == 15){ // TIFF
echo "TIFF".elphel_get_P_value($i, ELPHEL_BITS);
} else {
echo elphel_get_P_value($i, ELPHEL_QUALITY) . " %";
}
echo "</td>"; echo "</td>";
} }
?> ?>
...@@ -616,9 +620,9 @@ ...@@ -616,9 +620,9 @@
else else
echo "<input type=\"radio\" id=\"radioMov\" style=\"top:3px; position:relative;\" name=\"container\" value=\"mov\" onChange=\"format_changed(this);\"> Apple Quicktime Movie<br />"; echo "<input type=\"radio\" id=\"radioMov\" style=\"top:3px; position:relative;\" name=\"container\" value=\"mov\" onChange=\"format_changed(this);\"> Apple Quicktime Movie<br />";
if ($xml_format == "jpeg") if ($xml_format == "jpeg")
echo "<input type=\"radio\" id=\"radioJpg\" style=\"top:3px; position:relative;\" name=\"container\" value=\"jpg\" onChange=\"format_changed(this);\" checked> JPEG Sequence<br />"; echo "<input type=\"radio\" id=\"radioJpg\" style=\"top:3px; position:relative;\" name=\"container\" value=\"jpg\" onChange=\"format_changed(this);\" checked> JPEG/Tiff Sequence<br />";
else else
echo "<input type=\"radio\" id=\"radioJpg\" style=\"top:3px; position:relative;\" name=\"container\" value=\"jpg\" onChange=\"format_changed(this);\"> JPEG Sequence<br />"; echo "<input type=\"radio\" id=\"radioJpg\" style=\"top:3px; position:relative;\" name=\"container\" value=\"jpg\" onChange=\"format_changed(this);\"> JPEG/Tiff Sequence<br />";
if ($xml_rawdev_path != "") { if ($xml_rawdev_path != "") {
$fastrec_checked = "checked"; $fastrec_checked = "checked";
} else { } else {
...@@ -656,7 +660,7 @@ ...@@ -656,7 +660,7 @@
<p style="color:red;">not operational yet!</p> <p style="color:red;">not operational yet!</p>
Detected Audio Hardware: <span id="ajax_detected_audio_hardware">loading...</span> <a href="#" onClick="check_audio_hardware();"><img src="images/reload.png" style="bottom:-2px; position:relative;"></a><br /> Detected Audio Hardware: <span id="ajax_detected_audio_hardware">loading...</span> <a href="#" onClick="check_audio_hardware();"><img src="images/reload.png" style="bottom:-2px; position:relative;"></a><br />
<br /> <br />
Test Audio Playback: <a href="#" onClick="test_audio_playback('/var/hdd/Congas.wav');"><img src="images/play_audio.png" style="position:relative; top:3px;"></a><br /> Test Audio Playback: <a href="#" onClick="test_audio_playback('/mnt/sda1/Congas.wav');"><img src="images/play_audio.png" style="position:relative; top:3px;"></a><br />
<br /> <br />
<form method="POST" id="audioform"> <form method="POST" id="audioform">
<table cellspacing="5px"> <table cellspacing="5px">
......