00001 #ifndef PREFERENCES_H
00002 #define PREFERENCES_H
00003
00004 #include "asset.inc"
00005 #include "audioconfig.inc"
00006 #include "bchash.inc"
00007 #include "guicast.h"
00008 #include "maxchannels.h"
00009 #include "mutex.inc"
00010 #include "preferences.inc"
00011 #include "videoconfig.inc"
00012
00013
00014 class Preferences
00015 {
00016 public:
00017 Preferences();
00018 ~Preferences();
00019
00020 Preferences& operator=(Preferences &that);
00021 void copy_from(Preferences *that);
00022 int load_defaults(BC_Hash *defaults);
00023 int save_defaults(BC_Hash *defaults);
00024 void boundaries();
00025
00026 static void print_channels(char *string,
00027 int *channel_positions,
00028 int channels);
00029 static void scan_channels(char *string,
00030 int *channel_positions,
00031 int channels);
00032
00033 void add_node(char *text, int port, int enabled, float rate);
00034 void delete_node(int number);
00035 void delete_nodes();
00036 void reset_rates();
00037
00038 float get_avg_rate(int use_master_node);
00039 void sort_nodes();
00040 void edit_node(int number, char *new_text, int port, int enabled);
00041 int get_enabled_nodes();
00042 char* get_node_hostname(int number);
00043 int get_node_port(int number);
00044
00045
00046
00047 void copy_rates_from(Preferences *preferences);
00048
00049
00050 void set_rate(float rate, int node);
00051
00052
00053
00054 int calculate_processors(int interactive = 0);
00055
00056
00057
00058 char index_directory[BCTEXTLEN];
00059
00060 int64_t index_size;
00061 int index_count;
00062
00063 int use_thumbnails;
00064
00065 char theme[BCTEXTLEN];
00066 double render_preroll;
00067 int brender_preroll;
00068 int force_uniprocessor;
00069
00070
00071 int processors;
00072
00073 int real_processors;
00074
00075
00076 int channel_positions[MAXCHANNELS * MAXCHANNELS];
00077
00078 Asset *brender_asset;
00079 int use_brender;
00080
00081 int brender_fragment;
00082
00083
00084
00085 int64_t cache_size;
00086
00087 int use_renderfarm;
00088 int renderfarm_port;
00089
00090 ArrayList<char*> renderfarm_nodes;
00091 ArrayList<int> renderfarm_ports;
00092 ArrayList<int> renderfarm_enabled;
00093 ArrayList<float> renderfarm_rate;
00094
00095 float local_rate;
00096 char renderfarm_mountpoint[BCTEXTLEN];
00097
00098 int renderfarm_vfs;
00099
00100 int renderfarm_job_count;
00101
00102 int renderfarm_consolidate;
00103
00104
00105 int use_tipwindow;
00106
00107
00108 char global_plugin_dir[BCTEXTLEN];
00109 char local_plugin_dir[BCTEXTLEN];
00110
00111
00112 Mutex *preferences_lock;
00113 };
00114
00115 #endif