annotate foosdk/sdk/foobar2000/helpers/file_move_helper.cpp @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #include "StdAfx.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #include "file_move_helper.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 #include <SDK/file_operation_callback.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 bool file_move_helper::g_on_deleted(const pfc::list_base_const_t<const char *> & p_files)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 file_operation_callback::g_on_files_deleted(p_files);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 return true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 t_size file_move_helper::g_filter_dead_files_sorted_make_mask(pfc::list_base_t<metadb_handle_ptr> & p_data,const pfc::list_base_const_t<const char*> & p_dead,bit_array_var & p_mask)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 t_size n, m = p_data.get_count();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 t_size found = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 for(n=0;n<m;n++)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 t_size dummy;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 bool dead = p_dead.bsearch_t(metadb::path_compare,p_data.get_item(n)->get_path(),dummy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 if (dead) found++;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 p_mask.set(n,dead);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 return found;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 t_size file_move_helper::g_filter_dead_files_sorted(pfc::list_base_t<metadb_handle_ptr> & p_data,const pfc::list_base_const_t<const char*> & p_dead)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 pfc::bit_array_bittable mask(p_data.get_count());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 t_size found = g_filter_dead_files_sorted_make_mask(p_data,p_dead,mask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 if (found > 0) p_data.remove_mask(mask);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 return found;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 t_size file_move_helper::g_filter_dead_files(pfc::list_base_t<metadb_handle_ptr> & p_data,const pfc::list_base_const_t<const char*> & p_dead)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 pfc::ptr_list_t<const char> temp;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 temp.add_items(p_dead);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 temp.sort_t(metadb::path_compare);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 return g_filter_dead_files_sorted(p_data,temp);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41